¿Qué es y en qué consiste?
Necesita un producto ESB para ISO8583? Hecha un vistazo a: ApiEMBSwitch
Para entender que es ISO8583 en una forma práctica y simple, un mensaje ISO8583 es una cadena de caracteres (STRING) que consiste de tres partes:
-
MTI - Message Type Indicator (Indicador de mensaje): Campo numérico de 4 dígitos, indica tipo de mensaje.
-
BITMAP - mapa en bits: Este es un campos de 16 o 32 dígitos hexadecimal.
Cuando el largo del bitmap es 16, el bitmap sólo contiene el bitmap primario,
cuando es de largo 32, el bitmap contiene tanto el bitmap primario como el secundario.
El primer bit del primer dígito indica si el bitmap cuanta con el bitmap secundario.
-
Datos - corresponden a los campos de datos definidos por el BITMAP.
Ejemplo de un mensaje ISO8583
02004200040000000002161234567890123456060
9173030123456789ABC1000123456789012345678
90123456789012345678901234567890123456789
0123456789012345678901234567890123456789
Donde:
0200 - MTI (indicador de mensaje),
4200040000000002 - bitmap primario,
1234567890123456 - campo 2,
0609173030 - campo 7,
123456789ABC - campo 22,
012345678901234567890123456789012345678901234567890\
1234567890123456789012345678901234567890123456789 - campo 63.
¿Para que sirve?
Los mensaje de tipo ISO8583 se utilizan en las transacciones bancarias y/o financieras.
Definición de ISO8583
Para cada campo (también llamado bit), existe una definición única y específica de su
uso. Algunos campos son de largo fijo y otros de largo variable, estos últimos comienzan con un indicador de
longtitud. Un conjunto de definiciones de campos (128 máximo) forma una
definición de ISO8583.
Es importante tener en cuenta que un mensaje ISO8583 sólo funcionará contra su propia definición.
Existe una definición estandar de ISO8583, pero en el uso real, muchas empresas la modifican
y generan su propia definición de ISO8583. Por lo tanto, un mensaje ISO8583
puede ser válido para una definición pero inválida para otra.
¿Que herramienta se debe tener para trabaja con ISO8583?
Desde el punto de vista de la implementación de ISO8583, debe contar con siguientes funcionalidades:
-
Parser (analizador sintáctico, también llamado unpacker) de ISO8583: el rol del parser es
validar y convertir un mensaje ISO8583 a un juego de campos y valores que puedan ser procesados. La
validación y conversión se realiza contra una definición específica de ISO8583.
Clic aquí
-
Pack (empaquetar) ISO8583: el rol de Pack es construir un mensaje ISO8583 a partir de un conjunto de campos y valores
separados. Aquí también la construcción de un mensaje ISO8583 se realiza contra una definición
específica de ISO8583.
-
Un ISO8583 Bitmap Dumper: Herramienta para mostrar que campos vienen en un bitmap.
Click aquí
-
Un ISO8583 Message dumper: Herramienta para desplegar campos de un mensaje ISO8583. Esta herramienta
te facilitará el análisis de los campos que componen un mensaje ISO8583. Un análisis hecho a
mano requiere de 3 a 20 minutos, según el tamaño del mensaje, con ayuda de esta herramienta, se
realizará al instante. Click aquí
-
Un Personalizador de Definición ISO8583: Herramienta que te permite crear una nueva
definición de ISO8583 para tu propio uso. Click aquí
Campos típicos de un mensaje ISO8583
Un mensaje típico podría incluir los siguientes campos:
- MTI - Message Type Indicator - indicador de tipo de mensaje.
- Bit 2 - Número de cuenta primaria
- Bit 3 - Código de Procesamiento
- Bit 7 - Fecha y hora de la transmisión
- Bit 11 - Código de auditoría
- Bit 12 - Hora local de transacción
- Bit 13 - Fecha local de transacción
- Bit 32 - Código de identificación de la institución de adquisición
- Bit 38 - El código de autorización como respuesta
- Bit 39 - Código de respuesta
- Bit 49 - Código de moneda de la transación
Diferentes formatos de Mensaje ISO8583
Un sistema de tipo switch, que rutea (route) transacciones desde POS/ATM o
WEB hacia diferentes bancos y/o instituciones financieras, debe ser capaz de
procesar diferentes tipos de ISO8583. Existen varios tipos de formato de intercambio
de mensajería ISO8583, pero se pueden clasificar en dos grupos: en ASCII o en Binario
Para un ISO8583 como este
[000] [0200]
[002] [1234567890123456]
[007] [20100609173030]
[022] [ABC123]
[063] [012345678901234567890123456789012345678901234567890\
1234567890123456789012345678901234567890123456789]
Mensaje ISO8583 en base de ASCII
En formato ASCII, este mensaje ISO8583 se ve así:
00000000H 30 32 30 30 34 32 30 30 30 34 30 30 30 30 30 30 0200420004000000
00000010H 30 30 30 32 31 36 31 32 33 34 35 36 37 38 39 30 0002161234567890
00000020H 31 32 33 34 35 36 30 36 30 39 31 37 33 30 33 30 1234560609173030
00000030H 41 42 43 31 32 33 20 20 20 20 20 20 31 30 30 30 ABC123......1000
00000040H 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 1234567890123456
00000050H 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 7890123456789012
00000060H 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 3456789012345678
00000070H 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 9012345678901234
00000080H 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 5678901234567890
00000090H 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 1234567890123456
000000a0H 37 38 39 789
Este tipo de mensaje ISO8583 es más fácil de transportar desde
un ambiente a otro, también se llamas zonas. A diferencia de los ISO8583
de tipo binario, el que muchas veces debe ser codificado para ser transportado a
otras zonas. La desventaja de los mensajes en base ASCII es que el largo total del
mensaje es más largo que el de los binarios.
Mensajes ISO8583 en base binario
El mismo mensaje ISO8583, en formato binario, se ve así:
00000000H 02 00 42 00 04 00 00 00 00 02 16 12 34 56 78 90 ..B.........4Vx.
00000010H 12 34 56 06 09 17 30 30 41 42 43 31 32 33 20 20 .4V...00ABC123..
00000020H 20 20 20 20 01 00 30 31 32 33 34 35 36 37 38 39 ......0123456789
00000030H 30 31 32 33 34 35 36 37 38 39 30 31 32 33 34 35 0123456789012345
00000040H 36 37 38 39 30 31 32 33 34 35 36 37 38 39 30 31 6789012345678901
00000050H 32 33 34 35 36 37 38 39 30 31 32 33 34 35 36 37 2345678901234567
00000060H 38 39 30 31 32 33 34 35 36 37 38 39 30 31 32 33 8901234567890123
00000070H 34 35 36 37 38 39 30 31 32 33 34 35 36 37 38 39 4567890123456789
00000080H 30 31 32 33 34 35 36 37 38 39 0123456789
Claramente, el largo del mismo mensaje ISO8583 en formato binario es
más corto que en formato ASCII. Para utilizar el formato binario,
existe una exigencia de "padding". En el ejemplo anterior, el campo 63
es tipo LLLVAR, por lo tanto en formato ASCII se comienza por
"1000123456...." donde 100 es el largo, y el STRING es "0123456....."
corresponde al dato. En formato binario, el tipo LLLVAR se convierte
a "01 00" que realiza un PADDING de un zero a la izquierda del
campo largo, así se convierte como LLLLVAR.
|