- ISO 8583
-
ISO 8583 Standard para Transacciones Financieras con Mensajes originados en una tarjeta - Especificaciones de los mensajes de intercambio es el standard de la International Organization for Standardization para sistemas que intercambian transacciones electrónicas realizadas por poseedores de tarjetas de crédito.
Contenido
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 que 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 standard ISO 8583 que se está usando en este mensaje
Position Meaning 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 Requerimiento (Request) xx1x Respuesta al Requerimiento (Request Response) xx2x Aviso (Advice) xx3x Respuesta al Aviso (Advice Response) xx4x Notificación xx8x Reconocimiento de respuesta (Response acknowledgment) xx9x No Reconocimiento (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 que 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 standard:
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 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 0400 Requerimiento de Reverso del Comprador Reversa una transaccion 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 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 : 01000010 = 42x (contando de izquierda, el segundo y el séptimo bit son 1, indicando que los campos 2 y 7 están presentes)
BYTE2 : 00010000 = 10x (campo 12 está presente)
BYTE3 : 00000000 = 00x (no hay campos presentes)
BYTE4 : 00010001 = 11x (campos 28 y 32 están presentes)
BYTE5 : 00000010 = 02x (campo 39 está presente)
BYTE6 : 11000000 = C0x (campos 41 y 42 están presentes)
BYTE7 : 01001000 = 48x (campos 50 y 53 están presentes)
BYTE8 : 00000100 = 04x (campo 62 esta presente)
0________10________20________30________40________50________60__64
1234567890123456789012345678901234567890123456789012345678901234 n-th bit
0100001000010000000000000001000100000010110000000100100000000100 bit map
Campos presentes en un mensaje de longitud variable:
2-7-12-28-32-39-41-42-50-53-62Data 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 standard ISO8583:1987, y 192 en posteriores releases. La revisión de 1993 agregó nuevas definiciones, eliminó algunas pero sin embargo dejó el formato del mensaje sin cambios.
Mientras que cada Data Element tiene un significado y formato específico, el standard también incluye algunos campos de propósito general y algunos especiales para sistemas o países, los cuales varian sustancialmente en su forma y uso de una implementación a otra.
Cada campo se describe en un formato standard 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 Sólo valores numéricos s Sólo caracteres especiales an Alfanumérico as Sólo caracteres alfanuméricos y especiales ns Sólo caracteres numéricos y especiales ans Caracteres Alfabeticos, numericos 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 digitos indican el largo del campo LLLVAR o (...xxx) Donde xxx < 1000, significa que los tres primeros digitos 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 bytos '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 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 n ..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 digitos n.6 Campo LVAR numérico con hasta 6 digito 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
- 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
- PHP ISO8583 Parser PHP ISO8583 Parser Online
Wikimedia foundation. 2010.