Saltar al contenido principal

Diccionario JSON ↔ ISO 8583

El Autorizador JSON arma todos los data elements (DE) del mensaje a partir de tu JSON, de tu registro de comercio y de los datos de red que asigna él mismo. Antes de escribir un solo byte, valida el mensaje contra el formato del emisor: un campo que no cabe responde 400 y nunca llega al emisor.

Solicitud: de JSON a ISO 8583​

DENombre ISOOrigenValor
MTITipo de mensajeoperacionCOMPRA y CONSULTA_SALDO → 0200; PREAUTORIZACION → 0100; captura → 0220; devolución → 0200; reverso → 0400
2PANmedioCon CREDENCIAL_FPW1, el número de la credencial (no es el número de la tarjeta). Con TOKEN, el número resuelto en memoria (Próximamente). Nunca lo envías tú
3Código de procesooperacion000000 compra, preautorización y captura; 310000 consulta de saldo; 200000 devolución; el reverso repite el de la original
4Importemonto.valor12 dígitos en unidades menores, sin separador: 1250.00 → 000000125000. Nunca se redondea
7Fecha y hora de transmisiónAutorizadorMMddHHmmss en UTC. Se calcula una vez y se guarda: el reverso la repite en el DE 90
11STANAutorizador6 dígitos por terminal. Cada mensaje lleva uno propio, también el reverso
12Hora localAutorizadorHHmmss en la hora de negocio de la instalación
13Fecha localAutorizadorMMdd en la hora de negocio de la instalación
18MCCRegistro del comercioDebe coincidir con comercio.mcc (si no, 403 MCC_NO_COINCIDE)
22Modo de entradaentrada.modoECOMMERCE → 010; BILLETERA → 031
25Condición del punto de servicioentrada.modoECOMMERCE → 59. La preautorización (0100) no lo lleva
37RRNAutorizador12 dígitos: último dígito del año y día juliano en UTC (YDDD) más una secuencia de 8 dígitos
38Código de autorizaciónOriginalSolo en la captura: el de la preautorización
41Terminal (TID)AutorizadorTerminal virtual del grupo de tu comercio. Reverso, captura y devolución repiten el de la original
42Código del comerciocomercio.codigo15 caracteres; debe pertenecer a tu cliente (si no, 403 COMERCIO_AJENO)
43Nombre y ubicaciónRegistro del comercioNo lo puedes cambiar
48Datos privadosopciones y medioPares clave=valor; (ver más abajo)
49Monedamonto.monedaISO 4217 numérica: 928 (VES) o 840 (USD)
90Datos del originalAutorizadorSolo en el reverso: MTI + STAN + DE 7 de la original, completado con ceros hasta 42 dígitos

DE 48: datos privados​

El DE 48 viaja como pares clave=valor;. El autorizador solo escribe estas etiquetas:

EtiquetaOrigen JSONSignificado
wcmedio.credencial (solo CREDENCIAL_FPW1)La credencial completa de la billetera
cuopciones.cuotas (2 a 48)Número de cuotas
paopciones.aprobacionParcial: true → pa=1Admite aprobación parcial (respuesta 10)
rqopciones.referenciaTasa: true → rq=1Pide la referencia de tasa de cambio en la respuesta

Y solo lee de la respuesta rf (moneda de referencia), tr (tasa) y ra (monto en la moneda de referencia), que se publican en referenciaTasa. Ninguna otra etiqueta entra ni sale.

Por ejemplo, una compra con FPW1, 3 cuotas y aprobación parcial lleva:

DE 48 = wc=FPW1.9919000000000012345.1792512000.3f9a1c0e7b2d4a68;cu=3;pa=1;

Respuesta: de ISO 8583 a JSON​

La respuesta se construye campo a campo con una lista blanca; nunca se copia el mensaje del emisor.

Campo JSONDENotas
codigoRespuesta39Siempre 91 si resultado es INDETERMINADA; nulo si es NO_ENVIADA
codigoAutorizacion38Nulo si no hubo aprobación
rrn37El asignado por el autorizador
stan11El STAN de esta operación
monto.aprobado4Distinto de monto.solicitado en una aprobación parcial (10). Nulo si no se aprobó
referenciaTasa.moneda / .tasa / .monto48 rf / tr / raSolo si pediste referenciaTasa y la operación se aprobó
iso.mtiRespuestaMTI0110, 0210, 0230 o 0410; nulo si no hubo respuesta del emisor

La consulta de saldo (CONSULTA_SALDO) devuelve el resultado, pero el saldo no se publica en v1.

Lo que nunca envías​

  • DE 7, 11, 12, 13, 37 y 41 los pone siempre el autorizador. Si los mandas en la vista ISO, 400 DE_NO_PERMITIDO.
  • DE 2, 35, 45, 52, 55 y 127 (número de tarjeta, pistas, PIN, EMV y P2PE) están prohibidos en v1: 400 DE_NO_PERMITIDO.
  • En el DE 48 de la vista ISO solo se admiten cu, pa y rq; otra etiqueta responde 400 ETIQUETA_DE48_NO_PERMITIDA.

Vista ISO por data element (bajo acuerdo)​

Los integradores certificados pueden enviar el mensaje por número de DE en POST /v1/iso/messages. Solo se admiten los MTI 0100 y 0200, con los DE 3, 4, 18, 22, 25, 42, 43 (se sobrescribe con el registro), 48 y 49. Reversos, capturas y devoluciones van siempre por la vista semántica, para que el autorizador reutilice el terminal, el RRN y el DE 7 de la original.

{
"version": "2026-10",
"mti": "0200",
"medio": { "tipo": "CREDENCIAL_FPW1", "credencial": "FPW1.9919000000000012345.1792512000.3f9a1c0e7b2d4a68" },
"elementos": {
"3": "000000",
"4": "000000125000",
"18": "5411",
"22": "031",
"42": "000000000012345",
"49": "928",
"48": { "cu": "3", "pa": "1" }
}
}

Respuesta (200):

{
"idAutorizacion": "01JBX3A7K2M4N6P8R0S2T4V6W8",
"resultado": "APROBADA",
"mti": "0210",
"elementos": {
"3": "000000",
"4": "000000125000",
"11": "000457",
"37": "629300000123",
"38": "A1B2C3",
"39": "00"
},
"traceId": "4bf92f3577b34da6a3ce929d0e0e4736",
"latenciaMs": 41
}

Con GET /v1/authorizations/{id}?vista=DE consultas cualquier autorización en esta misma forma.