ISO 8583

De Wikipedia, la enciclopedia libre

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[editar]

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[editar]

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[editar]

  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[editar]

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[editar]

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 Reconciliación Transmite información de cierre
x6xx Administrativo Transmite información de falla en los mensajes
x7xx cobro de tarifas
x8xx gestión 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[editar]

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[editar]

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[editar]

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[editar]

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[editar]

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[editar]

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 Alfabético, 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.
ISO-Defined Data Elements
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[editar]

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[editar]