VTOL EMVKIT - Manual de mensajería POS - EMVKIT





REVISIONES


Fecha

Versión

Descripción

15/07/2014

1.00

Creación de documento

05/08/2014

1.01

Se agregan códigos de error.
Se modifica información sobre el mensaje a "AdditionalData".

27/08/2014

1.02

Agregado Mensaje directo a VTOL

28/10/2014

1.03

Agregado AID a la respuesta

02/12/2014

1.04

Agregado CardType a la respuesta (campo 161)

15/04/2015

1.05

Ajustes para documento genérico

4/5/2015

1.06

Aclaraciones sobre obtención de bines en respuesta previo a la autorización

11/05/2015

1.07

Se agregan información referida a QPS y Puntos Bancomer.

18/06/2015

1.08

Se agregan datos adicionales en la respuesta obtenidos del rsvtol.ini, se agrega anexo A del campo 58 de Bancomer.

01/07/2015

1.09

Adaptación del documento EMVKit

08/07/2015

1.10

Documentación Cashback

30/07/2015

1.11

Documentación sobre firma digital

06/08/2015

1.12

Se elimina comentario sobre DVA original.

10/09/2015

1.13

Se habilita el campo 23 en el requerimiento del POS para autorizaciones offline.

28/09/2015

1.14

Se agrega funcionalidad de comisión para mensajes "CardPayment" y "CashAdvance"

05/10/2015

1.15

Aclaraciones CashAdvance y CardPaymernt

15/12/2015

1.16

Se agrega funcionalidad de "queryPan"

31/08/2016

1.17

Se agrega marca en Sale y Refund para indicar si nos encontgramos en modo mobile.

18/10/2016

1.18

Nuevos campos TVR y TSI para Banorte

18/10/2016

1.19

Nuevo mensaje de carga de bines a petición del usuario.

30/11/2016

1.20

Ajustamos comentarios de códigos de respuesta

09/01/2017

1.21

Se mejora documentación del campo 202.

03/02/2017

1.22

Agrego campo 223 a la respuesta de un Sale

05/07/2018

1.23

Se agrega campo 0 company en la mensajería

08/08/2018

1.24

Ajustes flujo mensajería PTService y PTPromotionQuery

30/11/2018

1.25

Actualizo Imagen

03/12/2018

1.26

Actualizamos PTService y PTPromotionQuery

26/12/2018

1.27

Se revisan nombres de los campos para servicio REST

19/02/2019

1.28

Consulta de puntos Bancomer (pointsLookup)

25/02/2019

1.29

Se elimina Anexo A, ya que se debe tomar la configuración de la documentación de Bancomer.

05/03/2019

1.30

Se agrega queryBin

31/05/2019

1.31

Se ajusta definición de campos en respuesta de Sale

02/12/2019

1.32

Actualizamos información de la firma, campos 125, 206 y 207

01/08/2020

1.33

Actualización Modo de Ingreso Contactless

28/09/2020

1.34

Agregamos campo 224 en respuesta de SALE para contactless.



CONTENIDO

1. Introducción

El presente documento describe la mensajería que se utiliza entre el POS y la aplicación EMV/KIT.


1.1 Qué es EMVKIT?

EMVKIT es una utilidad que simplifica la integración y la comunicación con el medio de pago de tarjetas abstrayendo a la aplicación de punto de venta de procesos como:

  • el manejo del PINPAD
  • el reconocimiento de tarjetas (crédito/débito y otras, como vales, tarjeta regalo, etc)
  • la comunicación e integración con Gateway de transacciones VTOL
  • detectar y resolver problemas de contingencia
  • etc

1.2 Arquitectura de la Librería



Arquitectura general de EMVKIT


Como se observa en la imagen, EMVKIT se encarga de comunicarse con el PINPAD, desligando al aplicativo de punto de venta de dicha responsabilidad con el objetivo de simplificar la integración y con el Gateway de transacciones VTOL para procesar la autorización.
Esta librería se ejecutará de manera stand alone –autónoma– en el punto de venta, pudiendo iniciarse como servicio, transmitiendo una comunicación server TCP IP capaz de interpretar el protocolo VTOL. El mismo protocolo es utilizado para comunicarse con VTOL Server.
La integración entre la aplicación de punto de venta y EMVKIT será a través de la utilización de la librería cliente de VTOL, la que llamaremos librería cliente o librería liviana.
La aplicación de punto de venta solo debe incorporar esta librería liviana que le permitirá, mediante llamadas JAVA o .NET, construir los mensajes para comunicarse con EMVKIT.

1.3 Alcance

EMVKIT tiene el siguiente alcance:

  1. Capturar el Track I y el Track II de la tarjeta por medio del PINPAD
  2. Capturar información del CHIP por medio del PINPAD
  3. Soporte de una variedad de PINPADS
  4. Identificar la tarjeta o proveedor
  5. Facilitar los datos de tarjeta encriptados, los cuales solo podrán ser desencriptados por VTOL Server o por el HOST autorizador según corresponda
  6. Facilitar el PAN enmascarado según normas PCI (solo visibles los primeros 6 y últimos 4 dígitos)
  7. Capturar el CVC por medio del PINPAD
  8. Capturar la fecha de vencimiento por medio del PINPAD en caso de que el ingreso sea manual
  9. Capturar el PIN por medio del PINPAD
  10. Capturar el tipo de cuenta por medio del PINPAD
  11. Evaluar bines de excepción
  12. Soportar modo de ingreso CHIP, BANDA y MANUAL
  13. Suministrar la configuración de VTOL Server a la aplicación de punto de venta (prefijos, tarjetas, cuotas, intereses, etc)
  14. Manejar contingencia entre PINPAD, caja y VTOL
  15. Comunicación entre aplicativo punto de venta y VTOL Server
  16. Resolver las reglas de negocio propias de cada PINPAD según el adquirente
  17. Funcionalidad de venta con cashback
  18. Funcionalidad de venta con puntos Bancomer (para soluciones con adquirente Bancomer)
  19. Soporte de operaciones de venta como devoluciones, anulación de venta
  20. Gestionar la mensajería con VTOL Server


Es responsabilidad de la aplicación de punto de ventas:

  1. La confirmación del monto
  2. El cálculo de promociones, la validación de plan de pago, la determinación de cuotas.
  3. Impresión del voucher y duplicado


