VTOL CD DO - Manual mensajería POS - VTOL DO
VTOL CRÉDITO DÉBITO DOMINICANA
1. Campos de los mensajes
1.1 Protocolo de comunicación POS – VTOL
Napse establece un protocolo de comunicación para la interacción POS - VTOL, el cual se denomina "Protocolo VTOL" o "llavecitas". Dicho protocolo se basa en un esquema recursivo compuesto por campos y separadores. A continuación se provee una especificación detallada de su estructura junto con los consecuentes diagramas para un mejor entendimiento.
Para implementar esta mensajería, VTOL provee una librería en el cual se encuentra la declaración de funciones y las definiciones de constantes y tipos necesarias. La librería es en realidad un módulo cliente que se comunica vía TCP/IP con el servidor de transacciones VTOL. El cliente podrá implementar esta mensajería sin utilizar la librería, pero deberá respetar el formato de la misma.
El formato del protocolo Synthesis se basa en la siguiente estructura:
Header | Mensaje | |
---|---|---|
Longitud del mensaje (4 bytes) | Indica si el mensaje requiere respuesta o no (2 bytes) | Ejemplo: {25:20020426172836;1:5;2:1;27:00;26:ISO8583;28:Aprobado} |
La estructura posee dos partes separadas que son el Header y el Mensaje propiamente dicho.
1.1.1 Header
Dentro del Header viaja información específica del mensaje que se encuentra a continuación del mismo, como ser su longitud y si requiere o no una respuesta. Para ello fueron destinados 6 bytes que se distribuyen de la siguiente manera: los primeros 4 bytes son destinados a la longitud (expresado en hexadecimal, con el último byte como el más significativo) y los últimos 2 indican la necesidad de recibir o no una respuesta (expresado en hexadecimal, con el último byte como el más significativo)
Longitud máxima representable por medio de este protocolo: 2047 MB (Mega Bytes) (cantidad máxima representable por un entero: 2147483647 bytes)
Un ejemplo de lo explicado anteriormente podría ser el siguiente:
HEADER | |
---|---|
Longitud del mensaje | Requiere respuesta |
A101 | 01 |
En este ejemplo la longitud del mensaje será:
0001 0000 0001 1010
1 0 1 A = 212 + 24 + 23 + 21 = 4122
NOTA: se ordena la longitud A101colocando el byte más significativo a la izquierda, con lo cual resulta: 101A.
1.1.2 Mensaje
A continuación del Header se encuentra el Mensaje propiamente dicho, el cual contiene la información que el emisor desea transmitirle al sistema receptor.
Existen dos opciones para la estructura del Mensaje, las cuales se presentan a continuación:
- Simple
Mensaje Campo Valor Campo Valor
El mensaje viajará encerrado entre "{ }" (llaves). Cada campo del mismo se compondrá de la siguiente manera: los primeros dígitos indicarán el número de campo y a partir de los ":" (dos puntos) se encontrará el valor del campo. Los campos viajan separados por ";" (punto y coma).
Ejemplo:
{1:5;2:1;26:ISO8583;27:00;28:Aprobado}
El mensaje anterior posee 5 campos, los cuales se identifican con los números 1, 2, 26, 27 y 28. A continuación de cada uno de ellos (luego del separador ":") se encuentra el valor de cada campo. En el ejemplo presentado, para el campo 1 el valor es "5", para el campo 2 el valor es "1" y así sucesivamente.
1.1.3 Escape de caracteres
Para realizar el escape de un caracter especial se deberá usar "\" inmediatamente antes del carácter a escapar.
Ejemplo:
A continuación se presenta un campo cuyo valor incluye el carácter ; y se muestra como escapar el mismo: {1:14\;56}
1.2 Mecanismo de "Tercer Mensaje"
1.2.1 Descripción
VTOL es un intermediario entre el POS y el Centro Autorizador. Cuando VTOL responde al POS un requerimiento a partir de la información recibida desde el Centro Autorizador, el mismo desconoce la interacción que se está teniendo entre el cliente y el operador y los problemas técnicos que pueda tener el POS (impresora, enlaces, etc). Es necesario cargar al POS con la responsabilidad de confirmar a VTOL cómo terminó la transacción, pudiéndose confirmar o reversar. Para ello existe el Tercer Mensaje del POS a VTOL.
Por lo tanto, el tercer mensaje es un mecanismo para asegurar la consistencia y concordancia de las transacciones realizadas que son registradas en VTOL.
A fines de simplificar el esquema de comunicación, suponiendo que el Centro Autorizador aprueba el requerimiento de VTOL, el flujo de mensajes entre el POS y VTOL es el siguiente:
- El POS envía un requerimiento de autorización a VTOL.
- VTOL responde al POS que el requerimiento fue autorizado y envía el ID de la transacción.
- El POS informa a VTOL con el Tercer Mensaje si la transacción se debe confirmar o reversar (COMMIT / ROLLBACK)
Dicho esquema requiere que cada transacción aprobada deba ser confirmada o reversada con un tercer mensaje. Si VTOL responde al POS con la aprobación de una transacción y no se confirma o reversa, a la próxima transacción que el POS envíe VTOL responderá que aún existe una transacción pendiente y hasta que no se envíe el tercer mensaje correspondiente no se podrá tratar la transacción en curso.
El tercer mensaje puede enviarse embebido en un requerimiento. Así en una misma transacción se enviará un requerimiento y la confirmación o reverso de una transacción pendiente.
No siempre cada transacción en el POS se corresponde con un único pago electrónico. Una operación de venta en el POS podría tener una o más transacciones de pago electrónico validadas por intermedio de VTOL. En dicho escenario, para el envío del tercer mensaje debe establecerse una condición por la que se da por finalizada la venta en el POS. Esta condición podría ser el registro de la transacción o la impresión del comprobante, pero se deberá tener en cuenta que para confirmar una transacción, VTOL se tiene que asegurar que la venta que contiene esa transacción sea procesada por el POS, que se emitan los comprobantes correspondientes, etc.
Por otro lado, si la venta en el POS se registra como anulada o directamente no se registra (ya sea por pedido del operador, o por problemas técnicos) se debe asegurar que en el tercer mensaje de las transacciones correspondientes vaya la orden de ROLLBACK para esta transacción.
1.2.2 Control de operaciones pendientes (mensaje "CheckPending")
Los mensajes de confirmación no son respondidos por VTOL. Además estos mensajes pueden ser embebidos en futuros mensajes de pedido de autorización, lo que da lugar a que algunas operaciones queden pendientes de confirmación entre dos transacciones distintas. El cierre o la eventual caída del punto de venta podría ocasionar dicha contingencia ya que no existiría un futuro mensaje de confirmación o pedido de autorización con la confirmación embebida.
Ante esta problemática, el esquema de comunicación entre el POS y VTOL posee un mecanismo para asegurar que ninguna transacción quede pendiente de confirmación en VTOL. El mecanismo consta de los siguientes pasos:
- El punto de venta envía un mensaje de chequeo de pendientes "CheckPending" a VTOL. Para ello, el mensaje debe contar con el siguiente campo: 71:True.
- VTOL verificará la existencia de transacciones pendientes y en caso de existir responderá con un mensaje que, entre otros campos, tendrá los siguientes:
- Campo 24: ID de la Transacción pendiente.
- Campo 26: TrxIsPending.
- El punto de venta envía la confirmación de dicha transacción (Commit/Rollback) y envía un nuevo mensaje de chequeo de pendientes. Esto se podría realizar en un solo paso, enviando un mensaje de chequeo de pendientes con la confirmación embebida.
- Se deberá repetir el proceso hasta tanto existan transacciones pendientes en VTOL. Cuando ya no existan VTOL responderá APROBADA.
1.2.3 Tercer Mensaje con múltiples operaciones
También existe la posibilidad de deshabilitar el chequeo de pendientes (Campo 71:False). Esto permite realizar un conjunto de transacciones que podrán ser confirmadas o reversadas posteriormente haciendo que VTOL se dedique a la transacción en curso. Por ejemplo:
IMPORTANTE: La implementación del Tercer Mensaje y Mensajes de Control de Pendientes, dependerá del tipo de integración que se realiza en el Punto de Venta, y quedará a elección del cliente utilizar algunos, o todos los Mensajes descriptos.
1.3 Transacciones permitidas
En esta sección se detallarán las transacciones soportadas por VTOL así como los campos requeridos u opcional de cada transacción.
1.3.1 Venta
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Obligatorio | Identificador del Server que procesará la transacción. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Obligatorio | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Obligatorio si el campo 10 = E-Commerce, MOTO, Manual | Número de tarjeta. |
7 | expiration | Numérico | Obligatorio si el campo 10 = E-Commerce, MOTO, Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. |
8 | Cvc | Numérico | Obligatorio si el campo 10 = E-Commerce, MOTO, Manual | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual, MOTO o E-Commerce |
9 | track2 | Alfanumérico | Obligatorio si el capo 10 = MSR, MSR Chip, MSR ChipError, Chip | Track2 de la tarjeta completo (se envía todo el contenido del track2 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
10 | posInputMode | Alfanumérico | Obligatorio | Modo de Ingreso:
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
12 | amount | Importe | Obligatorio | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
22 | authorizationCode | Numérico | Obligatorio si el campo 85 = 2 | Código de autorización telefónica. 6 dígitos como máximo. Este campo se encuentra presente sólo si la transacción se autorizó off-line por teléfono o si el modo de envío es Capture Only (esto último para First Data) |
23 | authorizationMode | Alfanumérico | Opcional, default = Online | Modo de Autorización:
|
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
27 | responseCode | Alfanumérico | Obligatorio si el campo 85 = 2 | Aplica para FirstData. |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción (Configuración VTOL). |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
80 | taxAmount | Numérico | Opcional | Monto de impuesto de la transacción. 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
85 | acquirerRefData | Numérico | Opcional First Data Default = 1 | Este dato es enviado a First Data para indicarle cómo debe procesar la transacción, las opciones son:
|
86 | rrn | Alfanumérico | Obligatorio si el campo 85 = 2 | Aplica para FirstData. |
102 | chipTokens | Alfanumérico | Obligatorio si el campo 10 = Chip | Aplica para Visanet y Cardnet |
109 | additionalDataMerchant | Alfanumérico | Opcional | Aplica para FirstData. |
157 | customerServicePhone | Numérico | Obligatorio | Aplica para FirstData. |
158 | orderNumber | Numérico | Obligatorio, si el campo 85 = 1, 2 | Aplica para FirstData. |
159 | eCommerceUrl | Alfanumérico | Condicionado, si el campo 10 = E-Commerce | Aplica para FirstData. |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Numérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
68 | rrn | Numérico | Reference referral number. |
102 | chipTokens | Alfanumérico | Aplica para Visanet y Cardnet |
1.3.2 Anulación de venta
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Obligatorio | Identificador del Server que procesará la transacción. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Obligatorio | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Obligatorio si el campo 10 = E-Commerce, MOTO, Manual | Número de tarjeta. |
7 | expiration | Numérico | Obligatorio si el campo 10 = E-Commerce, MOTO, Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. |
8 | Cvc | Numérico | Obligatorio si el campo 10 = E-Commerce, MOTO, Manual | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual, MOTO o E-Commerce |
9 | track2 | Alfanumérico | Obligatorio si el capo 10 = MSR, MSR Chip, MSR ChipError, Chip | Track2 de la tarjeta completo (se envía todo el contenido del track2 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
10 | posInputMode | Alfanumérico | Obligatorio | Modo de Ingreso:
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
12 | amount | Importe | Obligatorio | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
22 | authorizationCode | Numérico | Obligatorio si el campo 85 = 2 | Código de autorización telefónica. 6 dígitos como máximo. Este campo se encuentra presente sólo si la transacción se autorizó off-line por teléfono o si el modo de envío es Capture Only (esto último para First Data) |
23 | authorizationMode | Alfanumérico | Opcional, default = Online | Modo de Autorización:
|
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
27 | responseCode | Alfanumérico | Obligatorio si el campo 85 = 2 | Aplica para FirstData. |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción (Configuración VTOL). |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
80 | taxAmount | Numérico | Opcional | Monto de impuesto de la transacción. 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
85 | acquirerRefData | Numérico | Opcional First Data Default = 1 | Este dato es enviado a First Data para indicarle cómo debe procesar la transacción, las opciones son:
|
86 | rrn | Alfanumérico | Obligatorio si el campo 85 = 2 | Aplica para FirstData. |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Numérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
68 | rrn | Numérico | Reference referral number. |
1.3.3 Validación de tarjeta
La estructura del mensaje de validación de tarjeta no requiere definición del monto, ya que sólo verifica el estado de dicha tarjeta. Ésta transacción no requiere de tercer mensaje.
Este mensaje sólo aplica para autorizaciones de First Data
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción. |
3 | server | Alfanumérico | Obligatorio | Identificador del Server que procesará la transacción. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Obligatorio | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Obligatorio | Número de tarjeta. |
7 | expiration | Numérico | Obligatorio | Formato YYYYMM Fecha de vencimiento de la tarjeta. |
8 | Cvc | Numérico | Obligatorio | Código de seguridad de la tarjeta. |
10 | posInputMode | Alfanumérico | Obligatorio | Modo de Ingreso:
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
23 | authorizationMode | Alfanumérico | Opcional, default = Online | Modo de Autorización:
|
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción (Configuración VTOL). |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Numérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
68 | rrn | Numérico | Reference referral number. |
1.3.4 Devolución
La estructura del mensaje de devolución es muy similar a la del mensaje de venta, con la diferencia que se agregan dos campos que identifican a la transacción original sobre la que se hace la devolución (campos marcados en celeste). Todos los campos para éste mensaje son obligatorios.
Requerimiento
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Identificador del Server que procesará la transacción. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Número de tarjeta. Presente si el modo de ingreso fue E-Commerce, MOTO o Manual. |
7 | expiration | Numérico | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue E-Commerce, MOTO o Manual. |
8 | cvc | Numérico | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue E-Commerce, MOTO o Manual. |
10 | posInputMode | Alfanumérico | Modo de Ingreso:
|
11 | trxType | Alfanumérico | Tipo de Transacción:
|
12 | amount | Importe | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Tipos de Moneda:
|
14 | payments | Numérico | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Plan. 1 caracter de longitud. |
16 | originalDate | Fecha | Este campo debe viajar si el tipo de transacción es Refund. Se trata de la fecha de la transacción original en el formato YYYYMMDD. |
17 | originalTrxTicketNr | Numérico | Condicional, para tiendas físicas debe enviarse si no se envía el campo 167 |
22 | authorizationCode | Numérico | Aplica para FirstData. |
25 | dateTime | Numérico | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
27 | responseCode | Numérico | Aplica para FirstData. |
53 | paymentCondition | Alfanumérico | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción. |
71 | checkPendingString | Alfanumérico | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
80 | taxAmount | Numérico | Monto de impuesto de la transacción. 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
86 | rrn | Alfanumérico | Aplica para FirstData. |
157 | customerServicePhone | Numérico | Número de servicio para atención telefónica del establecimiento |
158 | orderNumber | Numérico | Número de orden asociado a la trx, debe ser único por cada requerimiento. |
167 | originalTrxReferenceNumber | Numérico | Obligatorio para tiendas virtuales. |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
68 | rrn | Numérico | Reference referral number. |
1.3.5 Anulación Devolución
Requerimiento
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Identificador del Server que procesará la transacción. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Número de tarjeta. Presente si el modo de ingreso fue E-Commerce, MOTO o Manual. |
7 | expiration | Numérico | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue E-Commerce, MOTO o Manual. |
8 | cvc | Numérico | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue E-Commerce, MOTO o Manual. |
10 | posInputMode | Alfanumérico | Modo de Ingreso:
|
11 | trxType | Alfanumérico | Tipo de Transacción:
|
12 | amount | Importe | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Tipos de Moneda:
|
14 | payments | Numérico | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Plan. 1 caracter de longitud. |
16 | originalDate | Fecha | Este campo debe viajar si el tipo de transacción es Refund. Se trata de la fecha de la transacción original en el formato YYYYMMDD. |
17 | originalTrxTicketNr | Numérico | Condicional, para tiendas físicas debe enviarse si no se envía el campo 167 |
22 | authorizationCode | Numérico | Aplica para FirstData. |
25 | dateTime | Numérico | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
27 | responseCode | Numérico | Aplica para FirstData. |
53 | paymentCondition | Alfanumérico | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción. |
71 | checkPendingString | Alfanumérico | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
80 | taxAmount | Numérico | Monto de impuesto de la transacción. 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
86 | rrn | Alfanumérico | Aplica para FirstData. |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
68 | rrn | Numérico | Reference referral number. |
1.3.6 Tercer Mensaje
Requerimiento
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Identificador del Server que procesará la transacción. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Tipo de Mensaje:
|
11 | trxType | Alfanumérico | Tipo de Transacción:
|
19 | lastTrxAction | Alfanumérico | Acción a realizar sobre la Transacción:
|
24 | lastTrxId | Numérico | Id de transacción a confirmar / reversar. |
25 | dateTime | Numérico | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
Respuesta
El tercer mensaje no tiene respuesta, salvo que esté prendido el flag de chequeo de transacciones pendientes.
1.3.7 Tercer Mensaje Embebido
El tercer mensaje puede enviarse embebido en otro requerimiento. Así en una misma transacción se enviará un requerimiento y la confirmación o reverso de una transacción pendiente. Para ello, deberán ser agregados los siguientes campos a la transacción en curso:
Requerimiento
# | FieldId | Tipo | Descripción |
19 | lastTrxAction | Alfanumérico | Acción a realizar sobre la Transacción:
|
24 | lastTrxId | Numérico | Id de transacción a confirmar / reversar. |
Respuesta
El tercer mensaje embebido, al igual que el Tercer Mensaje, no tiene respuesta. De todas formas, sí existe respuesta para la transacción que lo embebe.
1.3.8 Chequeo de Pendientes
El mensaje de chequeo de pendientes sirve para averiguar si el POS que envía la transacción tiene alguna transacción pendiente de confirmación.
Este mensaje se utiliza en ambientes en donde el POS administra los nodos, para un ambiente de nodos virtuales, utilizar el mensaje CheckPendingList
Requerimiento
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Identificador del Server que procesará la transacción. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Tipo de Mensaje:
|
11 | trxType | Alfanumérico | Tipo de Transacción:
|
25 | dateTime | Numérico | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
Respuesta
# | FieldId | Tipo | Descripción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción. |
24 | trxId | Numérico | OPCIONAL: En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta emitido por VTOL. OPCIONAL: Aparece si campo 26 no es TrxIsPending. |
28 | responseMessage | Alfanumérico | Mensaje de respuesta. Por ejemplo "Aprobada" |
31 | lotNumber | Numérico | Constante igual a 1 para mantener compatibilidad hacia atrás. |
32 | ticket | Numérico | Constante igual a 1 para mantener compatibilidad hacia atrás. |
Nota: si la respuesta es "aprobada" significa que no hay transacciones pendientes.
1.3.9 Chequeo de pendientes en lista
Requerimiento
# | FieldId | Tipo | Obligatorio | Description |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Obligatorio | Valor constante 'VTOL' |
4 | messageType | Alfanumérico | Obligatorio | Valor constante Data |
11 | trxType | Alfanumérico | Obligatorio | Tipo de transacción:
|
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la transacción en el POS. Formato YYYYMMDDHHmmss |
162 | storeFilter | Alfanumérico | Opcional | ID del originador del que se desea obtener la lista de transacciones pendientes. Si este campo no está presente se devolverá la lista de las transacciones pendientes para todos los originadores. |
163 | Threshold | Alfanumérico | Opcional; default=0 | Número de minutos hacia atrás que se ignoraran para buscar transacciones pendientes. |
Respuesta
# | FieldId | Tipo | Descripción |
2 | node | Numeric | Identificación del nodo, en el sitio originador, donde se generó la transacción |
25 | dateTime | Numeric | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alphanumeric | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numeric | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alphanumeric | Mensaje de la Respuesta ISO-8583 |
31 | lotNumber | Numeric | Lote Constante 1 |
32 | ticket | Numeric | Lote Constante 1 |
161 | trxIdList | Alphanumeric | Lista de transacciones pendientes de confirmación por el originador en el siguiente formato: [Store&Node&TrxIdList|Store&Node&TrxIdList|…] Donde:
Ejemplo: [0000000001&0000000006&4,2,3] Y para un originador virtual: [0000000006&V&13021512453900002321,13021512453600002320] |
1.3.10 Tercer mensaje en lista
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Obligatorio | Constante "VTOL" |
4 | messageType | Alfanumérico | Obligatorio | Constante: "Data" |
11 | trxType | Alfanumérico | Obligatorio | Tipo de transacción
|
19 | lastTrxAction | Alfanumérico | Obligatorio | Acción a realizar sobre las transacciones del campo 161:
|
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
161 | lastTrxIdList | Alfanumérico | Obligatorio | Lista de transacciones a confirmar/reversar para una tienda y nodo en el siguiente formato: [Store&Node&TrxIdList|Store&Node&TrxIdList|…] Donde:
|
Ejemplo:
{11:UnSyncCompletionList;1:1;2:1;25:20130511213613;19:Commit;3:VTOL;4:Data;161:[1&1&50,51,52|1&2&84,95|2&1&99,124]}
En este ejemplo, de acuerdo a los campos 19 y 161, VTOL tomará las siguientes acciones sobre las transacciones:
Store | Node | Transaction Id | Action |
1 | 1 | 50,51,52 | Commit |
1 | 2 | 84,95 | Commit |
2 | 1 | 99,124 | Commit |
Para el caso de un originador virtual:
{11:UnSyncCompletionList;1:1;2:1;25:20130511213613;19:Commit;3:VTOL;4:Data;161:[1&V&50000000000000000000,51000000000000000000,52000000000000000000,84000000000000000000,95000000000000000000|2&V&99000000000000000000,124000000000000000000]}
Store | Transaction Id | Action |
1 | 50000000000000000000,51000000000000000000,52000000000000000000, 84000000000000000000,95000000000000000000 | Commit |
2 | 99000000000000000000,124000000000000000000 | Commit |
Respuesta
El tercer mensaje en lista no tiene respuesta.
1.3.11 Consulta de Configuración
Por medio de éste mensaje, el POS puede solicitar a VTOL el envío de la configuración generada a partir de la ejecución de la interface para POS.
El POS debe enviar en el mensaje el número de versión de la configuración que posee, de esta manera VTOL puede validar si es necesario devolver la información o no.
A nivel implementación se recomienda no ejecutar éste mensaje entre cada mensaje de autorización ya que podría degradar la performance del sistema.
Es recomendable hacerlo en alguno de los siguientes casos:
- Cuando un operador hace login
- Cada una X cantidad de tiempo. Por ejemplo, cada 1 hora
- Cuando el punto de venta inicia (dependiendo frecuencia)
- Opcionalmente, proveer al sistema integrador una opción para forzar el cambio de configuración manualmente (que manualmente se dispare el proceso de actualización)
- etc
Nota: si el POS no posee número de configuración debe enviar el valor por defecto 0 (cero), ya que VTOL valida que el campo versión siempre esté presente.
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | SI | Identificador del sitio originador de la transacción |
2 | node | Numérico | SI | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Compatibilidad atrás | Identificador del Server que procesará la transacción. ('VTOL') |
4 | messageType | Alfanumérico | Compatibilidad atrás | Tipo de Mensaje:
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
137 | confVersion | numérico | Obligatorio | Número de versión de la configuración que posee el POS. En caso de que el POS no posea configuración previa, se debe enviar el campo con valor 0 y de esta manera evitar el error de validación por ausencia del campo. |
201 | additionalMessageData | Alfanumérico | Opcional | Este campo tiene como finalidad que el POS, o cliente VTOL, pueda enviar un dato X y que el mismo esté presente en la respuesta. Cada módulo según implementación puede decidir qué hacer con dicho dato (Ejem Persistir en BBDD). |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
24 | trxId | Numérico | OPCIONAL. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por VTOL. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Valor fijo ISO-8583. |
137 | confVersion | numérico | Número de versión de la configuración más actual. Si el número es distinto al enviado en el requerimiento, entonces el POS debe actualizar la configuración. |
138 | confData | Alfanumérico | Configuración creada en la generación de la Interface para POS. |
165 | publicKey | Alfanumérico | Clave Pública vigente utilizada en la encripción punto a punto entre POS - VTOL |
201 | additionalMessageData | Alfanumérico | Este campo tiene como finalidad que el POS, o cliente VTOL, pueda enviar un dato X y que el mismo esté presente en la respuesta. Cada módulo según implementación puede decidir qué hacer con dicho dato (Ejem Persistir en BBDD). |
1.3.12 CheckIn
Mensaje actualmente solo soportado por el autorizador Cardnet
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | Opcional | Valor constante: VTOL |
4 | messageType | Alfanumérico | Opcional | Valor constante DATA |
6 | cardNumber | Numérico | Obligatorio si el campo 10 = Manual | Número de tarjeta. |
7 | expiration | Numérico | Obligatorio si el campo 10 = Manual | Formato YYMM Fecha de vencimiento de la tarjeta. |
8 | Cvc | Numérico | Obligatorio si el campo 10 = Manual | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual |
9 | track2 | Alfanumérico | Obligatorio si el capo 10 = MSR, MSR Chip, MSR ChipError, Chip | Track2 de la tarjeta completo (se envía todo el contenido del track2 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
10 | posInputMode | Alfanumérico | Obligatorio | Modo de Ingreso:
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
12 | amount | Numérico | Obligatorio | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción (Configuración VTOL). |
65 | additionalAmount | Numérico | Opcional | Se envía para un ajuste de CheckIn y representa el monto total de la autorización, incluyendo el ajuste |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
80 | taxAmount | Numérico | Opcional | Monto de impuesto de la transacción. 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
102 | chipTokens | Alfanumérico | Obligatorio si el campo 10 = Chip | Aplica para Visanet y Cardnet |
139 | customerRef | Alfanumérico | Opcional | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. |
167 | originalTrxRefNumber | Numérico | Condicional | Identificador único en VTOL Server de la transacción de check-in original respondido en el campo 166. |
168 | originalCustomerRef | Alfanumérico | Condicional | Número de referencia de comercio del checkIn original. |
191 | dccEligible | Alfanumérico | Opcional | Indica si la transacción está manejando DCC.
|
312 | trxFee | Numérico | Obligatorio si el campo 191 = True | Tarifa de la transacción. Máximo 15 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
314 | dccData | Alfanumérico | Obligatorio si el campo 191 = True | Campo utilizado para transmitir la información del cambio de moneda en transacciones con DCC. |
316 | additionalReference |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Numérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
68 | rrn | Numérico | Reference referral number. |
102 | chipTokens | Alfanumérico | Aplica para Visanet y Cardnet |
114 | trxCurrency | Alfanumérico | Texto de la moneda correspondiente a la transacción. |
199 | chCurrency | Alfanumérico | Texto de la moneda del tarjetahabiente. |
309 | cardBrand | Alfanumérico | Marca de la tarjeta |
310 | maskedCardNumber | Numérico | Número de tarjeta enmascarado |
311 | amountExchanged | Numérico | Monto a cargar en la moneda del tarjetahabiente. Máximo 15 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
312 | trxFee | Numérico | Tarifa de la transacción. Máximo 15 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
313 | exchangeRate | Numérico | Tasa de cambio a la moneda del tarjetahabiente. Máximo 15 posiciones. Los últimos nueve dígitos representan los decimales. Ej: 000000025510204 equivale a 0.025510204 |
317 | additionalAmountPercentage | Numérico | Porcentaje adicional a la transacción. Máximo 4 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
1.3.13 CheckOut
Mensaje actualmente solo soportado por el autorizador Cardnet
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
6 | cardNumber | Numérico | Obligatorio si el campo 10 = Manual | No se envía en CheckOut referenciado |
7 | expiration | Numérico | Obligatorio si el campo 10 = Manual | No se envía en CheckOut referenciado |
8 | Cvc | Numérico | Obligatorio si el campo 10 = Manual | No se envía en CheckOut referenciado |
9 | track2 | Alfanumérico | Obligatorio si el capo 10 = MSR, MSR Chip, MSR ChipError, Chip | No se envía en CheckOut referenciado |
10 | posInputMode | Alfanumérico | Obligatorio | No se envía en CheckOut referenciado
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
12 | amount | Importe | Obligatorio | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción (Configuración VTOL). |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
80 | taxAmount | Numérico | Opcional | Monto de impuesto de la transacción. 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
102 | chipTokens | Alfanumérico | Obligatorio si el campo 10 = Chip | Aplica para Visanet y Cardnet |
139 | customerRef | Alfanumérico | Opcional | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. |
167 | originalTrxRefNumber | Numérico | Condicional | Identificador único en VTOL Server de la transacción de check-in original respondido en el campo 166. |
168 | originalCustomerRef | Alfanumérico | Condicional | Número de referencia de comercio del checkIn original. |
191 | dccEligible | Alfanumérico | Opcional | Indica si la transacción está manejando DCC.
|
312 | trxFee | Numérico | Obligatorio si el campo 191 = True | Tarifa de la transacción. Máximo 15 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
314 | dccData | Alfanumérico | Obligatorio si el campo 191 = True | Campo utilizado para transmitir la información del cambio de moneda en transacciones con DCC. |
316 | additionalReference |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Numérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
68 | rrn | Numérico | Reference referral number. |
102 | chipTokens | Alfanumérico | Aplica para Visanet y Cardnet |
114 | trxCurrency | Alfanumérico | Texto de la moneda correspondiente a la transacción. |
199 | chCurrency | Alfanumérico | Texto de la moneda del tarjetahabiente. |
309 | cardBrand | Alfanumérico | Marca de la tarjeta |
310 | maskedCardNumber | Numérico | Número de tarjeta enmascarado |
311 | amountExchanged | Numérico | Monto a cargar en la moneda del tarjetahabiente. Máximo 15 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
312 | trxFee | Numérico | Tarifa de la transacción. Máximo 15 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
313 | exchangeRate | Numérico | Tasa de cambio a la moneda del tarjetahabiente. Máximo 15 posiciones. Los últimos nueve dígitos representan los decimales. Ej: 000000025510204 equivale a 0.025510204 |
317 | additionalAmountPercentage | Numérico | Porcentaje adicional a la transacción. Máximo 4 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
1.3.14 DCCQuery
Mensaje actualmente solo soportado por el autorizador Cardnet
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
6 | cardNumber | Numérico | Obligatorio si el campo 10 = Manual y no está presente el campo 167 ni 168 | No se envía en DCCQuery referenciado |
7 | expiration | Numérico | Obligatorio si el campo 10 = Manual y no está presente el campo 167 ni 168 | No se envía en DCCQuery referenciado |
8 | Cvc | Numérico | Obligatorio si el campo 10 = Manual y no está presente el campo 167 ni 168 | No se envía en DCCQuery referenciado |
9 | track2 | Alfanumérico | Obligatorio si el capo 10 = MSR, MSR Chip, MSR ChipError, Chip | No se envía en DCCQuery referenciado |
10 | posInputMode | Alfanumérico | Obligatorio | No se envía en DCCQuery referenciado
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
12 | amount | Importe | Obligatorio | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipo de Moneda
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción (Configuración VTOL). |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
80 | taxAmount | Numérico | Opcional | Monto de impuesto de la transacción. 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
102 | chipTokens | Alfanumérico | Obligatorio si el campo 10 = Chip | Aplica para Visanet y Cardnet |
139 | customerRef | Alfanumérico | Opcional | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. |
167 | originalTrxRefNumber | Numérico | Condicional | Identificador único en VTOL Server de la transacción de check-in original respondido en el campo 166. |
168 | originalCustomerRef | Alfanumérico | Condicional | Número de referencia de comercio del checkIn original. |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Numérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
68 | rrn | Numérico | Reference referral number. |
102 | chipTokens | Alfanumérico | Campo utilizado para transmitir los tag en transacciones con chip (EMV). |
114 | trxCurrency | Alfanumérico | Texto de la moneda correspondiente a la transacción. |
199 | chCurrency | Alfanumérico | Texto de la moneda del tarjetahabiente. |
310 | additionalAmountPercentage | Numérico | Porcentaje adicional a la transacción. Máximo 4 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
311 | amountExchanged | Numérico | Monto a cargar en la moneda del tarjetahabiente. Máximo 15 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
312 | trxFee | Numérico | Tarifa de la transacción. Máximo 15 posiciones. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
313 | exchangeRate | Numérico | Tasa de cambio a la moneda del tarjetahabiente. Máximo 15 posiciones. Los últimos nueve dígitos representan los decimales. Ej: 000000025510204 equivale a 0.025510204 |
314 | dccData | Alfanumérico | Campo utilizado para transmitir la información del cambio de moneda en transacciones con DCC. |
1.3.15 ReverseTransaction
Mensaje actualmente solo soportado por el autorizador Cardnet
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
10 | posInputMode | Alfanumérico | Obligatorio | No se envía en CheckOut referenciado
|
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
12 | amount | Importe | Obligatorio | Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
53 | paymentCondition | Alfanumérico | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción (Configuración VTOL). |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
80 | taxAmount | Numérico | Opcional | Monto de impuesto de la transacción. 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
139 | customerRef | Alfanumérico | Opcional | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. |
167 | originalTrxRefNumber | Numérico | Condicional | Identificador único en VTOL Server de la transacción original respondido en el campo 166. |
168 | originalCustomerRef | Alfanumérico | Condicional | Número de referencia de comercio de la transacción original. |
316 | additionalReference |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Numérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
30 | businessNumber | Numérico | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
33 | creditCardIssuerName | Alfanumérico | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | Nombre del canal por el cual se autorizó la tarjeta. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
42 | lotDefinitionId | Numérico | Identificador de la definición de lote. |
68 | rrn | Numérico | Reference referral number. |
102 | chipTokens | Alfanumérico | Aplica para Visanet y Cardnet |
1.3.16 CloseStore
Mensaje actualmente solo soportado por el autorizador Cardnet
Requerimiento
# | FieldId | Tipo | Obligatorio | Descripción |
1 | store | Alfanumérico | Obligatorio | Identificador del sitio originador de la transacción |
2 | node | Numérico | Obligatorio si la tienda no es virtual | Identificación del nodo, en el sitio originador, donde se generó la transacción |
11 | trxType | Alfanumérico | Obligatorio | Tipo de Transacción:
|
25 | dateTime | Numérico | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
71 | checkPendingString | Alfanumérico | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
318 | totalTrx | Numérico | Obligatorio | Total de transacciones de la tienda |
319 | totalAmountTrx | Numérico | Obligatorio | Monto total de las transacciones, 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
Respuesta
# | FieldId | Tipo | Descripción |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
2 | node | Numérico | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Numérico | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | Modo de Autorización:
|
24 | lastTrxId | Numérico | Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
26 | responseCode | Alfanumérico | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta ISO-8583 |
29 | serialNumber | Numérico | Número identificatorio de la terminal en la que se procesó la transacción. |
35 | errorDescription | Alfanumérico | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
318 | totalTrx | Numérico | Total de transacciones de la tienda |
319 | totalAmountTrx | Numérico | Monto total de las transacciones, 12 dígitos como máximo. Se envía sin comas ni puntos. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
1.4 Códigos de Respuesta al POS
La respuesta que el POS recibe de VTOL se encuentra en los siguientes campos:
- Campo 27: Código de Respuesta
- Campo 28: Descripción de la Respuesta
A continuación se detallan las respuestas posibles con una breve descripción de cada una:
Código | Descripción |
'00' | Aprobada |
'01' | Pedir autorización telefónica |
'02' | Pedir autorización |
'03' | Comercio inválido |
'04' | Capturar tarjeta |
'05' | Denegada |
'07' | Retenga y llame |
'11' | Aprobada |
'12' | Transacción inválida |
'13' | Monto inválido |
'14' | Tarjeta inválida |
'25' | No existe original |
'30' | Error en formato |
'38' | Excede ingreso de PIN |
'43' | Retener tarjeta |
'45' | No opera en cuotas |
'46' | Tarjeta no vigente |
'47' | PIN requerido |
'48' | Excede máximo de cuotas |
'49' | Error fecha de vencimiento |
'50' | Entrega supera límite |
'51' | Fondos insuficientes |
'53' | Cuenta inexistente |
'54' | Tarjeta vencida |
'55' | PIN incorrecto |
'56' | Tarjeta no habilitada |
'57' | Transacción no permitida |
'58' | Servicio inválido |
'61' | Excede límite |
'65' | Excede límite de tarjeta |
'76' | Llamar al emisor |
'77' | Error plan/cuotas |
'85' | Aprobada |
'86' | No envía fecha original |
'89' | Terminal inválida |
'91' | Emisor fuera de línea |
'94' | Número de secuencia duplicado |
'95' | Re-transmitiendo |
'96' | Error en sistema |
'98' | No aprobada |
'99' | Error no clasificado |
Modo de ingreso inválido | |
Proveedor inválido | |
Error CVC | |
Error creando mensaje | |
Tipo de mensaje inválido | |
No envía código de autorización | |
Error en fecha efectiva | |
Error en fecha vencimiento | |
Tarjeta no efectiva | |
No opera off-line | |
Devolución monto mayor | |
Original ya anulada | |
Original ya devuelta | |
Original reversada | |
Moneda inválida | |
No envía fecha | |
Campo 71 inválido | |
Campo 71 nulo | |
CVC inválido | |
Terjeta inválida | |
Track2 inválido | |
No envía moneda | |
No envía CVC | |
Timeout | |
Fecha original inválida | |
No envía ticket original | |
Ticket original inválido | |
No envía código de autorización de venta referida | |
Reintente |
Nota: La respuesta con código '99' representa un error en el procesamiento interno de VTOL, independientemente de la interacción con el Centro Autorizador. Dicho error no debe ser manejado por el POS.
1.5 Código de errores del CORE
Es posible que VTOL responda "Error" en el campo 26 del mensaje de respuesta. Éste valor indica que se ha producido un error dentro del flujo inicial y principal del core de VTOL, previo al procesamiento de las reglas de negocio asociadas al tipo de transacción.
Normalmente los casos en donde se puede dar ésta situación son los siguientes:
Por ejemplo:
- Si el nodo o el store son inválidos
- Si el mensaje tiene un formato erróneo
- Si el campo 11 no fue enviado en el requerimiento
- Si el campo 11 tiene un valor no soportado por VTOL
- Si el campo 1 no fue enviado en el requerimiento
- Si el campo 2 no fue enviado en el requerimiento
- Si un campo enviado en el requerimiento no es soportado por VTOL
- Si VTOL no tienen conexión con base de datos
- Si hay otro error interno al core (la transacción no llegó al módulo)
- Si la transacción se empezó a procesar en el módulo y éste nunca responde. Esto provoca que se active un flujo alternativo de Timeout del CORE que se da a los 60 segundos.
- Si el CORE no puede aceptar más transacciones porque está sobrecargado
El mensaje de respuesta tiene siempre el siguiente formato:
Dónde:
- Donde 32 y 31 se responden por compatibilidad hacia atrás con otras implementaciones.
- El campo 28 siempre posee la descripción del error.
- El campo 27 siempre es "99".
- El campo 26 siempre dice "Error".
- El campo 25 es la hora del requerimiento.
2. Anexo A
2.1 Especificación de campos de requerimiento
2.1.1 Formato del campo 109 para Venta
Para él envió de una transacción Venta, la información de los datos adicionales del comercio debe contener concatenado la siguiente Información:
NombreComercioDireccionCiudadCodigoEstadoPaisCodigoPostalCodigoPaisNumAutServicio
Campo | Tipo | Longitud | Requerido |
Nombre del comercio | Alfanumérico | 30 | Presente si se utilizan datos de ubicación alternativos del comercio |
Dirección | Alfanumérico | 25 | Presente si se utilizan datos de ubicación alternativos del comercio |
Ciudad | Alfanumérico | 20 | Presente si se utilizan datos de ubicación alternativos del comercio |
Código Estado | Alfanumérico | 2 | Presente si se utilizan datos de ubicación alternativos del comercio |
País | Alfanumérico | 3 | Rellenado con espacios |
Código Postal | Alfanumérico | 9 | Presente si se utilizan datos de ubicación alternativos del comercio |
Código de País | Alfanumérico | 3 | Presente si se utilizan datos de ubicación alternativos del comercio |
Numero de autorización del servicio | Alfanumérico | 15 | Presente si se desea proporcionar un número de autorización del servicio alternativo para tarjetas no bancarias |
3. Anexo E Formato Interface POS
A continuación se detalla la información que viaja en el campo ConfData y que se corresponde con la interface generada para el POS.
La versión de Formato de interface utilizada por Crédito Debito Argentina es la v101
Header
Pos. | Descripción | Longitud | Tipo de dato | Detalle |
1 | HD | 2 | AN | Identificador de tipo de registro |
2 | Local | 6 | AN | Código local. |
3 | Incremental | 6 | N | Nº de incremental. |
4 | CRC | 8 | N | |
5 | Fecha / Hora | 16 | AN | Fecha/Hora. yyyy/mm/dd hh:mm |
Ejemplo:
HD>000001|000004 |00003d23|2008/03/07 10\¡20
Tabla Provider
Pos. | Descripción | Longitud | Tipo de dato | Detalle |
1 | PV | 2 | AN | Identificador de tipo de registro |
2 | ID Tarjeta | 2 | AN | ID proveedor VTOL |
3 | Nombre | 40 | AN | Nombre proveedor |
4 | Medio de Pago | 20 | AN | Código proveedor en POS. |
Ejemplo:
PV>VI|Visa|
PV>MA|Mastercard|
Tabla Prefijos
Pos | Descripción | Longitud | Tipo de dato | Detalle |
1 | PF | 2 | AN | Identificador de tipo de registro |
2 | Hasta | 20 | AN | Rango Desde. |
3 | Desde | 20 | AN | Rango Hasta. |
4 | Largo prefijo | 2 | N | Largo del prefijo. |
5 | Largo tarjeta | 2 | N | Largo de la tarjeta. |
6 | ID Tarjeta | 2 | AN | ID proveedor VTOL |
7 | Condición | 10 | AN | |
8 | Largo CVC | 2 | N | Largo código seguridad. |
9 | Validar digito | 1 | N | Valida el digito verificador. |
10 | Envía Track I | 1 | N | 0/vacío deshabilitado / 1 habilitado / 2 Opcional. |
11 | Validar vencimiento | 1 | N | Valida fecha vencimiento. |
12 | Offline permitido | 1 | N | Permite operar offline. |
13 | Offline monto | 14 | N | Límite para operación Offline. |
14 | Habilitado | 1 | N | Prefijo habilitado. |
15 | Valida fecha efectiva | 1 | N | Valida fecha emisión o fecha desde. |
16 | Valida CVC | 1 | N | 0/vacío deshabilitado / 1 habilitado / 2 Opcional. |
17 | Service code | 5 | AN | Se suele utilizar en VTOL para diferenciar Visa débito (2) de Visa crédito (0 ó vació) |
18 | Ingreso manual permitido | 1 | N | |
19 | Chequea boletines | 1 | N | Valida contra boletines protectivos. |
20 | Es debito | 1 | N | Es prefijo de tarjeta de tipo débito. |
21 | Requiere pin. | 1 | N | 0 deshabilitado / 1 habilitado / 2 Opcional. |
22 | Valida últimos N números. | 2 | N | Cantidad de últimos números a validar de la tarjeta. 0 no valida nada. |
23 | Pide tipo de cuenta. | 1 | N | Requiere envío tipo de cuenta. |
24 | Solicita número de cuenta | 1 | N | Solicita al autorizador el número de cuenta. |
25 | Cashback | 1 | N | Habilita la operatoria de Cashback |
26 | Puntos de Lealtad | 1 | N | Habilita la acumulación y/o redención de puntos de lealtad. |
27 | Permite Chip | 1 | N | Indica si la tarjeta es una tarjeta con Chip |
28 | Permite Fallback | 1 | N | Habilita la operatoria Fallback. |
29 | Tarjeta que Encripta | 1 | N | Indica si la tarjeta encripta. |
30 | Posición Llave Maestra | 2 | N | Indica la posición de memoria del PinPad donde se encuentra la llave maestra para encriptar los datos de la tarjeta |
31 | Código de Banco | 2 | N | Indica el código del Banco al que pertenece la tarjeta. El valor 00 indica un banco Default o no Especificado |
32 | Comisión para retiro de efectivo | 15 | AN | Monto con separador decimal de comisión para aplicar a la tarjeta en operaciones de retiro de efectivo. |
33 | Comisión para pago de tarjeta | 15 | AN | Monto con separador decimal de comisión para aplicar a la tarjeta en operaciones de pago de tarjeta. |
34 | Monto para autorización sin firma | 14 | N | Límite de monto para autorización sin firma. |
Ejemplo:
PF>364093|364093|6|16|||3|0|1|1|1|00|1|0|1||1|0|0|0|0|0|0|0|0|0|0|0||00|4.25|2.0|450
PF>451395|451393|6|16|5|4|8|0|1|1|1|1000|1|1|2|4|0|0|0|2|0|1|0|0|1|0|1|0|5|02|0.0|0.0|00
PF>468523|468523|6|16|55||3|0|1|1|1|00|1|0|1||1|0|0|0|0|0|0|0|0|0|0|0||01|5.5|10.0|00
Tabla Monedas
Pos. | Descripción | Longitud | Tipo de dato | Detalle |
1 | MN | 2 | AN | Identificador de tipo de registro |
2 | Símbolo moneda | 10 | AN | $ ó U$S |
3 | Descripción | 20 | AN | Nombre de la moneda. |
Ejemplo:
MN>$|PESOS
MN>U$S|DOLARES
Tabla Plan de Pagos
Pos. | Descripción | Longitud | Tipo de dato | Detalle |
1 | PP | 2 | AN | Identificador de tipo de registro |
2 | ID Tarjeta | 2 | AN | ID proveedor VTOL |
3 | Símbolo moneda | 10 | AN | |
4 | Condición de pago | 20 | AN | Información adicional del plan de pago. |
5 | Plan | 4 | N | |
6 | Cuotas | 4 | N | |
7 | Numero de comercio | 30 | AN | |
8 | ID Lote | 6 | N | |
9 | Limite a superar. | 13 | N | Monto a superar para poder utilizar el plan de pagos. |
10 | Limite intereses | 13 | N | Si el monto es superior a éste valor, entonces el interés es = 0 |
11 | Interés | 5 | AN | Tasa de interés (%) para el plan de pago. En formato 00.00 |
Ejemplo:
PP>AM|$||0|1|98765432|101607|0000000000.00|0000000000.00|12.30
PP>VI|$||0|10|98765432|101608|0000000100.00|0000000000.00|15.0
Tabla Definición de Lote
Pos. | Descripción | Longitud | Tipo de dato | Detalle |
1 | DL | 2 | AN | Identificador de tipo de registro |
2 | ID Lote | 6 | N | Identificador interno de Lote en VTOL |
3 | Caja o Nodo | 10 | N | |
4 | Número de serie terminal | 200 | AN |
Ejemplo:
DL>5|0000000001|99990080
DL>5|0000000002|99990081
DL>5|0000000003|99990082
DL>5|0000000004|99990083
DL>5|0000000005|99990084
DL>5|0000000006|99990085
DL>5|0000000007|99990086
Tabla Bines de Excepción
Pos. | Descripción | Longitud | Tipo de dato | Detalle |
1 | BE | 2 | AN | Identificador de tipo de registro |
2 | Desde | 9 | N | Rango Desde |
3 | Hasta | 9 | N | Rango Hasta |
4 | Nombre tarjeta | 25 | AN | Nombre de tarjeta de Excepción |
5 | Información Adicional | 500 | AN | Informacion adicional de la tarjeta de excepción |
Ejemplo:
BE>6006|6006|17|ASOCIADO|Pepe-123
BE>601056|601056|16|GIFT CARD|Extra