VTOL CD CA - Manual mensajería POS - VTOL CA
VTOL CRÉDITO DÉBITO CENTROAMÉRICA
Mensajería POS - VTOL
...
| Painel | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
|
...
| Painel | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
| Âncora | ||||
|---|---|---|---|---|
|
| Âncora | ||||
|---|---|---|---|---|
|
| Âncora | ||||
|---|---|---|---|---|
|
| Âncora | ||||
|---|---|---|---|---|
|
| Âncora | ||||
|---|---|---|---|---|
|
| Âncora | ||||
|---|---|---|---|---|
|
...
Un ejemplo de lo explicado anteriormente podría ser el siguiente:
HEADER | |
|---|---|
Longitud del mensaje | Requiere respuesta |
A101 | 01 |
...
# | FieldId | Formato | Requerido | Descripción | ||||||||||||||||||
1 | store | A10(V) | SI | Identificador del sitio originador de la transacción | ||||||||||||||||||
2 | node | N10(V) | SI | Identificación del nodo, en el sitio originador, donde se generó la transacción | ||||||||||||||||||
3 | server | A4(F) | Compatibilidad atrás. | Constante VTOL | ||||||||||||||||||
4 | messageType | A4(F) | Compatibilidad atrás. | Constante Data | ||||||||||||||||||
6 | cardNumber | N19(V) | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. | ||||||||||||||||||
7 | expiration | N6(F) | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. | ||||||||||||||||||
9 | track2 | A200(V) | Obligatorio para todos los modos de ingreso excepto Manual | Track2 de la tarjeta. | ||||||||||||||||||
10 | posInputMode | A20(V) | Obligatorio | Modo de Ingreso:
Debe corresponder con el modo de ingreso que devuelve el PIN Pad en el campo entryMode
| ||||||||||||||||||
11 | trxType | A20(V) | Obligatorio | Tipo de Transacción:
| ||||||||||||||||||
12 | amount | N12(V) | Obligatorio | Monto de la transacción en centavos. Se envía sin coma. | ||||||||||||||||||
13 | currencyPosCode | A5(V) | Obligatorio | Tipos de Moneda:
| ||||||||||||||||||
14 | payments | N2(V) | Obligatorio | Cantidad de cuotas/parcialidades (meses). 2 dígitos como máximo. | ||||||||||||||||||
15 | plan | A1(F) | Obligatorio | Plan | ||||||||||||||||||
25 | dateTime | N14(F) | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss | ||||||||||||||||||
53 | paymentCondition | A3(V) | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción. | ||||||||||||||||||
71 | checkPendingString | A5(V) | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas)
| ||||||||||||||||||
201 | additionalMessageData | A2000(V) | Opcional | Cuerpo del mensaje de la petición en formato JSON codificado en base 64 |
...
# | FieldId | Formato | Requerido | Descripción | ||||||||||||||||||
1 | store | A10(V) | SI | Identificador del sitio originador de la transacción | ||||||||||||||||||
2 | node | N10(V) | SI | Identificación del nodo, en el sitio originador, donde se generó la transacción | ||||||||||||||||||
3 | server | A4(F) | Compatibilidad atrás. | Constante VTOL | ||||||||||||||||||
4 | messageType | A4(F) | Compatibilidad atrás. | Constante Data | ||||||||||||||||||
6 | cardNumber | N19(V) | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. | ||||||||||||||||||
7 | expiration | N6(F) | Obligatorio si es Manual | Formato YYYYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. | ||||||||||||||||||
8 | cvc | A4(V) | 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 | A200(V) | Obligatorio para todos los modos de ingreso excepto Manual | Track2 de la tarjeta. | ||||||||||||||||||
10 | posInputMode | A20(V) | Obligatorio | Modo de Ingreso:
| ||||||||||||||||||
11 | trxType | A20(V) | Obligatorio | Tipo de Transacción:
| ||||||||||||||||||
12 | amount | N12(V) | Obligatorio | Monto de la transacción en centavos. Se envía sin coma. | ||||||||||||||||||
13 | currencyPosCode | A5(V) | Obligatorio | Tipos de Moneda:
| ||||||||||||||||||
14 | payments | N2(V) | Obligatorio | Cantidad de cuotas/parcialidades (meses). 2 dígitos como máximo. | ||||||||||||||||||
15 | plan | A1(F) | Obligatorio | Plan | ||||||||||||||||||
16 | originalDate | N8(F) | Obligatorio | Fecha de la transacción original en el formato YYYYMMDD. | ||||||||||||||||||
17 | originalTrxTicketNr | N6(V) | Obligatorio | Número de ticket de la transacción original. Este valor fue informado al POS en el campo 32 de la venta y es único por cada caja | ||||||||||||||||||
25 | dateTime | N14(F) | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss | ||||||||||||||||||
53 | paymentCondition | A3(V) | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción. | ||||||||||||||||||
66 | track1 | A100(V) | Opcional a su lectura | Criptograma obtenido de la lectura del track 1 de la tarjeta. | ||||||||||||||||||
71 | checkPendingString | A5(V) | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas)
| ||||||||||||||||||
139 | customerRef | A20(V) | Opcional | Número de referencia de comercio para trazabilidad. | ||||||||||||||||||
201 | additionalMessageData | A2000(V) | Opcional | Cuerpo del mensaje de la petición en formato JSON codificado en base 64 | ||||||||||||||||||
283 | keyLabel | N4(F) | Condicional | Etiqueta de la llave utilizada para encripción | ||||||||||||||||||
284 | keySerialNumber | A20(V) | Condicional | Key Serial Number. | ||||||||||||||||||
286 | encryptedTrack2 | A100(V) | Condicional a su lectura | Criptograma obtenido de la lectura del track 2 de la tarjeta. |
...
# | FieldId | Formato | Requerido | Descripción | ||||||||||||||||||
1 | store | A10(V) | SI | Identificador del sitio originador de la transacción | ||||||||||||||||||
2 | node | N10(V) | SI | Identificación del nodo, en el sitio originador, donde se generó la transacción | ||||||||||||||||||
3 | server | A4(F) | Compatibilidad atrás. | Constante VTOL | ||||||||||||||||||
4 | messageType | A4(F) | Compatibilidad atrás. | Constante Data | ||||||||||||||||||
6 | cardNumber | N19(V) | Obligatorio si es Manual | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. | ||||||||||||||||||
9 | track2 | A200(V) | Obligatorio para todos los modos de ingreso excepto Manual | Track2 de la tarjeta. | ||||||||||||||||||
10 | posInputMode | A20(V) | Obligatorio | Modo de Ingreso:
Debe corresponder con el modo de ingreso que devuelve el PIN Pad en el campo entryMode
| ||||||||||||||||||
11 | trxType | A20(V) | Obligatorio | Tipo de Transacción:
| ||||||||||||||||||
12 | amount | N12(V) | Obligatorio | Monto de la transacción en centavos. Se envía sin coma. | ||||||||||||||||||
13 | currencyPosCode | A5(V) | Obligatorio | Tipos de Moneda:
| ||||||||||||||||||
14 | payments | N2(V) | Obligatorio | Cantidad de cuotas/parcialidades (meses). 2 dígitos como máximo. Debe ser el mismo valor que la venta original. | ||||||||||||||||||
15 | plan | A1(F) | Obligatorio | Plan. Debe ser el mismo valor que la venta original. | ||||||||||||||||||
16 | originalDate | N8(F) | Obligatorio si no se manda el campo 167 | Fecha de la transacción original en el formato YYYYMMDD. | ||||||||||||||||||
17 | originalTrxTicketNr | N6(V) | Obligatorio si no se manda el campo 167 | Número de ticket de la transacción original. Este valor fue informado al POS en el campo 32 de la venta y es único por cada caja | ||||||||||||||||||
25 | dateTime | N14(F) | Obligatorio | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss | ||||||||||||||||||
53 | paymentCondition | A3(V) | Opcional | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción. | ||||||||||||||||||
71 | checkPendingString | A5(V) | Opcional, default = true | Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas)
| ||||||||||||||||||
139 | customerRef | A20(V) | Opcional | Número de referencia de comercio para trazabilidad. | ||||||||||||||||||
167 | originalTrxReferenceNumber | N20(V) | Obligatorio si no se mandan los campos 16 y 17 | Número de referencia de la transacción original. Es el valor recibido en el campo 166 de la respuesta a la venta original. | ||||||||||||||||||
201 | additionalMessageData | A2000(V) | Opcional | Cuerpo del mensaje de la petición en formato JSON codificado en base 64 |
...
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]}
...
Los primeros 6 bytes del mensaje representan el header del protocolo llavecitas.
| Âncora | ||||
|---|---|---|---|---|
|
| Âncora | ||||
|---|---|---|---|---|
|
...
Únicamente el mensaje 00-APROBADA es totalmente satisfactorio.
Si se recibe el mensaje 08-ACEPTE CON IDENTIFICACIÓN la transacción ha sido aprobada pero se debe pedir la identificación al cliente. En caso de que se encuentre algo sospechoso en la identificación se debe anular la transacción desde el sistema.
Código | Descripción | |
00 | Aprobada | |
01 | Consulte verbal | |
02 | Consulte verbal | |
03 | Comercio inválido | |
04 | Capture tarjeta | |
05 | Denegada | |
08 | Acepte con identificación | |
09 | Aceptado | |
10 | Aceptado por '$x.xx' | |
12 | Transacción inválida | |
13 | Cantidad inválida | |
14 | Tarjeta inválida | |
19 | Reintente transacción | |
21 | Sin transacciones | |
25 | Reintente TR NT | |
41 | Retener tarjeta | |
43 | Retener tarjeta | |
51 | Denegada FI | |
54 | Tarjeta vencida | |
57 | Transacción no permitida | |
58 | Transacción no permitida | |
60 | Denegada | |
61 | Denegada | |
62 | Denegada | |
63 | Denegada | |
75 | Denegada | |
78 | Tran. No encontrado | |
79 | Lote ya abierto | |
80 | Error en número de lote | |
85 | Lote no existe | |
89 | Terminal inválido | |
94 | Transacción duplicada | |
95 | Espere transmisión | |
96 | Error en sistema | |
Código de seguridad inválido | ||
Error de comunicación | ||
Reintente cierre | ||
Monto inválido | ||
Terminal inválida | ||
Tipo de mensaje inválido | ||
Sistema no disponible | ||
| Reintente Reintente transacción TO | |
Reintente transacción ND | ||
Transacción inválida | ||
| Reintente to REM | |
Trans. ya procesada | ||
| Error en lectura de track | |
Error acceso a BD | ||
Error interno del WS | ||
Usuario inválido | ||
Rechazado por sistema de recarga | ||
Sistema de recarga no disponible | ||
| Número de teléfono inválido | |
Denegado por coinca | ||
| Billetera no existe | |
| OTP Vencido | |
OTP Inválido | ||
Moneda inválida | ||
OTP Cancelado | ||
| OTP Expirado | |
Fondos insuficientes | ||
| Sup. Limite billetera | |
| Monto no autorizado | |
| No acepta anulación | |
'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.
...