En resumen, EMV/KIT se encargará de la comunicación con el PINPAD y Vtol, autorizando pagos en línea y actualizando información en el PINPAD. El POSenviará requerimientos solicitando que se realicen pagos, los cuales será responsabilidad de EMV/KIT realizar todas las validaciones necesarias y comunicarse con todos los componentes para responder al POSsi el pago se pudo realizar o no, y el motivo de error.


2. Protocolo de comunicación

A continuación detallamos lo tipos de comunicaciones de EMV/KIT.


2.1 TCP/IP

Comunicación por default de la aplicación, la cual mantiene la misma lógica presentada en el documento "VTOLCR-DB-Manual mensajeria POS - VTOL".
Ejemplo de Respuesta:


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}


2.2 Servicio REST

Se debe realizar un PUT en el servicio EMVKit, la mensajería puede ser XML o JSON, a continuación un ejemplo del servicio:


2.2.1 Ejemplo de request

PUT http://localhost:8080/bridge-pos-rest/service/emvKitMessage

<bridgeCoreRequest>
   <connectionId>${connectionId}</connectionId>
   <operation>emvKitAuthorize</operation>
   <params>
      <store>123</store>
      <node>5</node>
      <server>VD</server>
      <trxType>Sale</trxType>
      <dateTime>20181226105000</dateTime>
      <amount>10099</amount>
      <payments>1</payments>
      <plan>0</plan>
   </params>
</bridgeCoreRequest>

Cabeceras de petición:

Connection: keep-alive
Content-Type: application/xml;charset=UTF-8
Accept:application/xml


2.2.2 Ejemplo de response


<?xml version="1.0" encoding="UTF-8"?>
<bridgeCoreResponse>
   <ack>0</ack>
   <message />
   <representation class="emvKitRepresentation">
      <params>
         <dateTime>20181226105000</dateTime>
         <authorizationCode>012345</authorizationCode>
         <withoutSign>false</withoutSign>
         <responseCode>Iso8583</responseCode>
         <field42>1</field42>
         <posInputMode>Chip</posInputMode>
         <posAuthenticationMethod>5</posAuthenticationMethod>
         <lastTrxId>10</lastTrxId>
         <productDescription>false</productDescription>
         <criptograma>DE41234AA6A7F0B6</criptograma>
         <amount>10099</amount>
         <ticket>1</ticket>
         <cardHolderName>PRG ORO</cardHolderName>
         <cardType>Debito</cardType>
         <store>123</store>
         <node>5</node>
         <applicationLabel>MasterCard</applicationLabel>
         <isoCode>00</isoCode>
         <authorizationMode>onLine</authorizationMode>
         <responseMessage>APROBADA</responseMessage>
         <aid>A0000000041010</aid>
         <cardNumber>5499490516183381</cardNumber>
         <electronicSign>false</electronicSign>
      </params>
   </representation>
</bridgeCoreResponse>

Nota: Todo campo que se obtenga de VTOL y no haya sido mapeado en la respuesta REST, será respondido de manera "fieldXX" donde XX es el número de campo obtenido de VTOL. Ver campo "field42". 


3. Tipos de transacciones

A continuación enumeramos los tipos de transacciones necesarios para implementar pagos con tarjetas:


  • CheckPending: Mensaje de consulta de transacciones pendientes.
  • Sale: Solicitud de pago con tarjeta
  • Refund: Solicitud de devolución o cancelación con tarjeta.
  • UnSyncCompletion: Mensaje de confirmación de transacción ("tercer mensaje").
  • AdditionalData: Selección de planes, cuotas, puntos Bancomer y/o autorización telefónica.
  • ResetKeys: Se solicita inyección de llaves opcional en pinpad.


El flujo de mensajería mantiene la misma lógica que actualmente se enumera en el documento de mensajería "POS-VTOL": "VTOLCR-DB-Manual Mensajería POS – VTOL MX.docx".
En nuestro caso, los mensajes "AdditionalData" y "ResetKeys" son complementarios y relacionados a EMV/KIT y el flujo será explicado en este documento.
Dependiendo de los autorizadores e implementaciones, se han agregado funcionalidades adicionales, las cuales se encontrarán habilitadas o no dependiendo del autorizador, algunas funcionalidades son: "CashAdvance", "CardPayment", "QueryPan" y "LoadExceptionBins".


4. Autorizadores/Bancos

Existen funcionalidades propias de cada autorizador o banco, para lo cual ciertas funcionalidades y parámetros se encuentran restringidos a estos en todo el documento, es importante que tenga en cuenta cuando se realizan las integraciones, los autorizadores o bancos que actualmente se manejan son:


  • Bancomer
  • Banamex
  • Visanet/Paradox
  • Banorte


5. Flujo de mensajería

A continuación se muestra un simple diagrama, donde se puede visualizar un caso completo de comunicación entre POS – EMV/KIT – Pinpad – VTOL para pagos simples con tarjetas.

