VTOL CRÉDITO DÉBITO MÉXICO
Mensajería POS - VTOL
Cambio por revisiones
Fecha | Revisión | Observaciones |
---|---|---|
27/11/2013 | 1.0 | Generación del documento |
06/10/2014 | 1.1 | Agrego modo de ingreso Contactless y aclaración de campos QPS que aplican solo para Bancomer |
02/12/2014 | 1.2 | Agrego campo 161 cardType a la respuesta del mensaje de Venta |
03/08/2015 | 1.3 | Integración de mensaje CashAdvance para retiro de efectivo (Transacciones adquiriente) |
11/09/2015 | 1.4 | Integración de campo 190 - comission en respuesta de mensajes CashAdvance. |
11/11/2015 | 1.5 | Integración de campo 139 customerRef en Sale y Refund. |
01/08/2016 | 1.6 | Integración de secciones Chequeo de pendientes en lista, Tercer mensaje en lista. |
09/11/2016 | 1.7 | Agrego nuevo mensaje Echo |
09/12/2016 | 1.8 | Integración de mensaje CheckIn y CheckOut para pre-autorización y autorización |
06/10/2016 | 1.8.1 | Agrego authorizationCode en las respuestas de CheckIn y CheckOut |
02/02/2017 | 1.9 | Agrego campo 302 issuingBank y 309 cardBrand a las respuestas de Sale y Refund. |
02/02/2017 | 1.10 | Agrego mensaje SaleAdjustment |
10/04/2014 | 1.11 | Agrego modos de ingreso E-Commerce y Recurring a Sale y Refund |
01/03/2018 | 1.12 | Agrego sección de Firma digital en Anexo C |
20/03/2018 | 1.13 | Actualizo descripción en sección de firma digital. |
11/04/2018 | 1.14 | Agrego mensaje de Consulta de Configuración y Anexo E |
20/04/2018 | 1.15 | Incluyo sección 1.3.4 Devolución/Cancelación Referenciada |
26/07/2018 | 1.16 | Integro campo crc32 en descripción de firma digital |
24/01/2019 | 1.20 | Saco del mensaje Refund el campo 58 |
10/04/2019 | 1.21 | Agrego campo moneda a devolución referenciada, ya que es olbigatorio |
9/11/2020 | 1.22 | Agregado de mensaje Anulación de Pre-autorización VoidPreAuthorization |
Índice
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 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.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.3 Escape de caracteres
Si se desea enviar el carácter especial punto y coma (;) en el valor de algún campo, será necesario escaparlo.
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.4 Mecanismo de "Tercer Mensaje"
1.4.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.4.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.4.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 descritos.
2. Campos de los mensajes
2.1 Transacciones permitidas
En esta sección se detallarán las transacciones soportadas por VTOL así como los campos requeridos u opcionales de cada transacción.
2.1.1 Venta
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. | Constante VTOL |
4 | messageType | Alfanumérico | Compatibilidad atrás. | Constante Data |
6 | cardNumber | Numérico | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expiration | Numérico | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | Cvc | Numérico | Obligatorio si es Manual. Además es opcional según la tarjeta. | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
9 | track2 | Alfanumérico | Obligatorio si es MSR | Track2 de la tarjeta entero (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/parcialidades (meses). 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
22 | authorizationCode | Numérico | Condicional a si fue realizada la autorización telefónica. | 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. |
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. |
56 | pinblock | Alfanumérico | Condicional a PIN Pad | PIN encriptado. Se emplea para tarjetas de débito. Ejemplo pinblock: D76484D688FE1826 |
58 | loyatyData | Alfanumérico | Condicional Bancomer | Para entidades que implanten la solución de Redención de Puntos Bancomer. 40 caracteres. Ver Anexo A Especificación del campo 58 Requerimiento, sección Compra con Puntos |
65 | additionalAmount | Numérico | Condicional a Bancomer y venta con Cash Back | Para ventas con Cash Back, contiene el monto de Cash Back que se debe autorizar con centavos. 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 |
66 | track1 | Alfanumérico | Opcional a su lectura | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
70 | effectiveDate | Alfanumérico | Opcional AMEX | Fecha efectiva. Se usa para AMEX con formato yyMM |
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):
|
102 | chipTokens | Alfanumérico | Obligatorio para modo de ingreso Chip | Amex: En el caso que el adquirente sea Banamex. Los tokens se envían tal cual los general el PinPad sin ningún tipo de procesamiento. |
116 | cardSequenceNumber | Alfanumérico | Condicional Bancomer | Número de secuencia de la tarjeta. Se utiliza para distinguir tarjetas que tienen el mismo PAN (Primary Account Number). |
117 | emvFullGradeIcc | Alfanumerico | Condicional Bancomer y Amex | Datos de EMV Full Grade, para transacciones EMV |
118 | terminalCapability | Numérico | Condicional Bancomer y Banamex | Indica la capacidad de la terminal conforme a catalogo para especificación de token C4 de documentación. Código indicando las capacidades que tiene la terminal para transferir datos de la tarjeta a la terminal Bancomer: |
125 | posAuthenticationMethod | Numérico | Opcional | Código que indica cómo fue identificado el Tarjetahabiente en el punto de servicio: Para Banamex Capítulo X si no se envía el campo se toma el valor por default 1. |
139 | customerRef | Alfanumerico | Opcional | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. Informado a Banorte por campo CUSTOMER_REF2. |
310 | terminalCategory | N2(F) | Mandatorio Fiserv | Indica el tipo de terminal utilizado para realizar el cobro. Valores posibles:
Nota: Para transacciones e-Commerce se envía el valor 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 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. |
58 | LoyatyData | Alfanumérico | Para entidades que implanten la solución de Redención de Puntos Bancomer. Ver Anexo B Especificación del campo 58 Respuesta |
68 | rrn | Numérico | Reference referral number. |
82 | SoftwareVersion | Alfanumérico | Versión software. Constante STS |
102 | chipTokens | Alfanumérico | En este campo se concatenan los tokens cuando son devueltos por el autorizador. |
116 | cardSequenceNumber | Numérico | Número de secuencia de la tarjeta. Se utiliza para distinguir tarjetas que tienen el mismo PAN (Primary Account Number). |
117 | emvFullGradeIcc | Numérico | Datos de EMV Full Grade |
125 | qps | Numérico | Aplica para Bancomer |
129 | pinpadReset | Numérico | 0 = Cuenta por omisión. Pin Pad NO requiere telecarga |
160 | hostCode | Alfanumérico | Código del canal por el cual se autorizó la tarjeta. |
161 | cardType | Alfanumérico | Tipo de tarjeta, según la configuración en VTOL:
|
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato. |
302 | issuingBank | Alfanumérico | Nombre del banco emisor de la tarjeta. Informado por Centro Autorizador. |
309 | cardBrand | Alfanumérico | Marca de tarjeta. Informado por Centro Autorizador |
2.1.2 Retiro de efectivo
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. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Compatibilidad atrás. | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expiration | Numérico | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | Cvc | Numérico | Obligatorio si es Manual. Además es opcional según la tarjeta. | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
9 | track2 | Alfanumérico | Obligatorio si es MSR | Track2 de la tarjeta entero (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/parcialidades (meses). 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
22 | authorizationCode | Numérico | Condicional a si fue realizada la autorización telefónica. | 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. |
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. |
56 | pinblock | Alfanumérico | Condicional a PIN Pad | PIN encriptado. Se emplea para tarjetas de débito. Ejemplo pinblock: D76484D688FE1826 |
66 | track1 | Alfanumérico | Opcional a su lectura | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
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):
|
102 | chipTokens | Alfanumérico | Obligatorio para modo de ingreso Chip | Amex: En el caso que el adquirente sea Banamex. Los tokens se envían tal cual los general el PinPad sin ningún tipo de procesamiento. Bancomer: |
116 | cardSequenceNumber | Alfanumérico | Condicional Bancomer | Número de secuencia de la tarjeta. Se utiliza para distinguir tarjetas que tienen el mismo PAN (Primary Account Number). |
117 | emvFullGradeIcc | Alfanumerico | Condicional Bancomer y Amex | Datos de EMV Full Grade, para transacciones EMV |
118 | terminalCapability | Numérico | Condicional Bancomer y Banamex | Indica la capacidad de la terminal conforme a catalogo para especificación de token C4 de documentación Bancomer: |
125 | posAuthenticationMethod | Numérico | Opcional | Código que indica cómo fue identificado el Tarjetahabiente en el punto de servicio: |
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 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. |
82 | SoftwareVersion | Alfanumérico | Versión software. Constante STS |
102 | chipTokens | Alfanumérico | En este campo se concatenan los tokens cuando son devueltos por el autorizador. |
116 | cardSequenceNumber | Numérico | Número de secuencia de la tarjeta. Se utiliza para distinguir tarjetas que tienen el mismo PAN (Primary Account Number). |
117 | emvFullGradeIcc | Numérico | Datos de EMV Full Grade |
125 | qps | Numérico | Aplica para Bancomer |
129 | pinpadReset | Numérico | 0 = Cuenta por omisión. Pin Pad NO requiere telecarga |
160 | hostCode | Alfanumérico | Código del canal por el cual se autorizó la tarjeta. |
161 | cardType | Alfanumérico | Tipo de tarjeta, según la configuración en VTOL:
|
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato. |
190 | comission | Numérico | Comisión. 12 dígitos como máximo. Se envía sin separador decimal. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 |
2.1.3 Devolución/Cancelació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 azul)
Conceptos:
Devolución es aplicar un movimiento inverso a la venta, para un día distinto al de compra original.
Cancelación, es aplicar un movimiento inverso a la venta, para el mismo día que la compra original, y genera un reverso en línea hacia el autorizador.
Nota Bancomer: Una cancelación de compra con puntos es la misma cancelación que la compra normal, no hay diferencia, por lo que se envían los mismos campos para el tipo de mensaje "Refund".
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. Sólo presente si el modo de ingreso fue Manual. |
7 | expiration | Numérico | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | cvc | Numérico | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
9 | track2 | Alfanumérico | Track2 de la tarjeta entero (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 | 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. Igual al de la venta original. |
15 | plan | Alfanumérico | Plan. 1 caracter de longitud. Igual al de la venta original. |
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 | Este campo debe viajar si el tipo de transacción es Refund. Se trata del número de ticket de la transacción original. 4 dígitos como máximo, este valor fue informado al POS en el campo 32 de la venta y es único por cada caja |
22 | AuthorizationCode | Numérico | 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. |
23 | AuthorizationMode | Alfanumérico | Modo de Autorización:
|
25 | dateTime | Numérico | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
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. |
56 | pinblock | Alfanumérico | PIN encriptado. Se emplea para tarjetas de débito. |
65 | additionalAmount | Numérico | Para ventas con Cash Back, contiene el monto de Cash Back que se debe autorizar con centavos. 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 |
66 | track1 | Alfanumérico | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
71 | checkPendingString | Alfanumérico | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
102 | chipTokens | Alfanumérico | Amex: En el caso que el adquirente sea Banamex. Los tokens se envían tal cual los general el PinPad sin ningún tipo de procesamiento. |
116 | cardSequenceNumber | Alfanumérico | Número de secuencia de la tarjeta. Se utiliza para distinguir tarjetas que tienen el mismo PAN (Primary Account Number). |
117 | emvFullGradeIcc | Numérico | Datos de EMV Full Grade, para transacciones EMV |
118 | Terminalcapabilities | Alfanumérico | Indica la capacidad de la terminal conforme a catalogo para especificación de token C4 de documentación Bancomer para EMV |
125 | posAuthenticationMethod | Numérico | Código que indica cómo fue identificado el Tarjetahabiente en el punto de servicio: |
139 | customerRef | Alfanumerico | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. |
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. |
82 | SoftwareVersion | Alfanumérico | Versión software. Constante STS |
102 | chipTokens | Alfanumérico | En este campo se concatenan los tokens cuando son devueltos por el autorizador. |
116 | cardSequenceNumber | Numérico | Número de secuencia de la tarjeta. Se utiliza para distinguir tarjetas que tienen el mismo PAN (Primary Account Number). |
117 | emvFullGradeIcc | Numérico | Datos de EMV Full Grade |
119 | refundIsVoided |
|
|
125 | qps | Numérico | Aplica para Bancomer |
129 | pinpadReset | Numérico | 0 = Cuenta por omisión. Pin Pad NO requiere telecarga |
160 | hostCode | Alfanumérico | Código del canal por el cual se autorizó la tarjeta. |
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato. |
302 | issuingBank | Alfanumérico | Nombre del banco emisor de la tarjeta. Informado por Centro Autorizador. |
309 | cardBrand | Alfanumérico | Marca de tarjeta. Informado por Centro Autorizador |
2.1.4 Devolución/Cancelación Referenciada
Este es un mensaje de devolución el cual no hace referencia a los datos de pago de la transacción original, en lugar de estos datos envía el campo 167 originalTrxReferenceNumber
que es el número de referencia único de la transacción recibido en el campo 166 en la respuesta al mensaje Sale
Conceptos:
Devolución es aplicar un movimiento inverso a la venta, para un día distinto al de compra original.
Cancelación, es aplicar un movimiento inverso a la venta, para el mismo día que la compra original, y genera un reverso en línea hacia el autorizador.
Nota Bancomer: Una cancelación de compra con puntos es la misma cancelación que la compra normal, no hay diferencia, por lo que se envían los mismos campos para el tipo de mensaje "Refund".
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:
|
10 | posInputMode | Alfanumérico | Modo de Ingreso:
|
11 | trxType | Alfanumérico | Tipo de Transacción:
|
13 | currencyPosCode | Alphanumeric | Currency type: |
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 |
25 | dateTime | Numérico | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
71 | checkPendingString | Alfanumérico | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
167 | originalTrxReferenceNumber | Numérico | Número de referencia de la transacción original. Es el valor recibido en el campo 166 de la respuesta a la venta 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. |
2.1.5 Inicialización de Llaves
Este mensaje es utilizado cuando en una venta con esquema de cifrado se recibió en la respuesta el código "71" el cual indica que se requiere inicializar la llave en el PIN pad.
El mensaje para que VTOL pueda determinar que se trata de una inicialización de llaves se muestra a continuación.
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. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Compatibilidad atrás. | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Obligatorio | Número de tarjeta. Puede ser un valor dummy correspondiente a una tarjeta del banco adquiriente |
7 | expiration | Numérico | Obligatorio | Formato YYYYMM Fecha de vencimiento de la tarjeta. Puede ser un valor dummy. |
8 | cvc | Alfanumérico | Obligatorio | Código de seguridad de la tarjeta. Puede ser un valor dummy correspondiente a una tarjeta del banco adquiriente. |
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. |
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. |
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):
|
102 | chipTokens | Alfanumérico | Obligatorio | Este campo debe enviar los siguientes tokens: |
Respuesta
NOTA: Los campos devueltos en esta operación son los mismos que los que regresa para una venta y se obtiene en el campo 102 el token con el resultado de la transacción con datos encriptados.
# | 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. |
102 | chipTokens | Alfanumérico | Tokens de respuesta: |
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato. |
2.1.6 Bancomer - Consulta de Puntos
Este mensaje es utilizado cuando el tarjetahabiente requiere hacer la consulta de los puntos con los que cuenta, los campos son los mismos que los de un mensaje venta normal.
Esta transacción no requiere de confirmación a VTOL por lo que al recibir la respuesta en el POS el flujo de esta transacción termina. Es decir, el tercer mensaje no es requerido.
Esta operación no tiene reverso ni cancelación.
El mensaje para que VTOL pueda determinar que se trata de una consulta de puntos Bancomer se muestra a continuación.
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. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Compatibilidad atrás. | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expiration | Numérico | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | Cvc | Numérico | Obligatorio si es Manual. Además es opcional según la tarjeta. | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
9 | track2 | Alfanumérico | Obligatorio si es MSR | Track2 de la tarjeta entero (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 | Se envía en ceros |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas/parcialidades (meses). 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. |
56 | pinblock | Alfanumérico | Condicional a PIN Pad | PIN encriptado. Se emplea para tarjetas de débito. Ejemplo pinblock: D76484D688FE1826 |
58 | loyatyData | Alfanumérico | Condicional Bancomer | Para entidades que implanten la solución de Redención de Puntos Bancomer. 40 caracteres. Ver Anexo A Especificación del campo 58 Requerimiento, sección Consulta de Puntos |
66 | track1 | Alfanumérico | Opcional a su lectura | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
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):
|
102 | chipTokens | Alfanumérico | Obligatorio para modo de ingreso Chip | Para consultas sin esquema cifrado: |
116 | cardSequenceNumber | Alfanumérico | Condicional Bancomer | Número de secuencia de la tarjeta. Se utiliza para distinguir tarjetas que tienen el mismo PAN (Primary Account Number). |
117 | emvFullGradeIcc | Alfanumerico | Condicional Bancomer y Amex | Datos de EMV Full Grade, para transacciones EMV |
118 | Terminalcapabilities | Numérico | Condicional Bancomer | Indica la capacidad de la terminal conforme a catalogo para especificación de token C4 de documentación Bancomer para EMV |
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 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. |
58 | LoyatyData | Alfanumérico | Para entidades que implanten la solución de Redención de Puntos Bancomer. Ver Anexo B Especificación del campo 58 Respuesta |
68 | rrn | Numérico | Reference referral number. |
82 | SoftwareVersion | Alfanumérico | Versión software. Constante STS |
102 | chipTokens | Alfanumérico | En este campo se concatenan los tokens cuando son devueltos por el autorizador. |
116 | cardSequenceNumber | Numérico | Número de secuencia de la tarjeta. Se utiliza para distinguir tarjetas que tienen el mismo PAN (Primary Account Number). |
117 | emvFullGradeIcc | Numérico | Datos de EMV Full Grade |
129 | pinpadReset | Numérico | 0 = Cuenta por omisión. Pin Pad NO requiere telecarga |
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato. |
2.1.7 AMEX - Verificación Automática de Dirección (AAV)
Mensaje utilizado para verificar la dirección proporcionada por cliente contra el emisor de la tarjeta, este mensaje es utilizado especialmente en entornos de autorización donde la tarjeta no 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. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Compatibilidad atrás. | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expiration | Numérico | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | cvc | Numérico | Obligatorio si es Manual. Además es opcional según la tarjeta. | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
9 | track2 | Alfanumérico | Obligatorio si es MSR | Track2 de la tarjeta entero (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/parcialidades (meses). 2 dígitos como máximo. |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. |
22 | authorizationCode | Numérico | Condicional a si fue realizada la autorización telefónica. | 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. |
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. |
56 | pinblock | Alfanumérico | Condicional a PIN Pad | PIN encriptado. Se emplea para tarjetas de débito. Ejemplo pinblock: D76484D688FE1826 |
66 | track1 | Alfanumérico | Opcional a su lectura | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
70 | effectiveDate | Alfanumérico | Opcional AMEX | Fecha efectiva. Se usa para AMEX con formato yyMM |
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):
|
82 | customerEmail | Alfanumérico y caracteres especiales | Condicional | Para transacciones E-Commerce y MOTO |
102 | chipTokens | Alfanumérico | Obligatorio para modo de ingreso Chip | Amex: En el caso que el adquirente sea Banamex. Los tokens se envían tal cual los general el PinPad sin ningún tipo de procesamiento. |
115 | originIndicator |
|
|
|
117 | emvFullGradeIcc | Alfanumerico | Condicional | Para Amex:. Los Tags se deben enviar tal cual los genera el PinPad sin ningun tipo de procesamiento. |
150 | customerHostname | Alfanumérico y caracteres especiales | Condicional | Para transacciones E-Commerce y MOTO |
152 | shipToCountry | Alfanumérico y caracteres especiales | Condicional | Para transacciones E-Commerce y MOTO |
153 | shippingMethod | Alfanumérico y caracteres especiales | Condicional | Para transacciones E-Commerce y MOTO |
154 | sku | Alfanumérico y caracteres especiales | Condicional | Para transacciones E-Commerce y MOTO |
155 | customerIp | Alfanumérico y caracteres especiales | Condicional | Para transacciones E-Commerce y MOTO |
156 | customerANI | Alfanumérico y caracteres especiales | Condicional | Para transacciones E-Commerce y MOTO |
157 | customerIIDigits | Alfanumérico y caracteres especiales | Condicional | Para transacciones E-Commerce y MOTO |
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 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. |
82 | SoftwareVersion | Alfanumérico | Versión software. Constante STS |
102 | chipTokens | Alfanumérico | En este campo se concatenan los tokens cuando son devueltos por el autorizador. |
117 | emvFullGradeIcc | Numérico | Datos de EMV Full Grade |
126 | additionalRespData | Alfanumérico | Additional response data devuelto en el campo 44 de la respuesta del CA |
127 | emailAddressVerif | Alfanumérico | Contiene códigos de respuesta que indican si la información del tarjetahabiente es válida. |
129 | pinpadReset | Numérico | 0 = Cuenta por omisión. Pin Pad NO requiere telecarga |
160 | hostCode | Alfanumérico | Código del canal por el cual se autorizó la tarjeta. |
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato. |
2.1.8 Pre-autorización (Check-in)
Esta transacción es empleada en comercios que quieran asegurar los fondos de una tarjeta previo a una autorización final.
Soportada únicamente para Adquiriente Banamex y Amex
Este mensaje deberá ser confirmado por un tercer mensaje y no podrá enviarse un Check-out hasta no haber confirmado el Check-in
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. | Valor Constante: VTOL |
4 | messageType | Alfanumérico | Compatibilidad atrás. | Valor constante Data |
6 | cardNumber | Numérico | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expiration | Numérico | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | Cvc | Numérico | Obligatorio si es Manual. Además es opcional según la tarjeta. | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
9 | track2 | Alfanumérico | Obligatorio si es MSR | Track2 de la tarjeta entero (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/parcialidades (meses). 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. |
56 | pinblock | Alfanumérico | Condicional a PIN Pad | PIN encriptado. Se emplea para tarjetas de débito. Ejemplo pinblock: D76484D688FE1826 |
66 | track1 | Alfanumérico | Opcional a su lectura | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
71 | checkPendingString | Alfanumérico | Opcional | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
|
102 | chipTokens | Alfanumérico | Obligatorio para modo de ingreso Chip | Banamex: En este campo se concatenan todos los tokens que genera el pinpad y deben comunicarse a VTOL. |
118 | terminalCapability | Numérico | Condicional | Indica la capacidad de la terminal conforme a catalogo para especificación de token C4 de documentación |
125 | posAuthenticationMethod | Numérico | Opcional | Código que indica cómo fue identificado el Tarjetahabiente en el punto de servicio: |
139 | customerRef | Alfanumerico | Opcional | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. |
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. |
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 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. |
82 | SoftwareVersion | Alfanumérico | Versión software. Constante STS |
102 | chipTokens | Alfanumérico | En este campo se concatenan los tokens cuando son devueltos por el autorizador. |
160 | hostCode | Alfanumérico | Código del canal por el cual se autorizó la tarjeta. |
161 | cardType | Alfanumérico | Tipo de tarjeta, según la configuración en VTOL:
|
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos |
2.1.9 Autorización (Check-out)
Este mensaje debe ser enviado para confirmar la autorización de un check-in previo. No puede enviarse un mensaje de Check-out si previamente no se envió un Check-in y éste fue confirmado con un tercer mensaje Commit
Este mensaje deberá ser confirmado por un tercer mensaje.
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. (en el caso de eVTOL será 'VTOL') |
4 | messageType | Alfanumérico | Compatibilidad atrás. | Tipo de Mensaje:
|
6 | cardNumber | Numérico | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. Debe ser el mismo dato enviado en el check-in |
7 | expiration | Numérico | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. Debe ser el mismo dato enviado en el check-in |
8 | Cvc | Numérico | Obligatorio si es Manual. Además es opcional según la tarjeta. | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. Debe ser el mismo dato enviado en el check-in |
9 | track2 | Alfanumérico | Obligatorio si es MSR | Track2 de la tarjeta entero (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 final de la transacción, este monto no deberá ser mayor al monto que se envió en su pre-autorización (Ckeck-in). |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas/parcialidades (meses). 2 dígitos como máximo. Debe ser el mismo dato enviado en el check-in |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. Debe ser el mismo dato enviado en el check-in |
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. Debe ser el mismo dato enviado en el check-in |
56 | pinblock | Alfanumérico | Condicional a PIN Pad | PIN encriptado. Se emplea para tarjetas de débito. Ejemplo pinblock: D76484D688FE1826 |
66 | track1 | Alfanumérico | Opcional a su lectura | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
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):
|
102 | chipTokens | Alfanumérico | Obligatorio para modo de ingreso Chip | Banamex: En este campo se concatenan todos los tokens que genera el pinpad y deben comunicarse a VTOL. |
118 | terminalCapability | Numérico | Condicional | Indica la capacidad de la terminal conforme a catalogo para especificación de token C4 de documentación |
125 | posAuthenticationMethod | Numérico | Opcional | Código que indica cómo fue identificado el Tarjetahabiente en el punto de servicio: |
139 | customerRef | Alfanumerico | Opcional | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. |
167 | originalTrxReferenceNumber | Numérico | Obligatorio | Identificador único en VTOL Server de la transacción de check-in respondido en el campo 166. |
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, es el mismo del Check-In asociado |
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 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. Es el mismo del check-in asociado |
82 | SoftwareVersion | Alfanumérico | Versión software. Constante STS |
160 | hostCode | Alfanumérico | Código del canal por el cual se autorizó la tarjeta. |
161 | cardType | Alfanumérico | Tipo de tarjeta, según la configuración en VTOL:
|
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud 20 dígitos |
2.1.10 Ajuste de venta (SaleAdjustment)
Este mensaje puede ser empleado para realizar un ajuste al monto de una venta (Sale) posterior a la autorización de la misma. No puede enviarse un mensaje de SaleAdjustment si previamente no se envió un mensaje Sale y éste fue confirmado con un tercer mensaje Commit
Este mensaje deberá ser confirmado por un tercer mensaje.
No se puede enviar un SaleAdjustment por un monto menor al de la venta original ni para una venta que ya ha sido reversada.
Soportado únicamente para adquirientes Banamex.
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. | Valor constante VTOL |
4 | messageType | Alfanumérico | Compatibilidad atrás. | Tipo de Mensaje. Valor constante: Data |
6 | cardNumber | Numérico | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. Debe ser el mismo dato enviado en la venta |
7 | expiration | Numérico | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. Debe ser el mismo dato enviado en la venta. |
8 | Cvc | Numérico | Obligatorio si es Manual. Además es opcional según la tarjeta. | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. Debe ser el mismo dato enviado en la venta. |
9 | track2 | Alfanumérico | Obligatorio si es MSR | Track2 de la tarjeta entero (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 final de la transacción, este monto no deberá ser mayor al monto que se envió en la venta original (Sale) |
13 | currencyPosCode | Alfanumérico | Obligatorio | Tipos de Moneda:
|
14 | payments | Numérico | Obligatorio | Cantidad de cuotas/parcialidades (meses). 2 dígitos como máximo. Debe ser el mismo dato enviado en la venta |
15 | plan | Alfanumérico | Obligatorio | Plan. 1 caracter de longitud. Debe ser el mismo dato enviado en la venta |
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. Debe ser el mismo dato enviado en la venta |
56 | pinblock | Alfanumérico | Condicional a PIN Pad | PIN encriptado. Se emplea para tarjetas de débito. Ejemplo pinblock: D76484D688FE1826 |
66 | track1 | Alfanumérico | Opcional a su lectura | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído. |
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):
|
102 | chipTokens | Alfanumérico | Obligatorio para modo de ingreso Chip | Banamex: En este campo se concatenan todos los tokens que genera el pinpad y deben comunicarse a VTOL. |
118 | terminalCapability | Numérico | Condicional | Indica la capacidad de la terminal conforme a catalogo para especificación de token C4 de documentación |
125 | posAuthenticationMethod | Numérico | Opcional | Código que indica cómo fue identificado el Tarjetahabiente en el punto de servicio: |
139 | customerRef | Alfanumerico | Opcional | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. |
167 | originalTrxReferenceNumber | Numérico | Obligatorio | Identificador único en VTOL Server de la transacción de venta respondido en el campo 166. |
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, es el mismo de la venta original asociada |
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 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. Es el mismo del check-in asociado |
82 | SoftwareVersion | Alfanumérico | Versión software. Constante STS |
160 | hostCode | Alfanumérico | Código del canal por el cual se autorizó la tarjeta. |
161 | cardType | Alfanumérico | Tipo de tarjeta, según la configuración en VTOL:
|
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud 20 dígitos |
2.1.11 Tercer Mensaje
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:
|
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 |
200 | ExtraData | Alfanumérico | Aplica únicamente para Bancomer.
|
Respuesta
El tercer mensaje no tiene respuesta, salvo que esté prendido el flag de chequeo de transacciones pendientes.
2.1.12 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. |
200 | ExtraData | Alfanumérico | Datos extras que se deben enviar en el tercer mensaje cuando se desee:
|
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.
2.1.13 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.
2.1.14 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. |
169 | nodeFilter | Numérico | Opcional | Identificación de nodos, en el sitio originador, del que se desea obtener la lista de transacciones pendientes dado un rango de nodos. |
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 |
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] |
2.1.15 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.
2.1.16 Echo
Este mensaje puede ser utilizado para monitorear que VTOL esté levantado. El propósito es saber si VTOL server está ejecutándose. No devuelve ninguna información adicional de salud de los canales, locales, etc.
Requerimiento
# | FieldId | Tipo | Obligatorio | Description |
11 | trxType | Alfanumérico | Obligatorio | Tipo de transacción:
|
El contenido del mensaje de requerimiento a nivel bytes es el siguiente:
- HEXA BYTE:
09 00 00 00 00 01 7b 31 31 3a 45 63 68 6f 7d
- DEC BYTE:
9 0 0 0 0 1 123 49 49 58 69 99 104 111 125
- ASCII:*
......{11:Echo}
*el punto "." representa caracteres no imprimibles
Los primeros 6 bytes del mensaje representan el header del protocolo llavecitas. Ver sección 1.1.1
Respuesta
# | FieldId | Tipo | Descripción |
25 | dateTime | Numeric | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
28 | responseMessage | Alfanumérico | Mensaje de la Respuesta valor constante: |
El contenido del mensaje de respuesta a nivel bytes es el siguiente:
- HEXA BYTE:
19 00 00 00 00 00 7b 32 35 3a 32 30 31 36 31 31 30 39 31 33 34 33 30 36 3b 32 38 3a 4f 4b 7d 00
- DEC BYTE:
25 0 0 0 0 0 123 50 53 58 50 48 49 54 49 49 48 57 49 51 52 52 50 51 59 50 56 58 79 75 125
- ASCII:
......{25:20161109134306;28:OK}
*el punto "." representa caracteres no imprimibles
Los primeros 6 bytes del mensaje representan el header del protocolo llavecitas. Ver sección 1.1.1
2.1.17 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, codificada en Base64. |
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). |
2.1.18 Anulación de Pre-autorización
La anulación de Pre-Autorización sirve para anular completamente una Pre-autorización (CheckIn) realizada previamente. Dado el caso de que un cliente se arrepienta de realizar la compra, por ejemplo, en una estación de servicio el cliente se arrepiente de cargar combustible, en este caso, es necesario realizar una anulación del CheckIn para que el monto retenido sea devuelto al cliente.
El flujo normal de esta operatoria es el siguiente:
- Se realiza una pre-autorización por un monto X.
- Por algún motivo, como el expuesto más arriba, es necesario anular la pre-autorización y reintegrar el monto retenido al cliente. Mientras se esté en el mismo periodo que la operación original, se puede enviar el mensaje de anulación de pre-autorización.
La Anulación de una pre-autorización no se incluirá en los archivos de cierre o TEF.
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:
|
10 | posInputMode | Alfanumérico | SI | Modo de ingreso:
|
11 | trxType | Alfanumérico | SI | Tipo de Transacción:
|
12 | amount | Importe | SI | 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 | SI | Tipos de Moneda:
|
14 | payments | Numérico | SI | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | SI | Plan. 1 caracter de longitud. |
25 | dateTime | Numérico | SI | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
167 | originalTrxReferenceNumber | Alfanumérico | SI | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos. Dato enviado por VTOL Server en el campo 166, en la respuesta de un Sale o una PreAuthorization. |
264 | posChannelOrigin | Numérico | SI | Indica el canal de origen de la transacción. Es un código con los siguientes valores posibles:
|
Respuesta
# | FieldId | Tipo | Descripción |
0 | company | Alfanumérico | Identificador de la compañía donde se generó la transacció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 | Alfanumérico | Código de autorización generado por el centro autorizador para 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. |
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. |
82 | softwareVersion | Alfanumérico | Versión de la aplicación. |
161 | cardType | Alfanumérico | Tipo de tarjeta, según la configuración en VTOL:
|
166 | trxReferenceNumber | Numérico | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato. |
2.2 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 |
'22 | Código de Seguridad Inválido |
'25' | No existe original |
'30' | Error en formato |
'38' | Excede ingreso de PIN |
'43' | Retener tarjeta |
'45' | No opera en cuotas/Promoción no permitida |
'46 | Monto inferior al mínimo para promoción |
'46' | Tarjeta no vigente |
'47' | PIN requerido |
'48' | Excede máximo de cuotas |
'48 | CV2 inválido |
'49' | Error fecha de vencimiento |
'50' | Entrega supera límite |
'51' | Fondos insuficientes |
'53' | Cuenta inexistente/inválida |
'54' | Tarjeta vencida |
'55' | PIN incorrecto |
'56' | Tarjeta no habilitada |
'57' | Transacción no permitida |
'58' | Servicio inválido |
'61' | Excede límite |
'62 | Bin Card no permitido |
'65' | Excede límite de tarjeta |
'65 | Intento de retiros excedido |
'70 | Error descifrando T2 |
'71 | Inicializar Llaves |
'72 | Error al inicializar llaves |
'73 | Error en CRC |
'76' | Llamar al emisor |
'77' | Error plan/cuotas |
'82 | CVV/CVV2 Incorrecto |
'85' | Aprobada |
'86' | No envía fecha original |
'89' | Terminal inválida |
'89 | Comercio cerrado o cancelado |
'89 | Nueva tarjeta emitida |
'91' | Emisor fuera de línea |
'94' | Número de secuencia duplicado |
'95' | Re-transmitiendo |
'96' | Error en sistema |
'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 |
| Chiptokens Invalido |
| Campo emvFullGradeIcc Inválido |
| Error script |
| Error criptograma |
| Error cardSequenceNumber |
| Check-in no confirmado |
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.
2.3 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.4 Transacciones soportadas por canal
| Bancomer | Banamex | Banorte | Prosa | Fiserv | Amex |
---|---|---|---|---|---|---|
Sale | X | X | X | X | X | X |
CashAdvance |
|
|
|
|
|
|
Refund | X | X | X | X | X | X |
ResetKeys | X | X | X |
|
|
|
PointsLookup | X |
|
|
|
|
|
CAddressVerification |
|
|
|
|
| X |
CheckIn |
| X |
|
|
| X |
CheckOut |
| X |
|
|
| X |
SaleAdjustment |
| X |
|
|
|
|
3. ANEXOS
3.1 Anexo A Especificación del campo 58 en Requerimiento
3.1.1 Compra con puntos.
Id Campo | Tipo | Tamaño | Descripción |
Numero imprescindible | Alfanumérico | 16 | Viaja con espacios con TDD y |
Importe en pesos | Alfanumérico | 12 | Venta con Redención de Puntos |
Número de puntos | Alfanumérico | 10 | Se envían ceros. |
Tipo POS | Alfanumérico | 02 | 00 POS No tiene la funcionalidad de VB |
3.1.2 Consulta de puntos.
Id Campo | Tipo | Tamaño | Descripción |
Numero imprescindible | Alfanumérico | 16 | Viaja con espacios con TDD y |
Importe en pesos | Alfanumérico | 12 | Se envían ceros. |
Número de puntos | Alfanumérico | 10 | Se envían ceros. |
Tipo POS | Alfanumérico | 02 | 00 POS No tiene la funcionalidad de VB |
3.2 Anexo B Especificación del campo 58 en Respuesta
Campos que se reciben dentro del campo 58 del mensaje de response de una compra con puntos o de una consulta con puntos en el campo 58.
Id Campo | Tipo | Tamaño | Descripción |
Importe en pesos | Alfanumérico | 12 | Venta con Redención de Puntos |
Número de puntos | Alfanumérico | 10 | En la respuesta se regresará el número de puntos redimidos. |
Factor de exponenciación | Alfanumérico | 02 | Valores: 01, 02, 03, 04, etc. |
Saldo disponible en pesos | Alfanumérico | 12 | Saldo disponible o actualizado en pesos. |
Saldo anterior en puntos | Alfanumérico | 10 | En este campo se incluye el saldo anterior en puntos. |
Saldo anterior en pesos | Alfanumérico | 12 | En este campo se incluye el saldo anterior en pesos. |
Vigencia promoción exp | Alfanumérico | 6 | Formato ddmmaa |
Saldo redimido exp en pesos | Alfanumérico | 12 | Se incluye el saldo redimido en pesos con la promoción de Puntos exponenciales. |
Saldo redimido exp en puntos | Alfanumérico | 10 | Se incluye el saldo redimido en puntos con la promoción de Puntos exponenciales. |
Saldo disponible exp en pesos | Alfanumérico | 12 | Se incluye el saldo disponible pesos durante la promoción dePuntos exponenciales. |
Saldo disponible exp en puntos | Alfanumérico | 10 | Se incluye el saldo disponible en puntos durante la |
Card request | Alfanumérico | 02 | POS CON VB TDC |
Pool Number | Alfanumérico | 01 | Número de pools a enviar: |
Ecoup-number | Alfanumérico | 01 | POS CON VB (TDD / TDC) |
Segment number | Alfanumérico | 01 | POS CON VB (TDD / TDC) |
Pool ID 1 | Alfanumérico | 10 | POS CON VB (TDC) |
Pool Adjust Type 1 | Alfanumérico | 02 | POS CON VB (TDC) |
Pool Value 1 | Alfanumérico | 10 | 0x00000000 – 0Xffffffff |
Pool Unit Label 1 | Alfanumérico | 03 | POS CON VB Y SIN VB |
Pool Decib Nb 1 | Alfanumérico | 01 | POS CON VB Y SIN VB |
Cryptogram Mac | Alfanumérico | 10 | Message Cryptogram |
3.3 Anexo C – Especificación del campo 200 en el tercer mensaje.
3.3.1 Reverso por motivo 40
Cuando una transacción de venta ha sido aprobada en CA, pero el PIN Pad la rechaza, se genera el reverso en el tercer mensaje, tal como se trabaja hoy en día, además, se deberá agregar el campo 200, conteniendo la información que viaja en el campo 117 en el mensaje de venta original.
Id Campo | Tipo | Tamaño | Descripción |
Reverso 40 | Alfanumérico | 999 | Número del campo (117) separado por un pipe (|) seguido del valor leído del PIN PAD. [117| Lista campos EMV completos (ElementoE2)] |
Ejemplo:
200 extraData : [117|950500800080409F100706010A03A000009F1E0831383835363931329F260876072C613CF7A1079F360200459F3704CBF82399]
3.3.2 Especificar la razón del reverso desde el punto de venta.
Este campo puede viajar en la mensajería cuando se desea especificar la razón por la que se está reversando la transacción, los escenarios posibles para especificar el motivo de reverso son:
- Se dio una cancelación desde el punto de venta, como por ejemplo en caso de que no todos los pagos parciales hayan sido aprobados y se desean reversar aquellos que sí se aprobaron.
- Se produjo un error en la caja que causo que la transacción sea reversada, esta opción debe ser utilizada únicamente para escenarios de error no controlados, ya que puede ser un indicador de un mal funcionamiento.
Id Campo | Tipo | Tamaño | Descripción |
Motivo de Reverso | Alfanumérico | 999 | Número del campo (100) separado por un pipe (|) seguido del valor del motivo del reverso. [100| Motivo de reverso] Valores posibles para el motivo de reverso:
|
Ejemplo:
200 extraData : [100|Cancel]
200 extraData : [100|Error]
3.3.3 Firma digital
Para envió de la firma digital y del código de redundancia cíclica el POS debe enviar en el tercer mensaje Commit la cadena de la firma obtenida del PIN Pad.y el valor del ultimo comando S31.
Estos datos se incluyen en el campo 200 –extraData-, con el siguiente formato:
Id Campo | Tipo | Tamaño | Descripción |
| Hexadecimal | 2048 | Nombre del campo (signatureData) separado por un pipe (|) seguido del valor de la firma digital separado por una coma seguido del Nombre del campo (crc32) separado por un pipe (|) seguido del valor del crc32 [signatureData|valorFirma,crc32|valorCRC] |
Ejemplo:
200 extraData : [signatureData|000000000000000000000000000000000000000000000,crc32|987456321]
3.4 Anexo D Especificación del campo 127
# | Posición | Nombre del Campo | Descripción |
1 | 1-3 | VLI | Indicador de longitud variable |
2 | 4-5 | Service Identifier | Valor constante "AX" |
3 | 6-7 | Request Type Identifier | Valor constante "AE" |
4 | 8 | Cardmember Billing Postal Code | Resultado de la validación del código postal |
5 | 9 | Cardmember Billing (Street) Address | Resultado de la validación de la calle |
6 | 10 | Cardmember First and Last Name | Resultado de la validación del nombre y apellido |
7 | 11 | Cardmember Billing Phone Number | Resultado de la validación del número telefónico |
8 | 12 | Customer E-Mail Address | Resultado de la validación del correo electrónico |
Para los campos del 4 al 8, los valores posibles son:
- Y – Datos concuerdan
- N – Datos no concuerdan
- ~ - Los datos no se enviaron
- U – Los datos no se verificaron
- R – Reintentar
- S – Servicio no permitido
3.5 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 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 |
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 | Tarjeta que Encripta punto a punto POS - CA. | 1 | N | Indica si la tarjeta encripta. |
28 | Posición de la Master Key | 1 | N | Indica la posición de la Master Key en los registros del Firmware. Valores posibles: |
29 | Código de banco | 10 | AN | Código del banco |
30 | Permite Fallback | 1 | N | Visa 1; Mastercard y Maestro 0 |
Ejemplo:
PF:4;4;1;16;VI;;3;1;1;1;1;1000;1;0;1;;1;0;0;0;4;0;1;0;0;1;1;;1
PF:34;34;2;15;AM;;4;1;1;1;1;00;1;0;1;;1;0;0;0;0;0;0;0;0;0;;;
PF:69;50;2;16;MA;;0;0;1;0;0;1000;1;0;0;;0;0;1;1;0;1;0;0;0;0;0;;0
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 |
12 | Promocional | 1 | N | Activa con 1 o Desactiva con 0, Si aplica o no una promoción para el plan de pago. |
Ejemplo:
PP:AM;$;;0;1;98765432;101607;0000000000.00;0000000000.00;12.30;1
PP:VI;$;;0;10;98765432;101608;0000000100.00;0000000000.00;15.00;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
3.6 Anexo F Operaciones disponibles
A continuación se detallan las operaciones disponibles que se encuentran en VTOL CR-DB México.
Funcionalidad | AmexGHDC | AmexV4 | Bancomer | BanamexEG | Banorte | Prosa | Observaciones |
---|---|---|---|---|---|---|---|
Tarjetas que procesa | A | A | V,M,A | V,M | V,M | V,M,A | |
Sale E-Commerce | NO | SI | SI | SI | SI | NO | |
CheckIn (Pre-autorización) | NO | SI | NO | SI | SI* | NO | Banorte: sólo para Vesta |
CheckOut (Captura) | NO | SI | NO | SI | SI* | NO | Banorte: sólo para Vesta El monto no puede ser mayor al monto de la Preautorización. |
Anulación de Pre-Autorización | NO | SI* | NO | SI | SI* | NO | Banorte: sólo para Vesta Amex: Para cancelar se utiliza un reverso a través del Rollback |
Devolución | SI | SI | SI | SI | SI | SI | |
Devolución referenciada | SI | SI | SI | SI | SI | SI | Bancomer: la devolución es offline, y se hace por TEF |
Mensajes al Autorizador | |||||||
Sale E-Commerce | Mensaje en línea | Mensaje en línea | |||||
CheckIn (Pre-autorización) | Mensaje en línea | Mensaje en línea | |||||
CheckOut (Captura) | Mensaje offline: Se envía en el TEF |
| |||||
Anulación de Pre-Autorización | No permitido |
| Para lote abierto, se maneja como una cancelación del CheckIn. Para lote cerrado, si el POS anula la Preautorización, se la deja vencer, no se envía mensaje al Autorizador. La devolución del dinero al tarjetahabiente se realiza cuando se vence la Preautorización. | ||||
Devolución | Se envía en el TEF | Mensaje en línea | |||||
Devolución referenciada | Se envía en el TEF | Mensaje en línea | |||||
Duración de la Pre-Autorización | 7 | 15 |