Estructura del archivo por lotes
Esta página define el formato de archivo por lotes que el backend del emisor proporciona para actualizaciones por lotes.
Estructura del archivo por lotes
El archivo por lotes tiene la siguiente estructura:
encabezado
Objeto
M
El encabezado que describe la solicitud de actualización por lotes.
registros
Matriz
M
La matriz que contiene los registros. Cada registro corresponde a una operación.
firma
Cadena
M
Este campo representa una Firma Web JSON (JWS) separada. La firma debe crearse con la clave privada del emisor. Durante la incorporación D1, el emisor comparte la clave pública correspondiente. Para más detalles, consulte JWS.
Encabezado
El encabezado tiene la siguiente estructura:
batchId
Cadena
48
M
El identificador del archivo por lotes tal como se especifica en el nombre del archivo.
seqNumber
Cadena
48
M
El número de secuencia del archivo por lotes tal como se especifica en el nombre del archivo.
issuerId
Cadena
48
M
El identificador del emisor.
operation
Cadena
48
M
Identifica la operación que se realizará con el archivo de entrada. Valor: VIRTUAL_CARD_REGISTRATION.
Registros
Un registro tiene la siguiente estructura:
rowId
int
-
M
El identificador incremental de la fila.
virtualCardRegistrationRequest
Objeto
-
M
La carga útil de la solicitud de registro de tarjeta virtual.
virtualCardRegistrationRequest
card
Objeto de tipo Card
N/D
M
Un objeto que contiene los datos cifrados de la tarjeta.
Donde el card tiene la siguiente estructura:
id
Cadena
1...48
M
El identificador único asignado por el emisor.
encryptedData
Cadena
-
M
Carga PKCS#7 cifrada con la clave pública de Thales.
scheme
Cadena
-
M
Valores: VISA o MASTERCARD.
El algoritmo de cifrado de contenido es AES256/CBC/PKCS7Padding.
El algoritmo de cifrado de clave compatible para una clave pública RSA (2048 bits) es RSA/OAEPWithSHA256AndMGF1Padding.
Para más detalles, consulte Cifrado de datos y seguridad.
La estructura de la carga útil descifrada es la siguiente:
fpan
Cadena
Hasta 20
M
FPAN de la tarjeta de financiación. Ejemplo: {"fpan":"6789451266992345"}.
Firma
El objeto de firma utiliza el esquema JWS tal como lo especifica RFC 7515.
Durante la incorporación D1, el emisor debe compartir la clave pública.
Proceso
Eliminar retornos de carro y espacios en blanco de la carga útil.
Codificar la carga útil usando
UTF-8.Inicializar un objeto de firma con los datos codificados.
Establecer el encabezado protegido:
alg = "PS256"kid = "identificador de clave"
Usar la clave privada para firmar los datos y producir un objeto JWS.
Dividir la cadena JWS en partes usando
.como separador.Crear la firma separada combinando la primera y la tercera partes con
...Devolver la firma separada.
Ejemplo (Node.js):
Composición JWS
El formato siguiente muestra la representación de un objeto JWS:
Base64URL(UTF-8(encabezado JWS)) || '.' || Base64URL(carga útil JWS) || '.' || Base64URL(firma JWS)
Como se usa la firma separada, la Carga útil JWS se reemplaza por una cadena vacía:
Base64URL(UTF-8(encabezado JWS)) || '..' || Base64URL(firma JWS)
Encabezado JWS
El encabezado contiene los siguientes metadatos:
alg
Enumeración
n/a
Requerido
Algoritmo usado para firmar la carga útil JWS. El valor es PS256.
kid
Cadena
64
Requerido
Identificador de la clave usada para firmar la carga útil JWS.
Carga útil JWS
La carga útil a firmar es un objeto JSON con los encabezado y registros atributos. Utiliza codificación UTF-8 y no contiene retornos de carro ni espacios en blanco. Ejemplo: {header:{...},records:[...]}
Ejemplo de archivo por lotes
Última actualización
¿Te fue útil?