En este caso, es un simple caso sin errores, donde se realiza un pago con cierta tarjeta.



 
Existen mensajes que EMV/KIT no necesita procesar y por lo tanto se enviarán directamente a VTOL, actualmente estos mensajes son "CheckPending" y "UnSyncCompletion", a continuación un diagrama con esta situación.


 
También puede darse el caso de requerir enviar un mensaje a VTOL con datos leídos por un dispositivo externo, en ese caso, si un "Sale" o un "Refund" se envía con el campo InputMode (#10) presente se seguirá este proceso también.

A partir de este momento, en los diagramas no visualizaremos la comunicación con el Pinpad ni con VTOL ya que esto es responsabilidad del EMV/KIT.

En el próximo diagrama visualizamos un escenario con varios pagos parciales, al finalizar todos los pagos será necesario el envío de los "UnSyncCompletion".

En caso de que antes de realizar el pago, no conozcamos los planes habilitados para la tarjeta que ingresaremos, será necesaria una interacción con EMV/KIT para informar estos planes:


Existen casos donde el Pos debe solicitar la inyección de llaves, esto sucede cuando el centro autorizador informa que se debe realizar una inyección de llaves "opcional". Se pueden definir diferentes estrategias para realizar esta inyección, en este caso se debe revisar la documentación proporcionada por el autorizador. De acuerdo a algunas especificaciones, se solicita esta inyección en la carga de la aplicación, cuando es un nuevo día o cuando una transacción ha sido finalizada.

En todos los casos no se permite este tipo de mensaje mientras exista una transacción en curso.


6. Formato y campo requerido

Los campo son de longitud fija, numéricos, o alfanumérico. A continuación se muestra el formato que se utilizará para determinar la representación de cada campo.

El campo de representación puede tener los siguientes formatos:
NX (F)Caracteres numéricos con longitud fija de X caracteres
NX (V)Caracteres numéricos con longitud variable de máximo X caracteres
AX (F)Caracteres alfabéticos, numéricos y/o especiales con longitud fija de X caracteres
AX (V)Caracteres alfabéticos, numéricos y/o especiales con longitud variable de máximo X caracteres

Si no se especifica (F) o (V) se considera por default una longitud variable (V)

Para los casos donde se especifica si un campo es requerido, las opciones son:

  • M: Mandatorio
  • O: Opcional
  • C: Condicionado



7. Campos de la mensajería POS – EMV/KIT

A continuación se definen los campos utilizados en la mensajería entre el POS y EMV/KIT.

Tener en cuenta que algunos campos se encuentran relacionados al autorizador, por lo tanto estos solo servirán en esos casos (ejemplos de autorizadores: Banamex, Bancomer, etc.)


7.1 CheckPending y UnSyncCompletion

Estos mensajes tienen el mismo uso descripto en el documento "POS-VTOL".

Los mensajes de "requerimiento" y de "respuesta" se mantienen idénticos.

Nota relacionada al UnSyncCompletion: Actualmente existe el "tercer mensaje embebido", mismo que en esta mensajería podría utilizarse. El mensaje embebido se compone de los campos "19" y "24" y puede ser enviado con cualquier mensaje.

El único mensaje que no procesará estos campos será "resetKeys".


7.2 Sale y Refund

Mensaje utilizado para realizar un pago parcial, sea de venta o devolución.

Cuando se recibe este mensaje, comienzan las validaciones, comunicación con el Pinpad y autorización con Vtol.

En caso de que no se reporten los planes y cuotas inicialmente desde el POS, la aplicación generará el error correspondiente (ver códigos de error) informando la cuenta para que la aplicación indique el plan que se desea utilizar mediante el mensaje "AdditionalData".

Nota1: Si este mensaje contiene el campo InputMode (#10), este mensaje deberá estar constituido según documento: "VTOLCR-DB-Manual Mensajería POS – VTOL MX", y se enviará de manera directa a VTOL. Para la cual se asume que la cuenta fue ingresada por otro medio y no se desea el ingreso por medio del pinpad.

Nota2: Mediante este mensaje es posible generar un "cashAdvance" (retiro de efectivo, sin realizar un pago, con solicitud de cuenta desde el pinpad). Se tratará como un "Sale" para poder obtener la información necesaria para generar el mensaje al autorizador, en caso de no desear la lectura de la cuenta por pinpad se podrá enviar el mensaje "cashAdvance" directamente (ver punto 7.8 CashAdvance).


7.2.1 Requerimiento Pos – EMV/KIT


#

Nombre

Req

Formato

Comentarios

0

company

O

A10

Identificación de compañía.

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

3

server

M

A4

Valor fijo: VD.

11

trxType

M

A22

Identifica el tipo de transacción, en este caso será siempre "Sale" o "Refund".

12

amount

M

N10

Monto de la transacción, los últimos 2 dígitos son decimales.
El monto podrá enviarse en "0" en caso de transacciones de CashAdvance (retiro de dinero sin pago).

14

payments

O

N2

Cantidad de cuotas/parcialidades (meses). 2 dígitos como máximo. En el caso de no enviarse este dato (campo 14 y 15), se generará una respuesta de código 12 (ver tabla capítulo 6) que contendrá el número de Tarjeta. De este modo, la aplicación de punto de venta podrá evaluar el número de tarjeta y determinar si aplica parcializar. Enviar el dato de pagos como AdditionalData (ver 5.3)

15

plan

O

A

Plan. 1 carácter de longitud. En el caso de no enviarse este dato (campo 14 y 15), se generará una respuesta de código 12 (ver tabla capítulo 6) que contendrá el número de Tarjeta. De este modo, la aplicación de punto de venta podrá evaluar el número de tarjeta y determinar si aplica parcializar. Enviar el dato de plan como AdditionalData (ver 5.3)

16

originalDate

C

yyyyMMdd

Este campo es mandatorio únicamente en devoluciones, es la fecha original del pago que estamos devolviendo.
VTOL analiza si la operación fue del día en curso, hace Cancelación a través de reverso en línea. De ser de un día anterior, se informa vía Batch el movimiento como Devolución

17

originalTrxTicketNr

C

N

Este campo es mandatorio únicamente en devoluciones, es el número de ticket del pago original que se está devolviendo.

22

authorizationCode

O

A6

Código de autorización telefónica. Este campo se encuentra presente únicamente si la transacción se autorizó offline por teléfono.

23

authorizationMode

O

A

Modo de Autorización:
• Online = La autorización debe ser realizada por el Centro Autorizador.
• Offhost = La autorización fue realizada internamente por VTOL.
• Offline = La autorización fue realizada localmente por el POS.
Es obligatorio el envío del campo 22 para estos casos.

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.

65

additionalAmount

O

N10

Se indica el monto a aplicar a cashBack o cashAdvance, valores posibles:
"0" = indica que no se desea retirar.
"YYYY" = Donde YYYY es el monto a retirar en cashback o cashAdvance.

71

checkPendingString

O

A

Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):
True = activa chequeo de pendientes.
False = desactiva chequeo de pendientes.

80

taxAmount

O

N

Únicamente para Visanet/Paradox:
Cálculo de impuestos relacionado al pago que se está realizando.

125

posAuthenticationMethod

O

A

Solo para Banamex:
En los casos donde se autorice mediante QPS (Sin firma) este campo debe ser enviado con valor "5"
5 = Transacción QPS (Quick Payment Service), pagaré sin firma.

220

paymentMobile

O

A

Únicamente para Banorte: Indica si nos encontramos en un pago mobile o no, lo cual habilita el ingreso manual o normal (chio/banda).

  • True: Modo mobile habilitado, solo ingreso manual.
  • False: Modo mobile deshabilitado, ingreso por chip o banda (valor por default si es inexistente).


7.2.2 Respuesta EMV/KIT – Pos

Esta respuesta contiene todos los campos del documento "POS-VTOL" para "Sale" o "Refund", donde se adicionan los siguientes campos por EMV/KIT.


#

Nombre

Req

Formato

Comentarios

6

cardNumber

M

N16

Número de tarjeta. Este valor es informado a la terminal pero no debe ser grabado en ningún lado para mantener las normas PCI, en caso de ser necesario el dato deberá enmascararse.

El campo también se encuentra presente cuando se genera una solicitud de "additionalData".

10

posInputMode

M

A

Es el modo de ingreso de la tarjeta:
Chip = Tarjeta insertada PIN Pad
MSR Chip = Tarjeta deslizada PIN Pad
MSR ChipNR = Ingreso Manual PIN Pad
MSR ChipError = Fallback PIN Pad
Contactless = Tarjeta aproximada x Contactless
MSR Contactless = Tarjeta aproximada x Contactless (solo Amex)

58

loyaltyData

O

A

Únicamente para Bancomer:
Se obtiene la respuesta del campo 58 puntos Bancomer otorgada por el autorizador. El formato de esta respuesta se encuentra especificada en la documentación de Bancomer.

66

track1

M

A

Track1 de la tarjeta, es utilizado para obtener el "cardHolderName". Este campo no existe cuando el pago fue realizado en modo manual.

125

posAuthenticationMethod

O

A

Únicamente para Banamex y Bancomer:
Indica cómo fue identificado el tarjeta habiente, los valores cambian dependiendo el autorizador:

Para Banamex:
0 = Desconocido (default)
1 = Firma
2 = PIN
3 = Terminal no atendida
4 = Orden correo telefónico
5 = Transacción QPS (Quick Payment Service), pagaré sin firma.

Para Bancomer:
0 = Desconocido (default)
9= Transacción QPS (Quick Payment Service), pagaré sin firma.

Estos valores reflejan lo indicado por el AUTORIZADOR, de este valor debe depender la impresión del Voucher.

161

cardType

O

A

Tipo de tarjeta, opcional si VTOL lo responde:

  • Credito = Tarjeta tipo Crédito.
  • Debito = Tarjeta tipo Débito.
  • Sin Clasificar = Tipo de tarjeta no identificado por VTOL.

190

comission

O

N12

Campo Presente en caso de ser solicitada la configuración mediante el campo 218 en "cashAdvance", deberá enviarse luego un "additionalData".
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

201

additionalResponseCode

M

N2

Código de respuesta generado por VTOL, actualmente VTOL lo reporta en el campo 27.

202

resetKeysOptional

O

A

Este campo indicará si el centro autorizador ha solicitado la carga de llaves opcionales. Valores:

  • "true" carga "opcional" solicitada. Se deberá enviar mensaje "resetKeys" de acuerdo a la estrategia informada en la especificación del pinpad.
  • "false" o inexistente si la carga no fue solicitada.

204

cardHolderName

O

A

Se reporta en el nombre del tarjeta habiente en caso de que exista.

205

aid

O

A

Card Application Identifier:
Se reporta en el valor del AID en caso de existir el token B3.

206

electronicSign

O

A

El valor "true" para este campo indica que se firmó electrónicamente el pago.

207

withoutSign

O

A

Para Bancomer:
El valor "true" para este campo indica que se leyó del pinpad que no se requiere firma del tarjeta habiente
Para Banamex:
El valor "true" indica que el POS solicitó la autorización mediante QPS.
NOTA: Tener en cuenta la respuesta el campo 125, que es la respuesta del AUTORIZADOR.

209

acceptLoyaltyPoints

O

A

Uso solo para Bancomer.
El campo se encuentra presente si EMV/KIT se encuentra configurado para obtener configuración del "rsvtol.ini".
Si el valor se encuentra en "true", indicará que el prefijo de la tarjeta tiene habilitada la opción de pagos con puntos.

210

providerName

O

A

El campo se encuentra presente si EMV/KIT se encuentra configurado para obtener configuración del "rsvtol.ini".
En este campo se informa el nombre del banco configurado de la tarjeta.

211

debit

O

A

El campo se encuentra presente si EMV/KIT se encuentra configurado para obtener configuración del "rsvtol.ini".
Si el valor se encuentra en "true", indicará que la tarjeta se encuentra configurada como débito.

212

paymentPlanList

O

A

El campo se encuentra presente si EMV/KIT se encuentra configurado para obtener configuración del "rsvtol.ini".
Este campo contiene una lista de todos los planes y cuotas actualmente habilitados para la tarjeta ingresada.
Se utiliza el carácter "&" para separar planes de pagos y el carácter "|” para separar los atributos plan y cuotas.

Ejemplo del campo con 1 solo plan de pago: “0|1” donde 0 es el plan y 1 la cantidad de cuotas.

Ejemplo del campo con 2 planes de pagos: “0|1&1|12”, el primer plan de pago es plan 0 y cuotas 1; el segundo plan de pagos es plan 1 y cuotas 12.

213

cashBackAllowed

O

A

El campo se encuentra presente si EMV/KIT se encuentra configurado para obtener configuración del "rsvtol.ini".
Si el valor se encuentra en "true", indicará que la tarjeta permite transacción de CashBack.

214

applicationLabel

O

A(16)

Campo a ser impreso en el pagaré del tarjeta habiente. Se toma de la información obtenida del pinpad y podrá contener todos blancos.

215

preferredName

O

A(16)

Campo a ser impreso en el pagaré del tarjeta habiente. Se toma de la información obtenida del pinpad y podrá contener todos blancos.

216

criptograma

O

A(16)

Se infoma el criptograma a imprimir en el comprobante.

217

digitalSign

O

A (Hexadecimal)

Únicamente para Visanet/Paradox:
Se devuelve como un ascii en hexadecimal la firma digital obtenida del pinpad.

221

TVR

O

A

Únicamente para Banorte:

Terminal Verification Results (Tag 95).
Devuelto únicamente en transacciones con CHIP para imprimir en el ticket.

222

TSI

O

A

Únicamente para Banorte:

Transactions Status Informations (Tag 9B).
Devuelto únicamente en transacciones con CHIP para imprimir en el ticket

223

expiryDate



Únicamente para Banorte:
Fecha de expiración de la tarjeta informada por el pinpad

224

Form Factor Ind

O

A

Únicamente para Banamex
Valor para imprimir en el ticket para transacciones contactLess de Banamex.


7.2.3 Campos adicionales de configuración de la tarjeta

Los campos 209, 110, 211 y 212 estarán presente teniendo en cuenta los siguientes comentarios:

  1. Debe tener habilitada la funcionalidad de RSVTOL.INI: "vtol.rsvtol.enabled=true"
  2. Se informarán estos campos en el caso de respuestas donde se solicita envío de additionalData. Los códigos de respuesta más comunes a tener en cuenta serán:
    1. Código 12: Falta informar los planes y cuotas del pago. (Cuando no se han enviado los campos 14 y 15 en el request de Sale)
    2. Código 15: Cuando la tarjeta se encuentra dentro del programa de puntos Bancomer y se necesita confirmar si el pago será o no con los puntos del cliente.

Ver punto "8 – Códigos de errores".

     3. También se informaran estos campos al finalizar con una respuesta de "00 Aprobada" al "Sale".


7.3 PTService

Para el caso de conexión PagaTodo, la aplicación identifica el Bin de la tarjeta como tarjeta PagaTodo según la configuración del archivo RSVTOL.ini, y convierte el mensaje "Sale" en un "PTService". De este modo el POS no necesita saber si es un tipo de tarjeta compatible con el servicio, y se hacen las adaptaciones necesarias en el mensaje para que VTOL lo interprete como tal.


7.3.1 Requerimiento Pos – EMV/KIT


#

Nombre

Req

Formato

Comentarios

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

3

server

M

A4

Valor fijo: VD.

11

trxType

M

A22

Identifica el tipo de transacción, en este caso será siempre "Sale".

12

amount

M

N10

Monto de la transacción, los últimos 2 dígitos son decimales.
El monto podrá enviarse en "0" en caso de transacciones de CashAdvance (retiro de dinero sin pago).

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.


7.3.2 Respuesta EMV/KIT – Pos


#

Nombre

Req

Formato

Comentarios

1

store

AN

V10

Identificador del sitio originador de la transacción

2

node

N

V10

Identificación del nodo, en el sitio originador, donde se generó la transacción

22

authorizationCode

ANS

V10

Código de autorización generado por el centro autorizador para la transacción.

23

authorizationMode

A

V7

Modo de Autorización:
Online = La autorización fue realizada por el Centro Autorizador.
Offhost = La autorización fue realizada internamente por VTOL.
Offline = La autorización fue realizada localmente por el POS.

24

lastTrxId

N

V15

Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente.

25

dateTime

N

F14

Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS.

26

responseCode

AN

V15

Puede contener uno de los siguientes valores:
Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
Error = ver sección Código de errores del CORE
TrxIsPending: indica si existen transacciones pendientes de confirmar. En este caso, el ID de transacción a confirmar está en el campo 24.

27

isoCode

N

V3

Código de Respuesta generado por EMVKit.

28

responseMessage

ANS

V999

Mensaje de la Respuesta ISO-8583

29

serialNumber

N

V20

Número identificatorio de la terminal en la que se procesó la transacción.

32

ticket

N

V4

Número de Ticket correspondiente a la transacción.

35

errorDescription

ANS

V999

Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error".

68

rrn

N

V20

Reference referral number.

134

ticketMessage

ANS

V999

Datos del ticket para impresión.

201

instructions

ANS

V999

Mensaje de instrucciones

202

productDescription

ANS

V999

Descripción del producto

203

sellerMessage

ANS

V999

Mensaje hacia el vendedor

1201

additionalResponseCode

M

N2

Código de respuesta generado por VTOL, actualmente VTOL lo reporta en el campo 27.


7.4 PTPromotionQuery

Para el caso de conexión PagaTodo para consulta de promociones de tarjeta de Bienestar Capital social, la aplicación obtiene el Bin de la tarjeta para este tipo de solicitud según la configuración del archivo RSVTOL.ini, y genera la consulta a VTOL.


7.4.1 Requerimiento Pos – EMV/KIT


#

Nombre

Req

Formato

Comentarios

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

3

server

M

A4

Valor fijo: VD.

11

trxType

M

A22

Identifica el tipo de transacción, en este caso será siempre "PTPromotionQuery".

12

amount

M

N10

Monto de la transacción, los últimos 2 dígitos son decimales.
El monto podrá enviarse en "0" en caso de transacciones de CashAdvance (retiro de dinero sin pago).

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.


7.4.2 Respuesta EMV/KIT – Pos


#

Nombre

Req

Formato

Comentarios

1

store

AN

V10

Identificador del sitio originador de la transacción

2

node

N

V10

Identificación del nodo, en el sitio originador, donde se generó la transacción

22

authorizationCode

ANS

V10

Código de autorización generado por el centro autorizador para la transacción.

23

authorizationMode

A

V7

Modo de Autorización:
Online = La autorización fue realizada por el Centro Autorizador.
Offhost = La autorización fue realizada internamente por VTOL.
Offline = La autorización fue realizada localmente por el POS.

24

lastTrxId

N

V15

Id de transacción. En caso que el Campo 26 sea TrxIsPending, contendrá el trxId de la transacción pendiente.

25

dateTime

N

F14

Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS.

26

responseCode

AN

V15

Puede contener uno de los siguientes valores:
Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
Error = ver sección Código de errores del CORE
TrxIsPending: indica si existen transacciones pendientes de confirmar. En este caso, el ID de transacción a confirmar está en el campo 24.

27

isoCode

N

V3

Código de Respuesta generado por EMVKit.

28

responseMessage

ANS

V999

Mensaje de la Respuesta ISO-8583

29

serialNumber

N

V20

Número identificatorio de la terminal en la que se procesó la transacción.

32

ticket

N

V4

Número de Ticket correspondiente a la transacción.

35

errorDescription

ANS

V999

Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error".

68

rrn

N

V20

Reference referral number.

134

ticketMessage

ANS

V999

Datos del ticket para impresión.

200

serviceInfo

ANS

V999

Información adicional asociada al servicio
Ver Anexo A del documento "VTOL-Manual_mensajeria_POS-VTOL_PagaTodo.docx"

201

instructions

ANS

V999

Mensaje de instrucciones

202

productDescription

ANS

V999

Descripción del producto

203

sellerMessage

ANS

V999

Mensaje hacia el vendedor

1201

additionalResponseCode

M

N2

Código de respuesta generado por VTOL, actualmente VTOL lo reporta en el campo 27.


7.5 AdditionalData

Luego de haber enviado un "Sale" o "Refund" es posible que EMV/KIT indique que faltan datos para continuar con el pago. En estos casos la respuesta generará un mensaje de error indicando cual es el caso, las opciones son:

  1. No se ha informado el plan y cuotas a utilizar para el pago, EMV/KIT en su respuesta envía el número de cuenta/tarjeta, para que el POS pueda procesar los planes disponibles y reportarlos a EMV/KIT. Para este caso en el "AdditionalData" se debe enviar los campos "payments" y "plan".
  2. La autorización con VTOL fue rechazada solicitando autorización telefónica, es necesario obtener la autorización de manera telefónica y enviar a EMV/KIT. Para este caso en el "AdditionalData" se debe enviar el campo "authorizationCode".
  3. Pueden existir casos donde durante la autorización, VTOL reporte "trxIsPending", como los ID de VTOL no son persistentes en EMV/KIT, será necesario que el POS envíe este mensaje cargando los campos "19" y "24".
  4. Existe un caso donde se ha solicitado "AdditionalData", pero el Pos desea cancelar el pago, existe una marca en este mensaje para indicar que se desea cancelar el pago, así EMV/KIT realiza las sincronización correspondiente con el pinpad. En este caso este mensaje no generará respuesta al POS (similar al "UnSyncCompletion").
  5. En caso de implementación Bancomer, existen cuentas las cuales pueden ser pagadas con puntos Bancomer, en los casos donde se genere un código de respuesta 15 a un mensaje "Sale", se deberá solicitar si se desea o no pagar con puntos Bancomer. Para este caso en el "AdditionalData" se debe enviar con el campo "pointsPayment" en "true" o "false" según la elección del cliente.
  6. En caso de implementación Bancomer, existen cuentas las cuales permiten el retiro de efectivo CashBack, en los casos donde se genere un código de respuesta 16 a un mensaje "Sale" se deberá solicitar si se desea o no pagar con cashBack y se deberá obtener el monto a aplicar. Este monto será enviado en el campo "additionalAmount" del additionalData.

Nota: tener en cuenta que si en un mismo pago se deben enviar varios "additionalData", cada mensaje se debe enviar con los mismos campos enviados anteriormente. Por ejemplo, si se solicita ingreso de plan/cuotas y luego el ingreso de un código de autorización telefónica, el último mensaje (autorización telefónica) deberá contener los datos del mensaje anterior (plan/cuotas).


7.5.1 Requerimiento Pos - EMV/KIT


#

Nombre

Req

Formato

Comentarios

0

company

O

A10

Identificación de compañía.

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

3

server

M

A4

Valor fijo: VD.

11

trxType

M

A22

Identifica el tipo de transacción, en este caso será siempre "AdditionalData".

14

payments

C

N2

Cantidad de cuotas/parcialidades (meses). 2 dígitos como máximo.

15

plan

C

A

Plan. 1 carácter de longitud.

19

lastTrxAction

C

A

Acción a realizar sobre la Transacción:
• Commit = Confirma la transacción
• Rollback = Reversa la transacción
Solo se debe enviar en caso de haber recibido un error de TrxIsPending mediante el código de error "14". El tercer mensaje embebido debe encontrarse solo en "Sale" o "Refund".

22

authorizationCode

C

A6

Código de autorización telefónica. Este campo se encuentra presente únicamente si la transacción se autorizó offline por teléfono.

23

authorizationMode

O

A

Modo de Autorización:
• Online = La autorización debe ser realizada por el Centro Autorizador.
• Offhost = La autorización fue realizada internamente por VTOL.
• Offline = La autorización fue realizada localmente por el POS.
Es obligatorio el envío del campo 22 para estos casos.

24

lastTrxId

C

N10

Id de transacción a confirmar / reversar.
Solo se debe enviar en caso de haber recibido un error de TrxIsPending mediante el código de error "14". El tercer mensaje embebido debe encontrarse solo en "Sale" o "Refund".

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS. Debe ser exactamente el mismo valor enviado en el "Sale" o "Refund".

65

additionalAmount

O

N10

Se indica el monto a aplicar a cashBack, valores posibles:
"0" = indica que no se desea retirar cashBack
"YYYY" = Donde YYYY es el monto a retirar en cashback

125

posAuthenticationMethod

O

A


Su uso y valores se encuentran especificado en el "request" de un mensaje "Sale".

203

cancelPayment

O

A

Se indica si el pago actual debe ser cancelado. Sus valores son:

  • "true" para indicar que se desea la anulación del pago actual.
  • "false" o inexistente, indica que no se está cancelando el pago, por lo tanto se procesarán los demás parámetros plan / payments / authorizationCode / idTrx y se continúe con el pago.
    Cuando este campo se encuentre en "true" este comando no generará respuesta alguna.

208

pointsPayment

O

A

Únicamente para Bancomer:
Se indica si el pago actual se desea pagar o no con puntos. Sus valores:
"true" = Se desea pagar con puntos
"false" = No se desea pagar con puntos

218

configurationRequest

O

A

En el mensaje "additionalData" este campo se envía en "false" cuando el código de respuesta fue "03", ver mensaje "cashAdvance" para más información de su uso.


7.5.2 Respuesta EMV/KIT - Pos


#

Nombre

Req

Formato

Comentarios

0

company

O

A10

Identificación de compañía.

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.

26

responseCode

M

AN7

Puede contener uno de los siguientes valores:
Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
Error = si existe alguna falla en la estructura del mensaje de requerimiento que hace que EMV/KIT no lo pueda interpretar.

27

isoCode

M

N2

Código de respuesta generado. 2 caracteres máximo. Ver códigos de respuesta.

28

responseMessage

M

A100

Descripción del código de Respuesta.

201

additionalResponseCode

M

N2

Código de respuesta generado por VTOL, actualmente VTOL lo reporta en el campo 27.


7.6 ResetKeys

Este mensaje es utilizado para indicarle a EMV/KIT que es momento de realizar la carga de llaves "opcional" solicitada por el centro autorizador en la autorización de un pago anteriormente realizado.


7.6.1 Requerimiento Pos – EMV/KIT


#

Nombre

Req

Formato

Comentarios

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

3

server

M

A4

Valor fijo: VD.

11

trxType

M

A22

Identifica el tipo de transacción, en este caso será siempre "resetKeys".

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.


7.6.2 Respuesta EMV/KIT – Pos


#

Nombre

Req

Formato

Comentarios

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.

26

responseCode

M

AN7

Puede contener uno de los siguientes valores:
Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
Error = si existe alguna falla en la estructura del mensaje de requerimiento que hace que EMV/KIT no lo pueda interpretar.

27

isoCode

M

N2

Código de respuesta generado. 2 caracteres máximo. Ver códigos de respuesta.

28

responseMessage

M

A100

Descripción del código de Respuesta.

201

additionalResponseCode

M

N2

Código de respuesta generado por VTOL, actualmente VTOL lo reporta en el campo 27.


7.7 Mensajes directos a VTOL (no procesa EMVKit)

En todos los mensajes de requerimiento existe el parámetro #3 (Server), el cual se envía con el valor "VD", esto indica que se desea que sea procesado por EMVKit. En caso de que este atributo sea "VTOL", este no será tenido en cuenta por EMVKit y será enviado directamente a Vtol para su procesamiento.

Nota: Tener en cuenta que este mensaje debe estar alineado con la especificación propia de VTOL.


3

server

M

A4

Valor fijo: VTOL


Este tipo de mensaje puede ser usado para envío de:

  1. voidSale
  2. voidRefund
  3. PTPromotionQuery


Los cuales no son procesados por EMVKit.


7.8 CashAdvance

La funcionalidad de CashAdvance es utilizada para realizar un retiro de efectivo, directamente desde el punto de venta, sin estar realizando un pago en ese momento.

Nota: Dependerá del centro autorizador si esta funcionalidad se encontrase o no habilitada.

Existen dos maneras para realizar este tipo de operaciones y depende directamente de quien es el responsable de realizar la lectura de la cuenta:


  1. La lectura de la cuenta es responsabilidad del punto de venta y por lo tanto se envía mensaje desde el mismo hacia EMVKit un mensaje de tipo "CashAdvance" de acuerdo a la mensajería de la documentación "VTOLCR-DB-Manual mensajeria POS - VTOL MX".
  2. La lectura de la cuenta es responsabilidad de EMVKit, la cual se realizará por medio del pinpad. En estos casos se envía un mensaje a EMVKit de tipo "Sale" con el campo 12 "amount" con valor "0" y el monto del retiro se envía en el campo 65 "additionalAmount" con el valor del retiro. Para mayor información se debe revisar punto "7.2 Sale y Refund" en este documento.


La diferencia más importante entre estos dos tipos de mensajería, es que lo errores informados durante la operación podrían traducirse en mensajes "additionalData" de solicitud de información adicional (revisar punto "8 Códigos de errores").


7.8.1 Requerimiento Pos – EMV/KIT

Dependiendo de las dos opciones mencionadas anteriormente, se deberá revisar la documentación relacionada para el armado de la mensajería. En ambos casos, se ha agregado funcionalidad adicional que se detalla a continuación y puede ser usada en cualquier tipo de comunicación.


#

Nombre

Req

Formato

Comentarios

3

server

M

A4

Valor fijo: VD.

218

configurationRequest

O

A

Este campo es de tipo "boolean", por lo tanto acepta valores de tipo "true" o "false", la inexistencia de este campo se asume valor "false".
El objetivo de este campo es informar que se desea conocer la configuración de la cuenta y por lo tanto no se enviará mensaje a VTOL. Esto es utilizado para conocer la comisión a cobrar antes de realizar el cobro al cliente.
En caso de encontrarse en "true", revisar el código de respuesta "03".


7.8.2 Respuesta EMV/KIT – Pos

Dependiendo de las dos opciones mencionadas anteriormente, la respuesta deberá ser obtenida de la documentación pertinente.

#

Nombre

Req

Formato

Comentarios

190

comission

O

N12

Campo Presente en caso de ser solicitada la configuración mediante el campo 218.
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


7.9 CardPayment

Este mensaje es utilizado para corresponsalías, el mensaje se debe armar exactamente de la misma manera que se encuentra especificado en la documentación "Tech- Ref POS-VTOL Corresponsalías Bancomer".

Nota: Dependerá del centro autorizador si esta funcionalidad se encontrase o no habilitada.


7.9.1 Requerimiento Pos – EMV/KIT

Se deberá revisar la documentación relacionada para el armado de la mensajería.

Se ha agregado funcionalidad adicional que se detalla a continuación para este tipo de mensaje.


#

Nombre

Req

Formato

Comentarios

3

server

M

A4

Valor fijo: VD.

218

configurationRequest

O

A

Este campo es de tipo "boolean", por lo tanto acepta valores de tipo "true" o "false", la inexistencia de este campo se asume valor "false".
El objetivo de este campo es informar que se desea conocer la configuración de la cuenta y por lo tanto no se enviará mensaje a VTOL. Esto es utilizado para conocer la comisión a cobrar antes de realizar el cobro al cliente.
En caso de encontrarse en "true", revisar el código de respuesta "03".


7.9.2 Respuesta EMV/KIT – Pos

La respuesta deberá ser obtenida de la documentación pertinente.


#

Nombre

Req

Formato

Comentarios

190

comission

O

N12

Campo Presente en caso de ser solicitada la configuración mediante el campo 218.
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


7.10 QueryPan/QueryBin

Comando utilizado para lectura de una tarjeta mediante el pinpad, una vez leída se retorna el número y se cierra la comunicación.

La diferencia entre ambos comandos está dada por el campo 6 de la respuesta "cardNumber":


  • QueryPan: El campo "cardNumber" retornado será enmascarado de acuerdo al atributo de configuración "vtolDirect.mask.account.type".
  • QueryBin: El campo "cardNumber" retornado será el bin de la tarjeta, el cual serán los caracteres iniciales de la cuenta definidos de acuerdo al atributo de configuración "vtolDirect.queryBin.account.length".


Ver documento "F13 Documento de configuración - EMVKit v{version}.docx" para más información.


7.10.1 Requerimiento Pos – EMV/KIT


#

Nombre

Req

Formato

Comentarios

0

company

O

A10

Identificación de compañía.

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

3

server

M

A4

Valor fijo: VD.

11

trxType

M

A22

Identifica el tipo de transacción, en este caso será siempre "queryPan" o "queryBin".

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.


7.10.2 Respuesta EMV/KIT – Pos


#

Nombre

Req

Formato

Comentarios

0

company

O

A10

Identificación de compañía.

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

6

cardNumber

M

N16

Número de tarjeta obtenido, enmascarado o no o solo el bin, dependiendo del "trxType".

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.

27

isoCode

M

N2

Código de respuesta generado. 2 caracteres máximo. Ver códigos de respuesta.

28

responseMessage

M

A100

Descripción del código de Respuesta.


7.11 LoadExceptionBins (Únicamente para Banorte)

Comando utilizado para lectura de una tarjeta mediante el pinpad, una vez leída se retorna el número y se cierra la comunicación.


7.11.1 Requerimiento Pos – EMV/KIT


#

Nombre

Req

Formato

Comentarios

0

company

O

A10

Identificación de compañía.

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

3

server

M

A4

Valor fijo: VD.

11

trxType

M

A22

Identifica el tipo de transacción, en este caso será siempre "loadExceptionBins".

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.


7.11.2 Respuesta EMV/KIT – Pos


#

Nombre

Req

Formato

Comentarios

0

company

O

A10

Identificación de compañía.

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.

27

isoCode

M

N2

Código de respuesta generado. 2 caracteres máximo. Ver códigos de respuesta.

28

responseMessage

M

A100

Descripción del código de Respuesta.


7.12 PointsLookup

Comando utilizado para consulta de puntos con el autorizador, actualmente para puntos Bancomer. Se realiza una lectura de una tarjeta mediante el pinpad, una vez leída se realiza la consulta correspondiente con VTOL y se devuelve el resultado.

Esta operación no genera id de transacción y por lo tanto no requiere tercer mensaje (commit/rollback)


7.12.1 Requerimiento Pos – EMV/KIT


#

Nombre

Req

Formato

Comentarios

0

company

O

A10

Identificación de compañía.

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

3

server

M

A4

Valor fijo: VD.

11

trxType

M

A22

Identifica el tipo de transacción, en este caso será siempre "PointsLookup".

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.


7.12.2 Respuesta EMV/KIT – Pos

La respuesta contiene todos los campos respondidos por VTOL.


#

Nombre

Req

Formato

Comentarios

0

company

O

A10

Identificación de compañía.

1

store

M

N10

Identificación de local.

2

node

M

N10

Identificación de caja.

6

cardNumber

M

N16

Número de tarjeta obtenido.

25

dateTime

M

yyyyMMddHHmmss

Fecha y hora de la transacción, de POS.

27

isoCode

M

N2

Código de respuesta generado. 2 caracteres máximo. Ver códigos de respuesta.

28

responseMessage

M

A100

Descripción del código de Respuesta.

58

loyaltyData

O

A

Únicamente para Bancomer:
Se obtiene la respuesta del campo 58 puntos Bancomer otorgada por el autorizador. El formato de esta respuesta se encuentra especificada en la documentación de Bancomer.



8. Códigos de errores

A continuación enumeramos los códigos de error que son necesarios interpretar o conocer para el POS, los códigos enumerados a continuación hacen referencia al campo 27 "responseCode" en EMVKit.

Existen varias acciones diferentes a realizar con cada respuesta de EMVKit, a continuación las explicamos:


  1. Campo 27 "responseCode" con valor "00" (Aprobada), la operación se ha efectuado satisfactoriamente.
  2. Campo 27 "responseCode" con valor "03": Información de la cuenta obtenida para "cashAdvance" la acción a ejecutar depende del escenario.
  3. Campo 27 "responseCode" con valor "11" (Error en VTOL), la operación no se ha realizado, se puede revisar el campo 201 "additionalResponseCode" para revisar exactamente el error generado por VTOL y validarlo con el documento de VTOL "VTOLCR-DB-Manual mensajeria POS - VTOL" en el apartado de "códigos de respuesta".
  4. Campo 27 "responseCode" con valores "12", "13", "14", "15" y "16": Pago en curso y se necesita información adicional para continuar o cancelar el pago.
  5. Otros valores en campo 27 (02, 31, 99): La operación no se ha efectuado por un error, por lo cual el pago ha sido anulado y se debe volver a comenzar. El campo 201 "additionalResponseCode" contiene el código interno de EMVKit para este error. Ej.: {28:Transacción en curso;27:99;26:11;201:10032;25:20161130170344;2:5;1:17}


Código

Descripción

Acción

00

La petición fue procesada correctamente.

Se ha realizado el pago correctamente, una vez terminada la transacción es necesario el envío del comando UnSyncCompletion e impresión de voucher con la información proporcionada en esta respuesta.

01

Mensaje de aviso.
Este mensaje se encontrará deshabilitado en una primer etapa ya que actualmente la librería de comunicación no contempla múltiples respuestas.

De este mensaje se puede obtener el código de mensaje y descripción actual del estado de VtolStore. Muy útil en los casos que se desee indicar mensajes como "inserte tarjeta", "autorizando", "confirmando transacción", etc. El código descriptivo puede tomarse del campo 201.

02

Error en el mensaje

Revisar la documentación ya que el mensaje se encuentra incorrectamente armado.

03

Cuando el campo "218" se encuentre presente en "true" y la configuración de la cuenta se haya podido obtener.

En caso de mensaje "Sale" para funcionalidad "cashAdvance" (cuenta leída desde el pinpad) se deberá manejar como mensaje "additionalData".
En caso de mensajes "CashAdvance" o "cardPayment", se deberá volver a enviar el mensaje original completo (no se debe enviar additionalData para estos mensajes).
En ambos casos se debe reportar 218 en "false" para autorizar.

11

Se ejecuta "Sale" o "Refund" y VTOL ha generado un error.

Obtener del campo 201 el "código de repuesta" de VTOL, revisar documento "VTOLCR-DB-Manual mensajeria POS - VTOL".

12

Se ejecuta "Sale" o "Refund" y es necesario enviar plan/cuotas.

Ejecutar "AdditionalData", con valores plan/cuotas.

13

Se ejecuta "Sale" o "Refund" y es necesario autorizar telefónicamente la transacción.

Ejecutar "AdditionalData", con valor authorizationCode.

14

Se ejecuta "Sale" o "Refund" y Vtol indica TrxIsPending sobre el ID informado en el campo 24.

Ejecutar "AdditionalData", con valores lastTrxId y lastTrxAction.

15

Se ejecuta "Sale" o "Refund" y se identifica que el bin ingresado necesita conocer si se desea pagar o no con puntos Bancomer.

Ejecutar "AdditionalData", con el valor "pointsPayment".

16

Se ejecuta "Sale" o "Refund" y se identifica que el bin ingresado necesita conocer si se desea retirar cashBack.

Ejecutar "AdditionalData", con el valor "additionalAmount".

31

Cuando el campo "218" se encuentre presente en "true" y la configuración de la cuenta no haya podido obtenerse.

Mensaje de error.

99

Error genérico

Revisar mensaje de error campo 28 y 201.


  • Sem rótulos