Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


Image RemovedImage Added




VTOL CD CA - Manual mensajería POS - VTOL CA



VTOL CRÉDITO DÉBITO CENTROAMÉRICA

Mensajería POS - VTOL

...




Painel
borderColor#E4E3E3
bgColor#ffffff
titleColor#ffffff
borderWidth1px
titleBGColor#704581
titleREVISIONES


Expandir
titleExpandir revisiones


Fecha

Revisión

Observaciones

01/10/2019

1.0

Generación del documento

20/01/2020

1.1

Ajusto mensaje Sale para reflejar que el POS nos enviará directamente el campo 201 con el json devuelto por el PIN Pad

...





Painel
borderColor#E4E3E3
titleColor#ffffff
borderWidth1
titleBGColor#704581
titleCONTENIDO


Expandir
titleExpandir contenido

Índice



Âncora
_Toc101843262
_Toc101843262
Âncora
_Toc101843287
_Toc101843287
Âncora
_Toc201665538
_Toc201665538
Âncora
_Toc520371716
_Toc520371716
Âncora
_Toc21350335
_Toc21350335
Âncora
_Toc145327442
_Toc145327442
1. Protocolo de comunicación POS – VTOL

...

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.
Para transacciones con esquema cifrado activado se enviará un Track Dummy armado con el número de tarjeta recibido por el PIN Pad.
Si el PIN Pad devuelve la tarjeta enmascarada, se deberá enviar a VTOL los caracteres enmascarados como 0 y NO como *,X o cualquier otro.

10

posInputMode

A20(V)

Obligatorio

Modo de Ingreso:

  • Manual – Captura Manual
  • Chip = Tarjeta insertada PIN Pad
  • MSR Chip = Tarjeta deslizada PIN Pad
  • MSR ChipNR = Ingreso Manual PIN Pad
  • MSR ChipError = Fallback PIN Pad
  • Contactless = Contactless EMV
  • MSR Contactless – Captura de los datos de la banda magnética sin contacto

Debe corresponder con el modo de ingreso que devuelve el PIN Pad en el campo entryMode

Valor BACValor VTOL
MNLMSR ChipNR
CHPChip
MSEMSR Chip
COFRecurring
FBKMSR ChipError
CLCContactless
CLBMSR Contactless
OTP-


11

trxType

A20(V)

Obligatorio

Tipo de Transacción:

  • Sale = Compra

12

amount

N12(V)

Obligatorio

Monto de la transacción en centavos. Se envía sin coma.
Ejemplo: 1000 equivale a 10.00
Debe corresponder con el campo totalAmount enviado en el json del campo 201

13

currencyPosCode

A5(V)

Obligatorio

Tipos de Moneda:

  • $ = Pesos
  • U$S = Dólares

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)
Valores posibles:

  • True = activa chequeo de pendientes.
  • False = desactiva chequeo de pendientes.

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.
Para transacciones con esquema cifrado activado se enviará un Track Dummy correspondiente a una tarjeta del banco adquiriente

10

posInputMode

A20(V)

Obligatorio

Modo de Ingreso:

  • Manual – Captura Manual
  • Chip = Tarjeta insertada PIN Pad
  • MSR Chip = Tarjeta deslizada PIN Pad
  • MSR ChipNR = Ingreso Manual PIN Pad
  • MSR ChipError = Fallback PIN Pad
  • Contactless = Contactless EMV
  • MSR Contactless – Captura de los datos de la banda magnética sin contacto


Debe corresponder con el modo de ingreso que devuelve el PIN Pad en el campo entryMode

Valor BACValor VTOL
MNLMSR ChipNR
CHPChip
MSEMSR Chip
COFRecurring
FBKMSR ChipError
CLCContactless
CLBMSR Contactless
OTP-


11

trxType

A20(V)

Obligatorio

Tipo de Transacción:

  • Refund = Devolución

12

amount

N12(V)

Obligatorio

Monto de la transacción en centavos. Se envía sin coma.
Ejemplo: 1000 equivale a 10.00
Debe corresponder con el campo totalAmount enviado en el json del campo 201

13

currencyPosCode

A5(V)

Obligatorio

Tipos de Moneda:

  • $ = Pesos
  • U$S = Dólares

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.
En caso de que entryMode sea diferente a Manual

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)
Valores posibles:

  • True = activa chequeo de pendientes.
  • False = desactiva chequeo de pendientes.

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.
Debe ser enviado en caso de que se utilice el algoritmo DUKPT para el descifrado de los datos.
Formato Hexadecimal

286

encryptedTrack2

A100(V)

Condicional a su lectura

Criptograma obtenido de la lectura del track 2 de la tarjeta.
En caso de que inputMode sea diferente a Manual

...

#

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.
Para transacciones con esquema cifrado activado se enviará un Track Dummy correspondiente a una tarjeta del banco adquiriente

10

posInputMode

A20(V)

Obligatorio

Modo de Ingreso:

  • Manual – Captura Manual
  • Chip = Tarjeta insertada PIN Pad
  • MSR Chip = Tarjeta deslizada PIN Pad
  • MSR ChipNR = Ingreso Manual PIN Pad
  • MSR ChipError = Fallback PIN Pad
  • Contactless = Contactless EMV
  • MSR Contactless – Captura de los datos de la banda magnética sin contacto

Debe corresponder con el modo de ingreso que devuelve el PIN Pad en el campo entryMode

Valor BACValor VTOL

MNL

MSR ChipNR

CHP

Chip

MSE

MSR Chip

COF

Recurring

FBK

MSR ChipError

CLC

Contactless

CLB

MSR Contactless

OTP

-


11

trxType

A20(V)

Obligatorio

Tipo de Transacción:

  • VoidSale = Anulación

12

amount

N12(V)

Obligatorio

Monto de la transacción en centavos. Se envía sin coma.
Debe ser el mismo monto que la venta original.
Ejemplo: 1000 equivale a 10.00
Debe corresponder con el campo totalAmount enviado en el json del campo 201

13

currencyPosCode

A5(V)

Obligatorio

Tipos de Moneda:

  • $ = Pesos
  • U$S = Dólares

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)
Valores posibles:

  • True = activa chequeo de pendientes.
  • False = desactiva chequeo de pendientes.

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
_Toc520371742
_Toc520371742
Âncora
_Toc21350355
_Toc21350355
2.3 Códigos de Respuesta al POS

...

Ú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.

...