ISO 8583
ISO 8583, Est谩ndar para Transacciones Financieras con Mensajes originados en una tarjeta - Especificaciones de los mensajes de intercambio es el est谩ndar de la International Organization for Standardization para sistemas que intercambian transacciones electr贸nicas realizadas por poseedores de tarjetas de cr茅dito.
Introducci贸n
Una transacci贸n basada en una tarjeta usualmente sale desde un dispositivo de compra, tal como un POS o un cajero autom谩tico ATM, a trav茅s de una red (o redes) hacia un sistema del emisor de la tarjeta para obtener una autorizaci贸n en funci贸n de la cuenta del titular de la tarjeta. La transacci贸n contiene informaci贸n que se obtiene de la tarjeta (ej. n煤mero de cuenta), la terminal (ej. nro. de comercio), la transacci贸n (ej. importe) en conjunto con otra informaci贸n que se puede generar o agregar din谩micamente por los sistemas intervinientes. El sistema emisor de la tarjeta podr谩 autorizar o rechazar la transacci贸n, y genera un mensaje de respuesta que debe ser devuelto a la terminal en un tiempo breve.
ISO 8583 define un formato de mensaje y un flujo de comunicaci贸n para que diferentes sistemas puedan intercambiar estas transacciones. La mayor铆a de las operaciones realizadas en ATM usan ISO 8583 en algunos puntos de la cadena de comunicaci贸n, as铆 como tambi茅n las transacciones que realiza un cliente que usa una tarjeta para hacer un pago en un local. En particular, todas las redes de tarjetas basan sus transacciones en el standard ISO 8583.
Las transacciones incluyen compras, extracciones, dep贸sitos, reintegros, reversos, consultas de saldo, pagos y transferencias entre cuentas. ISO 8583 tambi茅n define mensajes entre sistemas para intercambios seguros de claves, conciliaci贸n de totales y otros prop贸sitos administrativos.
Aunque el ISO 8583 define un standard com煤n, no se usa normalmente en forma directa por sistemas o redes. En lugar de eso cada red adapta el standard para su propio uso con campos adaptados a sus necesidades particulares.
La ubicaci贸n de los cambios en diferentes versiones del standard varia, por ejemplo, los elementos que definen la moneda (currency elements) de las versiones 1987 y 1993 no se usan m谩s en la versi贸n 2003, lo que hace que la moneda sea un sub-elemento de cualquier elemento monto. LA ISO 8583:2003 todav铆a tiene que obtener aceptaci贸n.
Un mensaje ISO 8583 consta de las siguientes partes:
- Message Type Indicator (MTI) - Indicador de Tipo de Mensaje
- Uno o m谩s bitmaps, indicando qu茅 elementos est谩n presentes en el mensaje
- Data elements, los campos del mensaje
Message Type Indicator (MTI) - Indicador de Tipo de Mensaje
Este es un campo num茅rico de 4 d铆gitos que clasifica la funci贸n de alto nivel del mensaje. Un MTI incluye la versi贸n ISO 8583, la clase (Message Class), la funci贸n (Message Function) y el origen del mensaje (Message Origin), cada uno descrito brevemente en las secciones siguientes
ejemplo :
0110
0xxx ----> version of ISO 8583 (1987 version) x1xx ----> class of the Message (Authorization Message) xx1x ----> function of the Message (Request Response) xxx0 ----> who is began the communication (Acquirer)
ISO 8583 Version
Posici贸n 1 del MTI que especifica la versi贸n del est谩ndar ISO 8583 que se est谩 usando en este mensaje
Posici贸n | Significado |
---|---|
0xxx | ISO 8583-1:1987 version |
1xxx | ISO 8583-2:1993 version |
2xxx | ISO 8583-1:2003 version |
9xxx | Private usage |
Message Class - Clase de Mensaje
Posici贸n 2 del MTI que especifica el prop贸sito general del mensaje.
Posici贸n | Significado | Uso |
---|---|---|
x1xx | Autorizaci贸n | Determina si existen fondos disponibles, obtiene una aprobaci贸n pero no se toma en cuenta para la conciliaci贸n, Dual Message System (DMS) system, espera el intercambio de archivos para imputar la cuenta |
x2xx | Financiero | Determina si existen fondos disponibles, obtiene una aprobaci贸n e imputa directamnente a la cuenta , Single Message System (SMS), no se intercambian archivos |
x3xx | Manejo de Archivos | Usado por hot-card, TMS y otros cambios |
x4xx | Reverso | Reversa la acci贸n de una autorizaci贸n previa |
x5xx | Conciliaci贸n | Transmite informaci贸n de cierre |
x6xx | Administrativo | Transmite informaci贸n de falla en los mensajes |
x7xx | Fee Collection | |
x8xx | Manejo de Red | Usado para intercambio seguro de claves, logon, echo test y otras funciones de red |
x9xx | Reservado por la ISO |
Message Function - Funci贸n del Mensaje
Posici贸n 3 del MTI que especifica la funci贸n del mensaje que define como se procesar谩 el mensaje dentro del sistema. Los requerimientos (requests) son mensajes end-to-end (ej. desde comprador hasta autorizador ida y vuelta con timeouts y reversos de ser necesarios), mientras que los avisos (advises) son mensajes point-to-point (ej. desde la terminal al comprador, del comprador a la red, de la red al emisor, con transmisi贸n garantizada para cada punto pero no necesariamente inmediata).
Posici贸n | Significado |
---|---|
xx0x | Petici贸n (Request) |
xx1x | Respuesta a la Petici贸n (Request Response) |
xx2x | Aviso (Advice) |
xx3x | Respuesta al Aviso (Advice Response) |
xx4x | Notificaci贸n |
xx8x | Confirmaci贸n de respuesta (Response acknowledgment) |
xx9x | No Confirmaci贸n (Negative acknowledgment) |
Message Origin - Origen del Mensaje
Posici贸n 4 del MTI que define la ubicaci贸n de la fuente del mensaje dentro de la cadena de pago.
Posici贸n | Significado |
---|---|
xxx0 | Comprador |
xxx1 | Comprador Repetici贸n |
xxx2 | Emisor |
xxx3 | Emisor Repetici贸n |
xxx4 | Otros |
xxx5 | Otros Repetici贸n |
Ejemplos
Teniendo en mente las cuatro posiciones descritas anteriormente, un MTI describir谩 completamente qu茅 es lo que un mensaje deber谩 hacer y c贸mo ser谩 transmitido a trav茅s de la red. Desafortunadamente, no todas las implementaciones del ISO 8583 interpretan el significado de un MTI de la misma manera. Como sea, algunos pocos MTI's son est谩ndar:
MTI | Significado | Uso |
---|---|---|
0100 | Requerimiento de autorizaci贸n | Requerimiento desde un terminal POS para autorizar una compra de un tarjetahabiente |
0120 | Aviso de Autorizaci贸n | Cuando el POS est谩 roto y Ud. debe firmar un voucher |
0121 | Aviso de Autorizaci贸n Repetici贸n | Si el aviso se vence por timeout |
0200 | Requerimiento Financiero del Comprador | Requerimiento de fondos, usualmente de un ATM |
0210 | Respuesta al Requerimiento Financiero del Comprador | Respuesta del mensaje de requerimiento de fondos (aprobada o denegada) |
0220 | Aviso Financiero del Comprador | e.g. Checkout de un hotel |
0221 | Aviso Financiero del Comprador Repetici贸n | Si el aviso se vence por timeout |
0230 | Respuesta al Aviso Financiero del Comprador | Respuesta al mensaje 0220 |
0400 | Requerimiento de Reverso del Comprador | Reversa una transacci贸n |
0420 | Aviso de Reverso del Comprador | Aviso de que se realiz贸 un reverso |
0421 | Aviso de Reverso del Comprador Repetici贸n | Si el reverso se vence por timeout |
0430 | Respuesta del Aviso de Reverso del Comprador | Respuesta al aviso 0420 del Aviso de Reverso |
0800 | Requerimiento de Manejo de Red | Echo test, logon, log off etc |
0820 | Aviso de Manejo de Red | Keychange |
Bitmaps - Mapas de Bits
Dentro del ISO 8583, un mapa de bit es un campo o subcampo dentro de un mensaje que indica que otros elementos (campos o subcampos) se encuentran en el mensaje.
Un mensaje contendr谩 al menos un mapa de bits, llamado el Mapa de Bits Primario que indica que campos (Data Elements) del 1 al 64 est谩n presentes. Puede existir un mapa de bits secundario, generalmente como elemento 1 que indica que campos del 65 al 128 est谩n presentes. De igual forma, un tercer bitmap puede usarse para indicar la presencia o ausencia de los campos del 129 al 192, aunque esos campos casi nunca se usan.
El mapa de bits se puede transmitir como un dato binario de 8 bytes, o como un campo de 16 caracteres hexadecimales 0-9, A-F en el set de caracteres ASCII o EBCDIC.
Un campo est谩 presente cuando el bit correspondiente est谩 en true, ej. el byte 42x en binario es '0100 0010' lo que significa que los campos 2 y 7 est谩n presentes en este mensaje.
Ejemplos
Bitmap | Define la presencia de |
---|---|
4210001102C04804 | Campos 2, 7, 12, 28, 32, 39, 41, 42, 50, 53, 62 |
7234054128C28805 | Campos 2, 3, 4, 7, 11, 12, 14, 22, 24, 26, 32, 35, 37, 41, 42, 47, 49, 53, 62, 64 ,100 (Bitmap secundario requerido para mostrar la presencia del campo - 100) |
8000000000000001 | Campos 1, 64 |
0000000000000003 (Bitmap secundario) | Campos 127, 128 |
Explicaci贸n del Bitmap (8 bytes, Bitmap Primario = 64 Bit) campo 4210001102C04804
BYTE1 : 0100 0010 = 42x (contando de izquierda, el segundo y el s茅ptimo bit son 1, indicando que los campos 2 y 7 est谩n presentes)
BYTE2 : 0001 0000 = 10x (campo 12 est谩 presente)
BYTE3 : 0000 0000 = 00x (no hay campos presentes)
BYTE4 : 0001 0001 = 11x (campos 28 y 32 est谩n presentes)
BYTE5 : 0000 0010 = 02x (campo 39 est谩 presente)
BYTE6 : 1100 0000 = C0x (campos 41 y 42 est谩n presentes)
BYTE7 : 0100 1000 = 48x (campos 50 y 53 est谩n presentes)
BYTE8 : 0000 0100 = 04x (campo 62 esta presente)
nth bit | 0 | 10 | 20 | 30 | 40 | 50 | 60 |
---|---|---|---|---|---|---|---|
1234567890 | 1234567890 | 1234567890 | 1234567890 | 1234567890 | 1234567890 | 1234 | |
Bitmap | 0100001000 | 0100000000 | 0000000100 | 0100000010 | 1100000001 | 0010000000 | 0100 |
Campos presentes en un mensaje de longitud variable:
2-7-12-28-32-39-41-42-50-53-62
Data Elements - Campos de datos
Los Data Elements son los campos individuales que llevan la informaci贸n sustancial acerca de la transacci贸n. Hay 128 campos definidos en el est谩ndar ISO8583:1987, y 192 en posteriores releases. La revisi贸n de 1993 agreg贸 nuevas definiciones y elimin贸 algunas, sin embargo dej贸 el formato del mensaje sin cambios.
Mientras que cada Data Element tiene un significado y formato espec铆fico, el est谩ndar tambi茅n incluye algunos campos de prop贸sito general y algunos especiales para sistemas o pa铆ses, los cuales var铆an sustancialmente en su forma y uso de una implementaci贸n a otra.
Cada campo se describe en un formato est谩ndar que define el contenido permitido del campo (num茅rico, binario, etc.) y el largo del campo (variable o fijo), de acuerdo a la siguiente tabla:
Abreviatura | Significado |
---|---|
a | Alfanum茅rico, incluyendo los espacios |
n | Solo valores num茅ricos |
s | Solo caracteres especiales |
an | Alfanum茅rico |
as | Solo caracteres alfanum茅ricos y especiales |
ns | Solo caracteres num茅ricos y especiales |
ans | Caracteres Alfab茅ticos, num茅ricos y especiales |
b | Informaci贸n binaria |
z | Tracks 2 y 3 code set como se define en la ISO 4909 y en ISO 7813. |
Adem谩s, cada campo puede tener largo fijo o variable. Si es variable, el largo del campo ser谩 precedido por un indicador de largo.
Tipo | Significado |
---|---|
Fixed | Largo Fijo |
LLVAR o (..xx) | Donde xx < 100, significa que los dos primeros d铆gitos indican el largo del campo |
LLLVAR o (...xxx) | Donde xxx < 1000, significa que los tres primeros d铆gitos indican el largo del campo |
Un campo LLVAR o LLLVAR puede ser comprimido o ASCII dependiendo del formato del mensaje que puede ser ASCII o Comprimido. | Por ejemplo un campo LLVAR puede tener 1 o 2 bytes, si est谩 comprimido el hexa '23x significa que hay 23 elementos, si es ASCII, bytes '32x, '31x significa que hay 21 elementos. Un elemento depende del tipo de dato, si es num茅rico este estar谩 comprimido, ej. largo 87 se representar谩 por un byte '87x, si es ASCII ser谩n dos bytes '38x y '37x. Los campos LLLVAR usan 2 o 3 bytes (dependiendo del tipo de mensaje) con un '0' adelante si es comprimido. |
Data Element | Type | Usage |
---|---|---|
1 | b 64 | Bit Map Extended |
2 | n ..19 | Primary account number (PAN) |
3 | n 6 | Processing code |
4 | n 12 | Amount, transaction |
5 | n 12 | Amount, Settlement |
6 | n 12 | Amount, cardholder billing |
7 | n 10 | Transmission date & time |
8 | n 8 | Amount, Cardholder billing fee |
9 | n 8 | Conversion rate, Settlement |
10 | n 8 | Conversion rate, cardholder billing |
11 | n 6 | Systems trace audit number |
12 | n 6 | Time, Local transaction |
13 | n 4 | Date, Local transaction (MMdd) |
14 | n 4 | Date, Expiration |
15 | n 4 | Date, Settlement |
16 | n 4 | Date, conversion |
17 | n 4 | Date, capture |
18 | n 4 | Merchant type |
19 | n 3 | Acquiring institution country code |
20 | n 3 | PAN Extended, country code |
21 | n 3 | Forwarding institution. country code |
22 | n 3 | Point of service entry mode |
23 | n 3 | Application PAN number |
24 | n 3 | Function code(ISO 8583:1993)/Network International identifier (?) |
25 | n 2 | Point of service condition code |
26 | n 2 | Point of service capture code |
27 | n 1 | Authorizing identification response length |
28 | n 8 | Amount, transaction fee |
29 | n 8 | Amount. settlement fee |
30 | n 8 | Amount, transaction processing fee |
31 | n 8 | Amount, settlement processing fee |
32 | n ..11 | Acquiring institution identification code |
33 | n ..11 | Forwarding institution identification code |
34 | n ..28 | Primary account number, extended |
35 | z ..37 | Track 2 data |
36 | z ..104 | Track 3 data |
37 | an 12 | Retrieval reference number |
38 | an 6 | Authorization identification response |
39 | an 2 | Response code |
40 | an 3 | Service restriction code |
41 | ans 8 | Card acceptor terminal identification |
42 | ans 15 | Card acceptor identification code |
43 | ans 40 | Card acceptor name/location |
44 | an ..25 | Additional response data |
45 | an ..76 | Track 1 Data |
46 | an ...999 | Additional data - ISO |
47 | an ...999 | Additional data - National |
48 | an ...999 | Additional data - Private |
49 | a 3 | Currency code, transaction |
50 | an 3 | Currency code, settlement |
51 | a 3 | Currency code, cardholder billing |
52 | b 16 | Personal Identification number data |
53 | n 18 | Security related control information |
54 | an ..120 | Additional amounts |
55 | ans ...999 | Reserved ISO |
56 | ans ...999 | Reserved ISO |
57 | ans ...999 | Reserved National |
58 | ans ...999 | Reserved National |
59 | ans ...999 | Reserved for national use |
60 | an ..7 | Advice/reason code (private reserved) |
61 | ans ...999 | Reserved Private |
62 | ans ...999 | Reserved Private |
63 | ans ...999 | Reserved Private |
64 | b 16 | Message authentication code (MAC) |
65 | b 16 | Bit map, tertiary |
66 | n 1 | Settlement code |
67 | n 2 | Extended payment code |
68 | n 3 | Receiving institution country code |
69 | n 3 | Settlement institution county code |
70 | n 3 | Network management Information code |
71 | n 4 | Message number |
72 | ans ...999 | Data record (ISO 8583:1993)/n 4 Message number, last(?) |
73 | n 6 | Date, Action |
74 | n 10 | Credits, number |
75 | n 10 | Credits, reversal number |
76 | n 10 | Debits, number |
77 | n 10 | Debits, reversal number |
78 | n 10 | Transfer number |
79 | n 10 | Transfer, reversal number |
80 | n 10 | Inquiries number |
81 | n 10 | Authorizations, number |
82 | n 12 | Credits, processing fee amount |
83 | n 12 | Credits, transaction fee amount |
84 | n 12 | Debits, processing fee amount |
85 | n 12 | Debits, transaction fee amount |
86 | n 15 | Credits, amount |
87 | n 15 | Credits, reversal amount |
88 | n 15 | Debits, amount |
89 | n 15 | Debits, reversal amount |
90 | n 42 | Original data elements |
91 | an 1 | File update code |
92 | n 2 | File security code |
93 | n 5 | Response indicator |
94 | an 7 | Service indicator |
95 | an 42 | Replacement amounts |
96 | an 8 | Message security code |
97 | n 16 | Amount, net settlement |
98 | ans 25 | Payee |
99 | n ..11 | Settlement institution identification code |
100 | n ..11 | Receiving institution identification code |
101 | ans 17 | File name |
102 | ans ..28 | Account identification 1 |
103 | ans ..28 | Account identification 2 |
104 | ans ..100 | Transaction description |
105 | ans ...999 | Reserved for ISO use |
106 | ans ...999 | Reserved for ISO use |
107 | ans ...999 | Reserved for ISO use |
108 | ans ...999 | Reserved for ISO use |
109 | ans ...999 | Reserved for ISO use |
110 | ans ...999 | Reserved for ISO use |
111 | ans ...999 | Reserved for ISO use |
112 | ans ...999 | Reserved for national use |
113 | n ..11 | Authorizing agent institution id code |
114 | ans ...999 | Reserved for national use |
115 | ans ...999 | Reserved for national use |
116 | ans ...999 | Reserved for national use |
117 | ans ...999 | Reserved for national use |
118 | ans ...999 | Reserved for national use |
119 | ans ...999 | Reserved for national use |
120 | ans ...999 | Reserved for private use |
121 | ans ...999 | Reserved for private use |
122 | ans ...999 | Reserved for private use |
123 | ans ...999 | Reserved for private use |
124 | ans ..255 | Info Text |
125 | ans ..50 | Network management information |
126 | ans ..6 | Issuer trace id |
127 | ans ...999 | Reserved for private use |
128 | b 16 | Message Authentication code |
Ejemplos
Definici贸n de Campo | Significado |
---|---|
n6 | Campo de largo fijo con 6 d铆gitos |
n.6 | Campo LVAR num茅rico con hasta 6 d铆gito de largo |
a..11 | Campo LLVAR alfanum茅rico con hasta 11 caracteres de largo |
b...999 | Campo LLLVAR binario de hasta 999 bytes de largo |
Enlaces externos
- ISO8583 Parser Online Free Online ISO8583 Parser
- DL-ISO-8583 Open-source implementation, written in C
- GPL'd ISO8583 Framework
- jPOS ISO-8583 Framework in Java
- j8583 Open-source implementation, written in Java
- Trx Framework Proyecto de c贸digo abierto en .NET para intercambio de mensajes financieros con soporte para ISO 8583