VTOL EMVKIT AR 1.2.X





REVISIONES


Fecha

Revisión

Cambios – Motivo

06/01/2014

1.0

Creación del documento

17/08/2015

1.1

Definición de librería como servicio. Explicación de integración

23/10/2015

1.2

Agregado de Operación Procesar Mensaje Crédito Débito. Incorporación de identificador único de transacción en VTOL Server, campo: 166-trxReferenceNumber

09/11/2015

1.3

Agregado de campo 1102–Proveedor seleccionado en mensaje Procesar Operación con Tarjeta

13/05/2016

1.4

Agregado de campo 137–ConfVersion en GetConfiguration, 10–inputMode en Sale/VoidSale/Etc y 1010–currentSessionId en el mensaje Crear sesión

16/05/2016

1.5

Revisión del documento

06/06/2016

1.6

Agregado del valor FORCED_CLOSE en el campo 1008–closeSessionAction del mensaje Cerrar Sesión

14/07/2016

1.7

Agregados los tipos de transacciones ServicePayment y VoidServicePayment

18/08/2016

1.8

Agregado del anexo "Mecanismo de Autorización Telefónica"

15/09/2016

1.9

Agregado de campo 57 - Tipo de Cuenta en la respuesta al POS para el procesamiento de operación con tarjeta.

19/09/2016

1.10

Se modifica la condición del campo 1113 – cardIsDebit.

21/09/2016

1.11

Posibilidad de recibir desde el POS, el valor que indica la capacidad de captura de la terminal.

23/09/2016

1.12

Agregado del tipo de operación "Cancelar Lectura de Tarjeta"

06/10/2016

1.13

Se incorpora definición de timeout de EMVKIT.

Se eliminan los campos: Store y Node de los mensajes: Leer Datos de la Tarjeta - Cancelar Lectura de Tarjeta - Procesar Operación con Tarjeta - Procesar Mensaje Crédito Debito - Obtener Configuración de POS - Cerrar Sesión

05/04/2017

1.14

Agregado de propiedad approveInSecondInstance en sección de Configuración de PINPAD

16/05/2017

1.15

Modificación del apartado Mecanismo de Autorización Telefónica

17/05/2017

1.16

Agregado del valor MSR Chip en campo inputMode

30/05/2017

1.17

Agregado del apartado "Circuito Operativo de EMVKIT"

06/06/2017

1.18

Actualización de la tabla Prefijo en el apartado Formato Interface POS. Mayor detalle del campo MasterKey Position, incluyendo el valor 99.

07/07/2017

1.19

Agregado del campo promocional en Configuración de POS para indicar que se aplica una promoción sobre un plan de pago.

23/04/20181.20

Revisión general del documento.

Agregado de apartado Pagos Parciales.

11/05/20181.21
  • Versión EMV Kit v1.2.5.
  • se agregó el campo 59 - offlinePinCheck en respuesta de Procesar Operación con Tarjeta.



CONTENIDO



1. Introducción

1.1 Acerca de este documento

El presente documento explica la manera de integrarse a la Librería VTOL Full Argentina.


1.2 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 (inicialmente el modelo Verifone VX820)
  • el reconocimiento de tarjetas (crédito/débito y otras, como supervisor, tarjeta regalo, etc)
  • la comunicación e integración con Gateway de transacciones VTOL
  • detectar y resolver problemas de contingencia
  • etc


1.3 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.
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, construir los mensajes para comunicarse con EMVKIT.



Arquitectura y Comunicación de EMVKIT


En la imagen se observan ejemplos de tramas de requerimiento y de respuesta transmitidas por TCP IP entre la librería liviana y EMVKIT. Los tipos de operaciones son los siguientes y se explayan en el apartado 1.9 Tipos de Operación:

  • Creación de la sesión
  • Lectura de los datos de la tarjeta
  • Procesamiento de una operación con tarjeta
  • Procesamiento del mensaje Crédito Débito
  • Obtención de la configuración del POS
  • Cierre de la sesión


1.4 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 PINPAD VX820 VISA/POSNET vía RS232 o USB
  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. Proveer código de banco emisor cuando la tarjeta sea 'Mastercard'
  13. Soportar modo de ingreso CHIP, BANDA y MANUAL
  14. Suministrar la configuración de VTOL Server a la aplicación de punto de venta (prefijos, tarjetas, cuotas, intereses, etc)
  15. Manejar contingencia entre PINPAD, caja y VTOL
  16. Comunicación entre aplicativo punto de venta y VTOL Server
  17. Resolver las reglas de negocio propias de cada PINPAD (VISA/POSNET)
  18. Funcionalidad de venta con cashback
  19. Soporte de operaciones de venta como devoluciones, anulación de venta, anulación de devolución
  20. Gestionar la mensajería con VTOL Server


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

  1. La identificación del banco por medio de opciones en pantalla (siempre y cuando no sea una tarjeta Mastercard, que posee la identificación en el track, ya que será devuelto por la librería en el caso de que existan promociones bancarias)
  2. La validación de los últimos N dígitos de la tarjeta
  3. La confirmación del monto
  4. El cálculo de promociones, la validación de plan de pago, la determinación de cuotas y la aplicación de la selección de tarjeta en la instancia que la librería detecte más de una coincidencia (en algunos casos, debido a normas PCI, la determinación de la tarjeta se hace por contacto visual ya que se comparte el BIN)
  5. Impresión del voucher y duplicado


1.5 Requisitos

A continuación, se listan los requisitos mínimos que requiere EMVKIT para su correcto funcionamiento:


1.5.1 Plataformas Soportadas

  • Windows 32/64 bits
  • Linux 32/64 bits


1.5.2 Requerimientos de Hardware

  • Memoria RAM: 64MB disponibles
  • Procesador: 2 núcleos de 1.6GHZ o superior (sujeto a pruebas ya que hay dependencias de arquitecturas de hardware, por ejemplo, pudiera funcionar con 1 núcleo pero más potente)
  • Capacidad de almacenamiento en disco rígido: Al menos 150MB


1.5.3 Requerimientos de Software

  • Java Virtual Machine (JDK) 1.6.x/1.7.x/1.8.x (32/64 bits acorde con el sistema operativo)
  • Conexión a VTOL Server por red TCP/IP


2. Funcional

2.1 Explicación General

EMVKIT tiene la responsabilidad de abstraer a la aplicación de punto de venta de operaciones tales como el operar con el PINPAD, la comunicación y el procesamiento de transacciones con VTOL Server, el almacenamiento de información de transacciones, mantener la seguridad PCI, resolver contingencias, etc. 

Para ello la librería suministra una serie de acciones que permiten operar con la misma, a saber:

  • Inicio de sesión
  • Obtención de datos de tarjeta
  • Procesamiento de tarjeta
  • Cierre de sesión


En líneas generales, el orden de ejecución de cada llamada es similar al anteriormente mencionado.
Primero se inicia sesión, donde EMVKIT carga la configuración desde VTOL, sincroniza el estado de las transacciones, verifica el funcionamiento del PINPAD, etc. Posteriormente se entra en un ciclo de llamadas para obtener información de la tarjeta y luego procesarla (autorizarla). Esto se realiza tantas veces como tarjetas se utilicen para pagar la transacción. Finalmente se procede al cierre de sesión donde EMVKIT confirma las transacciones contra el servidor VTOL.
En el apartado 1.9 Tipos de Operación se explica en mayor detalle cada operación en particular y en el anexo 1.15 Circuito Operativo de EMVKIT se detalla el flujo de operación.


2.1.1 Procesamiento de Transacciones

A continuación se puede observar el modo de interacción genérico de la aplicación de venta con EMVKIT:

  1. Iniciar sesión.
  2. Obtener información de la tarjeta, sin importar el modo de ingreso.
  3. Con esta información la aplicación de punto de venta procede al cálculo de promociones, intereses, opciones de pago, etc., según corresponda.
  4. Finalizados estos cálculos, la aplicación de punto de venta solicita el procesamiento de la transacción. En este punto EMVKIT valida y solicita otros datos a través del PINPAD. Si todo marcha bien, procede a la autorización con VTOL Server y este a su vez contra los centros autorizadores.
  5. Cuando arriba la respuesta desde VTOL, la librería almacena la transacción y le responde a la aplicación de punto de venta para que continúe con su lógica de negocio.
  6. En caso de que se ingrese otro pago con tarjeta, se vuelve al paso 2 y así sucesivamente.
  7. Una vez que finaliza el cobro de la transacción, el punto de venta cierra la sesión contra EMVKIT, indicando si la misma finalizó con éxito o se debe cancelar. Para ambos casos, la librería se sincroniza con VTOL Server confirmando las transacciones cerradas o reversando las canceladas.


3. Instalación

EMVKIT está pensada para funcionar como una aplicación stand alone e, inicialmente, se entrega contenida en un archivo ZIP, como por ejemplo: vtol-pos-client-lib-ar-1.2.X.zip 

Al descomprimir el archivo se obtiene la siguiente estructura de directorios:



Carpeta

Descripción

CONFIG

Contiene los archivos de configuración requeridos para EMVKIT

LIB

Contiene todos los archivos JAR, propietarios y de terceros, requeridos para el funcionamiento de EMVKIT


Importante: En la carpeta raíz se encuentra el archivo start.cmd que permite ejecutar EMVKIT.


La librería también puede configurarse como un servicio del sistema haciendo uso del JAVA SERVICE WRAPPER.


4. Configuración

EMVKIT cuenta con los siguientes archivos de configuración:


4.1 Opciones de configuración JAVA

Para que EMVKIT funcione correctamente se deben configurar los siguientes parámetros (el archivo start.cmd ya trae una configuración por defecto):


Parámetros

Descripción

-DLIB_BIND_ADDRESS

Dirección IP en la cual la librería recibirá y enviará los mensajes al punto de venta. Si no se menciona esta propiedad, el bind por defecto es 127.0.0.1

-DBASE_CONF_DIR

Directorio absoluto de la configuración de la librería

-DLOG_DIR

Directorio absoluto de logeo de la aplicación. Esta variable es utilizada en el archivo de configuración de logeo (log4j.properties)
Existe la posibilidad de prescindir de ésta variable. Para ello se debe especificar el valor absoluto en el archivo de configuración de logeo


4.2 Archivos de configuración

EMVKIT cuenta con los siguientes archivos de configuración:


Archivo

Descripción

devices.properties

Uso interno de la librería. No se debe modificar

log4j.properties

Configuración de logeo de la librería

messages.properties

Configuración de los descriptores de respuesta y las leyendas del pinpad

operations.properties

Uso interno de la aplicación. No se debe modificar

serialPinPad.properties

Configuración del dispositivo PINPAD

VTOL_CRDB_CONF.cfg

Archivo creado y gestionado por la librería. Lo utiliza para persistir la configuración de VTOL

EXCEPTION_BIN.cfg

Archivo creado y gestionado por la librería. Se utiliza para persistir la configuración de los bines de excepción

business.properties

Archivo que contiene configuración relativa a reglas de negocio

vtolClient.properties

Contiene las propiedades de conexión con VTOL Server

session.obj

Archivo que registra información de estado y transaccional de la última sesión que el POS estableció con EMVKIT

workingKeys.properties

Registra las Working Key por tarjeta. La clave de cada WK es la posición de la llave maestra en la memoria del PINPAD


4.3 Configuración de logeo

EMVKIT logea según las directivas que se encuentran dentro del archivo de configuración de logeo log4j.properties

A continuación se describen las opciones de configuración más importantes:


Propiedad

Descripción

log4j.appender.file.File

Ruta y nombre del archivo de salida de logeo

log4j.appender.file.MaxFileSize

Tamaño máximo del archivo de logeo antes de hacer el "rolling" (cambio a otro archivo de logeo)

log4j.appender.file.MaxBackupIndex

Máxima cantidad de archivos de logs que se conservarán


4.4 Configuración de enlace con VTOL

EMVKIT se comunica con VTOL Server y las propiedades de enlace se encuentran en el archivo de configuración vtolClient.properties.


Propiedad

Descripción

HOSTIP

IP o nombre del servidor donde se encuentra ubicado VTOL Server

HOSTPORT

Puerto de comunicación con VTOL Server


Nota: El código de la tienda y el código de la caja en donde se origina la transacción se informa en la operación de creación de sesión.


4.5 Configuración de PINPAD

EMVKIT se conecta al PINPAD modelo Verifone VX820 con Firmware. 

Para lograr dicha conexión se debe configurar adecuadamente el puerto de comunicación COM donde está conectado el PINPAD.
La configuración relacionada con el PINPAD se encuentra en el archivo serialPinPad.properties. Entre las propiedades más importantes podemos encontrar:


Propiedad

Descripción

Valor por defecto

portName

Nombre del puerto

COM9

dataBits

Data bits length

8

stopBits

 

1

baudRate

Baud rate of serial port

19200

parity

Paridad

none

timeout

Default time to wait for response from PINPad. This time is expressed in milliseconds.

180000

pinEntryTimeout

Time in milliseconds to wait until card holder enters PIN. If card holder don't enter PIN during this milliseconds, then a packet 72 should be sent to PINPad to cancel PIN entry.

180000

bufferSize

Tamaño máximo del buffer de lectura del puerto serie.

2048

nativeImpleClass

Clase de driver nativo para comunicarse con el PINPad.

 

y01Tec

Tiempo entre comandos expresado en segundos (Formato: NNN). Es el tiempo máximo que el PINPAD espera el siguiente comando.

035

firmwareVersion

Opcional. Indica la versión de compatibilidad de firmware con la que trabajará EMVKIT.

 

requiredInitAppVersions

Opcional (Solo para FD). Indica que versiones de compatibilidad de firmware requieren enviar mensaje de inicio al PINPAD

 

approveInSecondInstance

Opcional. Indica si EMVKIT permite que el PINPAD apruebe en segunda decisión, una transacción rechazada por el HOST.

true


Ejemplo de configuración para el PINPAD de POSNET (FD)
#serie
#PPVX820POSNET.portName=COM3
#USB
PPVX820POSNET.portName=COM9
PPVX820POSNET.dataBits=7
PPVX820POSNET.stopBits=1
PPVX820POSNET.baudRate=115200
PPVX820POSNET.parity=EVEN
#Timeout por defecto en esperar la respuesta del Pinpad.
PPVX820POSNET.timeout=30000
PPVX820POSNET.timeoutMilisecondsWrite=150
PPVX820POSNET.language=1
#Tamaño maximo del buffer de lectura del puerto serie.
PPVX820POSNET.bufferSize=2048
PPVX820POSNET.nativeImpleClass=com.synthesis.vtolClientLib.deviceAdapters.RxTxSimpleSerialNativeLibWrapperImpl
#PPVX820POSNET.nativeImpleClass=com.synthesis.vtolClientLib.deviceAdapters.JavaCommSimpleSerialNativeLibWrapperImpl
#PPVX820POSNET.nativeImpleClass=com.synthesis.vtol.ar.client.test.pinpad.POSNETVx820VA0600PinpadEmulatorConnector
#PPVX820POSNET.nativeImpleClass=com.synthesis.vtol.ar.client.test.pinpad.POSNETVx8203DESPinpadEmulatorConnector















#[TEC]:Timeout entre comandos expresado en segundos / Formato: NNN
















PPVX820POSNET.y01Tec=035















#[TOM]:Timeout Ingreso de Datos expresado en segundos / Formato: NNN















PPVX820POSNET.y06Tom=020

#Tiempo de espera luego de enviar un Y06 (en millisecs)
PPVX820POSNET.y06ProcessWait=1000
#Tiempo de espera para un ACK de respuesta (en millisecs)
PPVX820POSNET.ackResponseTimeout=1000
#Version de la aplicacion del PINPAD
PPVX820POSNET.firmwareVersion=A0700
#Versiones de Firmware que requieren mensaje de inicialización (separadas por coma).
PPVX820POSNET.requiredInitAppVersions=A0600,A0700
#Indica si el aprobado en 2da. decisión del PINPAD está habilitado
PPVX820POSNET.approveInSecondInstance=true


Nota: Para el caso en que la terminal utiliza un dispositivo teclado con lector de banda magnética u otro dispositivo que no sea un pinpad, no es preciso realizar configuración alguna en el archivo serialPinPad.properties de la librería.


5. Integración

Como se mencionó anteriormente, EMVKIT corre como una aplicación stand alone en el POS, independiente de la aplicación de punto de venta, publicando un puerto de comunicación server TCPIP, capaz de interpretar mensajes del protocolo VTOL (mismo protocolo de comunicación utilizado por VTOL Server). 

La integración con la aplicación de punto de venta se realizará a través de la librería cliente liviana de VTOL la cual brinda todo el mecanismo de comunicación con EMVKIT, permitiendo enviar y recibir mensajes del protocolo VTOL. La aplicación punto de venta básicamente deberá indicar cuáles son los campos a enviar y, luego, procesar la respuesta.


5.1 Integración del Servicio

Para poder realizar las llamadas hacia EMVKIT, es necesario que la aplicación punto de venta integre la librería cliente, también llamada "liviana": 

La misma está disponible en 2 versiones:

  • JAVA
  • .NET

El uso de cada una dependerá del lenguaje de programación de la aplicación de punto de venta o del sistema integrador.
Para mayor información referirse a la documentación de la librería liviana.


5.2 Tipos de Operación

EMVKIT reconoce los siguientes tipos de operaciones:


A. Crear Sesión

Es la primera operación a ejecutar por parte de la aplicación punto de venta cuando se inicia una transacción de pago.

Permite iniciar sesión entre la aplicación de punto de venta y EMVKIT.
Internamente la librería verifica la conectividad con el PINPAD y se sincroniza con VTOL Server.
A continuación se detallan los campos que la aplicación punto de venta debe enviar a EMVKIT, haciendo uso de la librería cliente.


Mensajería


  • Requerimiento


Número

Nombre del campo

Tipo de dato

Obligatorio

Descripción

1

store

Alfanumérico

Obligatorio

Identificador del sitio originador de la transacción

2

node

Numérico

Obligatorio

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

11

trxType

Alfanumérico

Obligatorio

Tipo de Transacción:

  • createSession: crea una nueva sesión con EMVKIT


Ejemplo


Request to Full library: {2:1;1:1;11:createSession}


  • Respuesta


Número

Nombre del campo

Tipo de dato

Descripción

1010

currentSessionId

Numérico

Identificador de la nueva sesión

1027

libResponseCode

Numérico

Código de respuesta de la librería.
Indica cómo fue procesada la operación en EMVKIT:
Éxito = 000
Error <> 000
Ver sección Códigos de Respuesta de Librería

1028

libResponseMessage

Alfanumérico

Mensaje descriptivo del código de respuesta de la librería


Ejemplo


Response from Full library: {1010:27082015182500;1028:Ok;1027:000}


B. Leer Datos de la Tarjeta

Operación que inicia el pago con una tarjeta. Se utiliza para obtener los datos básicos de la misma leídos por medio del PINPAD.
Si la tarjeta está dentro de los bines de excepción, EMVKIT devolverá los datos leídos pero no realizará ningún otro tipo de procesamiento como reconocimiento de bin, tarjeta, etc.


Nota: Para el tratamiento de los bines de excepción, deberá también invocarse la operación "Procesar Operación con Tarjeta" con el objeto de obtener todos los datos correspondientes.


Para realizar esta operación no existe un tipo de transacción en particular. En su lugar, se debe enviar a EMVKIT el tipo de transacción de VTOL Server que se desea realizar en el campo 11 - trxType, sin incluir el campo el cual indica el monto.


Mensajería


  • Requerimiento


Número

Nombre del campo

Tipo de dato

Obligatorio

Descripción

11

trxType

Alfanumérico

Obligatorio

Tipo de Transacción:

  • Sale = Compra
  • VoidSale = Anulación de venta
  • Refund = Devolución
  • VoidRefund = Anulación de devolución
  • SaleCashBack = Compra con extracción de efectivo
  • ServicePayment = Pago de servicio
  • VoidServicePayment = Anulación de pago de servicio


*{}Los valores de tienda y caja serán obtenidos de la sesión.


Ejemplo


Request to Full library: {11:Sale}


  • Respuesta


Número

Nombre del campo

Tipo de dato

Descripción

10

inputMode

Alfanumérico

Forma en que se ingresó/leyó la tarjeta. Valores posibles:

  • Manual – Ingresada de forma manual por teclado
  • MSR – Leída por banda magnética
  • Chip – Leída por CHIP
  • MSR Chip – Fallback

1010

currentSessionId

Numérico

Identificador de la sesión actual

1027

libResponseCode

Numérico

Código de respuesta de la librería.
Indica cómo fue procesada la operación en EMVKIT:
Éxito = 000
Error <> 000
Ver sección Códigos de Respuesta de Librería

1028

libResponseMessage

Alfanumérico

Mensaje descriptivo del código de respuesta de la librería

1102

providers

Lista

Lista de proveedores/tarjetas que coinciden con la tarjeta ingresada en el PINPAD. Esta lista deberá ser utilizada para seleccionar la tarjeta manualmente

1103

cardContextId

Numérico

Identifica el contexto de la tarjeta. Es un valor de referencia a la tarjeta leída a través del PINPAD. Debe ser enviado en la siguiente llamada "Procesar Operación con Tarjeta"

1105

panFirstDigit

Numérico

Primero 6 dígitos de la tarjeta. Si la tarjeta está dentro de los bines de excepción se devuelve el número entero

1106

panLastDigit

Numérico

Últimos 4 dígitos de la tarjeta. Si la tarjeta está dentro de los bines de excepción se devuelve el número entero

1107

pan

Alfanumérico

Valor de la tarjeta enmascarado según PCI

1108

isExceptionBin

Numérico

Flag que indica si se trata de un BIN de excepción (1) o si no lo es (0)

1109

ExceptionBinName

Alfanumérico

[Opcional] Si isExceptionBin = 1 entonces indica el nombre del bin de excepción

1112


CardHolderName

Alfanumérico

[Opcional] Si el valor es devuelto por el PINPAD. Nombre del titular de la tarjeta si el track I está presente y la lectura fue por banda

1113


cardIsDebit

Numérico

[Opcional] Si existe un único provider. Flag que indica si es una tarjeta de débito (1) o de crédito (0 o no viaja).

1114

bankCode

Numérico

Código de banco si es una tarjeta Master

1115

serviceCode

Numérico

Código de servicio devuelto por el PINPAD

1116

recordNumber

Numérico

Número de registro donde se almacena la transacción en el PINPAD. Reservado para uso futuro

1117

ExceptionBinExtraData

Alfanumérico

[Opcional] Si isExceptionBin = 1 entonces indica información adicional que pudiera servir al POS


Ejemplo


Response from Full library:















{1103:20150827182503734;1102:{[PosCodeVI NameVisa PosTenderCodenull]};1010:27082015182500;1028:Ok;1027:000;1116:000001;1115:101;1114:072;1108:0;1107:450979******1495;1106:1495;1105:450979}
















C. Cancelar Lectura de Tarjeta

Este comando procede a cancelar la operatoria posterior lectura de la tarjeta en el pinpad.


Mensajería


  • Requerimiento


Número

Nombre del campo

Tipo de dato

Obligatorio

Descripción

11

trxType

Alfanumérico

Obligatorio

Tipo de Transacción:

  • cancel: cancela la lectura de la tarjeta


*{}Los valores de tienda y caja serán obtenidos de la sesión.


Ejemplo


Request to Full library: {11:cancel}


  • Respuesta


Número

Nombre del campo

Tipo de dato

Descripción

1027

libResponseCode

Numérico

Código de respuesta de la librería.
Indica cómo fue procesada la operación en EMVKIT:
Éxito = 000
Error <> 000
Ver sección Códigos de Respuesta de Librería

1028

libResponseMessage

Alfanumérico

Mensaje descriptivo del código de respuesta de la librería


Ejemplo


Response from Full library: {1028:Ok;1027:000}


D. Procesar Operación con Tarjeta

Operación utilizada para validar y obtener el resto de los datos de la tarjeta de Crédito Débito. Con estos datos, adicionados a los enviados por el POS, construye el mensaje que viaja hacia VTOL Server para su autorización. 

La utilización de esta operación es posterior a haber obtenido los datos básicos de la tarjeta por medio de la operación "Leer Datos de la Tarjeta" (si la misma no fue realizada, no se podrán obtener datos asociados a la tarjeta).
En esta operación se debe confirmar el monto de la autorización, luego de haber aplicado las promociones y descuentos correspondientes. También deben incluirse todos los campos requeridos para que la autorización sea procesada según la mensajería.
Al igual que en la "Lectura de Datos de la Tarjeta", para realizar esta operación no existe un tipo de transacción en particular. En su lugar, se debe enviar a EMVKIT el tipo de transacción de VTOL Server que se desea realizar en el campo 11 - trxType.


Nota: La confirmación del monto se debe realizar en la aplicación de punto de venta.


No es necesario incluir campos asociados a la tarjeta, ya que EMVKIT es la encargada de obtener estos datos desde el PINPAD. Como ser: CVC, Fecha de expiración, Track I, Track II, etc., según el modo de ingreso.


Mensajería


  • Requerimiento:


Número

Nombre del campo

Tipo de dato

Obligatorio

Descripción

11

trxType

Alfanumérico

Obligatorio

Tipo de Transacción:

  • Sale = Compra.
  • VoidSale = Anulación de venta.
  • Refund = Devolución.
  • VoidRefund = Anulación de devolución
  • SaleCashBack = Compra con extracción de efectivo
  • ServicePayment = Pago de servicio
  • VoidServicePayment = Anulación de pago de servicio

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:

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

14

payments

Numérico

Obligatorio

Cantidad de cuotas. 2 dígitos como máximo
Si es sin cuotas, el valor por defecto es 1

15

plan

Alfanumérico

Obligatorio

Plan. 1 caracter de longitud

16

originalDate

Fecha

Opcional
Solo para trxType = Refund

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

Opcional
Solo para trxType = Refund

Este campo debe viajar si el tipo de transacción es Refund y es opcional cuando el tipo de transacción es VoidSale. Se trata del número de ticket de la transacción original. 4 dígitos como máximo

18

referedSale

Numérico

Condicional a tarjeta AMEX

Se usa para indicar si una venta se hizo de forma referida. SOLO para AMEX. Se debe encender este campo con el valor 1

22

authorizationCode

Alfanumérico

Condicional 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

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

54

additionalAmount

Alfanumérico


Opcional
CASH BACK

Contiene el Importe del "Cash Back". Se usa en transacciones del tipo Sale + CashBack. Debe contener 12 dígitos como máximo

70

effectiveDate

Alfanumérico

Opcional AMEX

Fecha efectiva. Se usa para AMEX con formato YYMM

73

interestAmount

Alfanumérico

Opcional

Este campo es por si se necesita enviar el monto de los intereses en el mensaje a Autorizar. Normalmente el monto que llega del POS ya contiene los intereses en el caso de pagar en cuotas. Existe algún caso de alguna tarjeta especial donde el monto hay que enviarlo libre de intereses y justamente el monto de los intereses viaja en este campo

74

requestAccountNumber

Alfanumérico

Opcional, default = 0

Indica si puede recibir el número de cuenta (Visa y Posnet). Valores posible:

  • 1 = activado
  • 0 = desactivado

101

differDate

Alfanumérico

Opcional

Fecha diferida. Solo utilizada para AMEX

118

terminalCapability

Alfanumérico

Opcional

Capacidad de captura. Valores 1 = Manual / 2 = Lectura de Banda / 5 = Lectura de Chip

130

posPeriod

Numérico

Opcional

Indica el Periodo del POS en que se realiza la operación. Solamente es registrado en VTOL. Longitud 5

131

turn

Numérico

Opcional

Indica Turno en que se realiza la operación. Solamente es registrado en VTOL. Longitud 2

132

operatorCode

Alfanumérico

Opcional

Código de operador. Solamente es registrado en VTOL. Longitud 20

133

operatorName

Alfanumérico

Opcional

Nombre de operador. Solamente es registrado en VTOL. Longitud 50

134

sellerCode

Alfanumérico

Opcional

Código del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 20

135

sellerName

Alfanumérico

Opcional

Nombre del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 50

136

attentionMode

Alfanumérico

Opcional

Modalidad de atención (AU ó AS). Longitud 2

1102

provider

Alfanumérico

 

Proveedor / tarjeta seleccionada manualmente de la lista devuelta por la librería en la operación Leer Datos de la Tarjeta. Por Ejemplo: Si la operación Leer Datos de Tarjeta retorna la lista {VI, EL}, en la operación Procesar Operación con Tarjeta se debe enviar el valor seleccionado entre las dos opciones VI o EL.

1103

cardContextId

Numérico

Obligatorio

Identifica el contexto de la tarjeta. Es un valor de referencia a la tarjeta leída a través del PINPAD. Es el valor devuelto por la última operación "Leer Datos Tarjeta"


*{}Los valores de tienda y caja serán obtenidos de la sesión.


Ejemplo


Request to Full library: {10:MSR;15:0;1103:20150827182503734;14:1;13:$; 12:10000;11:Sale}


  • Respuesta


Número

Nombre del campo

Tipo de dato

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

10

inputMode

Alfanumérico

Forma en que se ingresó/leyó la tarjeta. Valores posibles:

  • Manual – Ingresada de forma manual por teclado
  • MSR – Leída por banda magnética
  • Chip – Leída por CHIP
  • MSR Chip – Fallback

22

authorizationCode

Alfanumérico

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

23

authorizationMode

Alfanumérico

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

Numérico

Id de transacción en VTOL Server. La misma queda en estado pendiente y debe ser confirmada o cancelada cuando se cierra la sesión con EMVKIT

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:

  • Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
  • Error = ver sección Códigos de error 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

Numérico

Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo. Ver sección Códigos de Respuesta de VTOL Server

28

responseMessage

Alfanumérico

Mensaje de la Respuesta ISO-8583 relacionado con el código del campo 27

29

serialNumber

Numérico

Número que identifica de la terminal lógica 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

57

accountType

Alfanumérico

Campo que se emplea para identificar el tipo de cuenta. Se usa para tarjetas de débito. Los valores posibles son:

  • 1 = Caja de ahorros en pesos
  • 2 = Cuenta corriente en pesos
  • 3 = Caja de ahorros en dólares
  • 4 = Cuenta corriente en dólares

58

workingKey

Alfanumérico

VTOL devuelve este campo tal como lo entrega el Centro Autorizador. Representa la llave que el PINPAD deberá usar para generar el PINBLOCK en la próxima transacción

59offlinePinCheckNumérico

Informa si se verifica o no el Pin Offline con AMEX EMV. Valores posibles:

  • 0 = No
  • 1 = Si

68

rrn

Numérico

Reference referral number

75

accountNumber

Numérico

Número de cuenta. Este campo es devuelto si el campo 74- requestAccountNumber fue activado en el requerimiento

81

responseAuth

Alfanumérico

Mensaje de repuesta para ser mostrado en el display del POS donde se indican promociones.
También es utilizado en la operación de Cash Back, cuando el autorizador responde con código de respuesta 98. En este campo se informará el importe máximo que puede solicitarse

82

softwareVersion

Alfanumérico

Versión de la aplicación

130

posPeriod

Numérico

[Opcional si viaje en la solicitud] Periodo enviado por el POS. Longitud 5

131

turn

Numérico

[Opcional si viaje en la solicitud] Turno. Longitud 2

132

operatorCode

Alfanumérico

[Opcional si viaje en la solicitud] Código de operador. Longitud 20

133

operatorName

Alfanumérico

[Opcional si viaje en la solicitud] Nombre de operador. Longitud 50

134

sellerCode

Alfanumérico

[Opcional si viaje en la solicitud] Código del vendedor. Longitud 20

135

sellerName

Alfanumérico

[Opcional si viaje en la solicitud] Nombre del vendedor. Longitud 50

136

attentionMode

Alfanumérico

[Opcional si viaje en la solicitud] Modalidad de atención (AU ó AS). Longitud 2

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.

1010

currentSessionId

Numérico

Identificador de la sesión actual

1027

libResponseCode

Numérico

Código de respuesta de la librería.
Indica cómo fue procesada la operación en EMVKIT:
Éxito = 000
Error <> 000
Ver sección Códigos de Respuesta de Librería

1028

libResponseMessage

Alfanumérico

Mensaje descriptivo del código de respuesta de la librería

1110

pinpadApplicationId

Alfanumérico

Identificador de la Aplicación del PINPAD.

1111

pinpadApplicationName

Alfanumérico

Nombre de la Aplicación del PINPAD.

1112

CardHolderName

Alfanumérico

Nombre del titular de la tarjeta si el track I está presente y la lectura fue por banda.

1120

voucherHeader

Mapa

[Opcional 1] Reservado para uso futuro. Retorna los datos del encabezado del voucher. El valor recibido corresponde a un campo compuesto mapa con una serie de claves y valor:

[clave1|valor1, clave2|valor2,…, claveN|valorN]

1121

voucherFooter

Mapa

[Opcional 1] Reservado para uso futuro. Retorna los datos del pie del voucher. El valor recibido corresponde a un campo compuesto mapa con una serie de claves y valor:

[clave1|valor1, clave2|valor2,…, claveN|valorN]

1122

voucherBody

Mapa

[Opcional 1] Reservado para uso futuro. Retorna el cuerpo del voucher. El valor recibido corresponde a un campo compuesto mapa con una serie de claves y valor:

[clave1|valor1, clave2|valor2,…, claveN|valorN]

1123

formattedVoucher

Alfanumérico

[Opcional 2] Reservado para uso futuro. Retorna el voucher completo y formateado para ser impreso.

1124

printVoucher

Numérico

[Opcional 3] Reservado para uso futuro. Indica si la impresión del voucher tuvo éxito o no. Valores permitidos:

  • 1 = true
  • 0 = false


Campos opcionales:

 

[Opcional 1]: Cuando la autorización fue aprobada y la librería retorna los datos del Voucher separados en encabezado, Cuerpo y pie. No implementado, reservado para uso futuro.

[Opcional 2]: Cuando la autorización fue aprobada y la librería retorna en un solo campo el Voucher formateado. No implementado, reservado para uso futuro.

[Opcional 3]: Cuando la autorización fue aprobada y la librería se encarga de imprimir el Voucher. No implementado, reservado para uso futuro.


Response from Full library:
{10:MSR;42:101001;1028:Ok;1027:000;82:STS;34:Visa;81:,---esta es una prueba de impresion---|-------esta es la segunda linea-----|-------esta es la tercera linea------|-------esta es la cuarta linea------|-------esta es la quinta linea-------^;33:Visa;32:231;31:14;1112:GOMEZ/JUAN HORACIO ;30:123456788;1111:VISA CLASSIC;29:00000001;1110:A0000000031010;28:APROBADA;27:00;26:ISO8583;25:20150828003911;24:270;23:onLine;1010:28082015003859;22:123456;68:123456789012;110:false;2:1;1:1}


IMPORTANTE: La aplicación punto de venta debe tener la capacidad de registrar los distintos trxId que recibe en las sucesivas autorizaciones APROBADAS, dentro de la sesión debido a que debe enviarlas al momento de cerrar la sesión para confirmarlas con VTOL Server.


E. Procesar Mensaje Crédito Débito

Operación que permite enviar directamente un mensaje de Crédito Debito a VTOL Server.
En este tipo de operación no se realiza interacción con el PINPAD. El mensaje que se recibe desde el POS es enviado sin cambios a VTOL Server para su autorización. No se debe ejecutar previamente la operación de lectura de datos de la tarjeta.
Para poder procesar este tipo de mensajes debe incluirse en la mensajería información de la tarjeta, como ser los campos: número de tarjeta, fecha de expiración, código de seguridad, track2, etc. Además se debe indicar el modo de ingreso realizado: Manual o Banda.
EMVKIT valida si llega un mensaje Crédito Debito con el Número de Tarjeta o Track2. Si es así envía el mensaje directamente VTOL Server.


Mensajería


  • Requerimiento:


Número

Nombre del campo

Tipo de dato

Obligatorio

Descripción

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 YYMM 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

inputMode

Alfanumérico

Obligatorio

Forma en que se ingresó/leyó la tarjeta. Valores posibles:

  • Manual – Ingresada de forma manual por teclado
  • MSR – Leída por banda magnética
  • Chip – Leída por CHIP

11

trxType

Alfanumérico

Obligatorio

Tipo de Transacción:

  • Sale = Compra.
  • VoidSale = Anulación de venta.
  • Refund = Devolución.
  • VoidRefund = Anulación de devolución
  • ServicePayment = Pago de servicio
  • VoidServicePayment = Anulación de pago de servicio

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:

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

14

payments

Numérico

Obligatorio

Cantidad de cuotas. 2 dígitos como máximo
Si es sin cuotas, el valor por defecto es 1

15

plan

Alfanumérico

Obligatorio

Plan. 1 caracter de longitud

16

originalDate

Fecha

Opcional
Solo para trxType = Refund

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

Opcional
Solo para trxType = Refund

Este campo debe viajar si el tipo de transacción es Refund y es opcional cuando el tipo de transacción es VoidSale. Se trata del número de ticket de la transacción original. 4 dígitos como máximo

18

referedSale

Numérico

Condicional a tarjeta AMEX

Se usa para indicar si una venta se hizo de forma referida. SOLO para AMEX. Se debe encender este campo con el valor 1

22

authorizationCode

Alfanumé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

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

54

additionalAmount

Alfanumérico


Opcional
CASH BACK

Contiene el Importe del "Cash Back". Se usa en transacciones del tipo Sale + CashBack. Debe contener 12 dígitos como máximo

70

effectiveDate

Alfanumérico

Opcional AMEX

Fecha efectiva. Se usa para AMEX con formato YYMM

73

interestAmount

Alfanumérico

Opcional

Este campo es por si se necesita enviar el monto de los intereses en el mensaje a Autorizar. Normalmente el monto que llega del POS ya contiene los intereses en el caso de pagar en cuotas. Existe algún caso de alguna tarjeta especial donde el monto hay que enviarlo libre de intereses y justamente el monto de los intereses viaja en este campo

74

requestAccountNumber

Alfanumérico

Opcional, default = 0

Indica si puede recibir el número de cuenta (Visa y Posnet). Valores posible:

  • 1 = activado
  • 0 = desactivado

101

differDate

Alfanumérico

Opcional

Fecha diferida. Solo utilizada para AMEX

130

posPeriod

Numérico

Opcional

Indica el Periodo del POS en que se realiza la operación. Solamente es registrado en VTOL. Longitud 5

131

turn

Numérico

Opcional

Indica Turno en que se realiza la operación. Solamente es registrado en VTOL. Longitud 2

132

operatorCode

Alfanumérico

Opcional

Código de operador. Solamente es registrado en VTOL. Longitud 20

133

operatorName

Alfanumérico

Opcional

Nombre de operador. Solamente es registrado en VTOL. Longitud 50

134

sellerCode

Alfanumérico

Opcional

Código del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 20

135

sellerName

Alfanumérico

Opcional

Nombre del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 50

136

attentionMode

Alfanumérico

Opcional

Modalidad de atención (AU ó AS). Longitud 2

1103

cardContextId

Numérico

Obligatorio.

Identifica el contexto de la tarjeta. Es un valor de referencia a la tarjeta leída a través del PINPAD. Es el valor devuelto por la última operación "Leer Datos Tarjeta"


*{}Los valores de tienda y caja serán obtenidos de la sesión.


Ejemplo


Request to Full library: {15:0;1103:20150827182503734;14:1;13:$;12:10000; 11:Sale;10:Manual;8:648;7:1905;6:4507990000977787}


  • Respuesta


Número

Nombre del campo

Tipo de dato

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

Alfanumérico

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

23

authorizationMode

Alfanumérico

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

Numérico

Id de transacción en VTOL Server. La misma queda en estado pendiente y debe ser confirmada o cancelada cuando se cierra la sesión con EMVKIT

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:

  • Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
  • Error = ver sección Códigos de error 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

Numérico

Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo. Ver sección Códigos de Respuesta de VTOL Server

28

responseMessage

Alfanumérico

Mensaje de la Respuesta ISO-8583 relacionado con el código del campo 27

29

serialNumber

Numérico

Número que identifica de la terminal lógica 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

workingKey

Alfanumérico

VTOL devuelve este campo tal como lo entrega el Centro Autorizador. Representa la llave que el PINPAD deberá usar para generar el PINBLOCK en la próxima transacción

68

rrn

Numérico

Reference referral number

75

accountNumber

Numérico

Número de cuenta. Este campo es devuelto si el campo 74- requestAccountNumber fue activado en el requerimiento

81

responseAuth

Alfanumérico

Mensaje de repuesta para ser mostrado en el display del POS donde se indican promociones.

También es utilizado en la operación de Cash Back, cuando el autorizador responde con código de respuesta 98. En este campo se informará el importe máximo que puede solicitarse

82

softwareVersion

Alfanumérico

Versión de la aplicación

130

posPeriod

Numérico

[Opcional si viaje en la solicitud] Periodo enviado por el POS.  Longitud 5

131

turn

Numérico

[Opcional si viaje en la solicitud] Turno. Longitud 2

132

operatorCode

Alfanumérico

[Opcional si viaje en la solicitud] Código de operador. Longitud 20

133

operatorName

Alfanumérico

[Opcional si viaje en la solicitud] Nombre de operador. Longitud 50

134

sellerCode

Alfanumérico

[Opcional si viaje en la solicitud] Código del vendedor. Longitud 20

135

sellerName

Alfanumérico

[Opcional si viaje en la solicitud] Nombre del vendedor. Longitud 50

136

attentionMode

Alfanumérico

[Opcional si viaje en la solicitud] Modalidad de atención (AU ó AS). Longitud 2

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.

1010

currentSessionId

Numérico

Identificador de la sesión actual

1027

libResponseCode

Numérico

Código de respuesta de la librería.

Indica cómo fue procesada la operación en EMVKIT:

Éxito =   000

Error <> 000

Ver sección Códigos de Respuesta de Librería

1028

libResponseMessage

Alfanumérico

Mensaje descriptivo del código de respuesta de la librería

1110

pinpadApplicationId

Alfanumérico

Identificador de la Aplicación del PINPAD.

1111

pinpadApplicationName

Alfanumérico

Nombre de la Aplicación del PINPAD.

1112

CardHolderName

Alfanumérico

Nombre del titular de la tarjeta si el track I está presente y la lectura fue por banda.

1120

voucherHeader

Mapa

[Opcional 1] Reservado para uso futuro. Retorna los datos del encabezado del voucher. El valor recibido corresponde a un campo compuesto mapa con una serie de claves y valor:

[clave1|valor1, clave2|valor2,…, claveN|valorN]

1121

voucherFooter

Mapa

[Opcional 1] Reservado para uso futuro. Retorna los datos del pie del voucher. El valor recibido corresponde a un campo compuesto mapa con una serie de claves y valor:

[clave1|valor1, clave2|valor2,…, claveN|valorN]

1122

voucherBody

Mapa

[Opcional 1] Reservado para uso futuro. Retorna el cuerpo del voucher. El valor recibido corresponde a un campo compuesto mapa con una serie de claves y valor:

[clave1|valor1, clave2|valor2,…, claveN|valorN]

1123

formattedVoucher

Alfanumérico

[Opcional 2] Reservado para uso futuro. Retorna el voucher completo y formateado para ser impreso.

1124

printVoucher

Numérico

[Opcional 3] Reservado para uso futuro. Indica si la impresión del voucher tuvo éxito o no. Valores permitidos:

  • 1 = true
  • 0 = false


Campos opcionales:

[Opcional 1]: Cuando la autorización fue aprobada y la librería retorna los datos del Voucher separados en encabezado, Cuerpo y pie. No implementado, reservado para uso futuro.

[Opcional 2]: Cuando la autorización fue aprobada y la librería retorna en un solo campo el Voucher formateado. No implementado, reservado para uso futuro.

[Opcional 3]: Cuando la autorización fue aprobada y la librería se encarga de imprimir el Voucher. No implementado, reservado para uso futuro.


Response from Full library:
{42:101001;1028:Ok;1027:000;82:STS;34:Visa;81:,---esta es una prueba de impresion---|-------esta es la segunda linea-----|-------esta es la tercera linea------|-------esta es la cuarta linea------|-------esta es la quinta linea-------^;33:Visa;32:231;31:14;1112:GOMEZ/JUAN HORACIO ;30:123456788;1111:VISA CLASSIC;29:00000001;1110:A0000000031010;28:APROBADA;27:00;26:ISO8583;25:20150828003911;24:270;23:onLine;1010:28082015003859;22:123456;68:123456789012;110:false;2:1;1:1}


IMPORTANTE: La aplicación punto de venta debe tener la capacidad de registrar los distintos trxId que recibe en las sucesivas autorizaciones APROBADAS, dentro de la sesión debido a que debe enviarlas al momento de cerrar la sesión para confirmarlas con VTOL Server.


F. Obtener Configuración de POS

Operación que permite a la aplicación de punta de venta obtener la información existente en VTOL Server relacionada con los planes, cuotas, tarjetas, prefijos y bines de excepción.


Mensajería


  • Requerimiento


Número

Nombre del campo

Tipo de dato

Obligatorio

Descripción

11

trxType

Alfanumérico

Obligatorio

Tipo de Transacción:

  • getConfiguration: solicitud de configuración de POS


*{}Los valores de tienda y caja serán obtenidos de la sesión.


Ejemplo


Request to Full library: {11:getConfiguration}


  • Respuesta


Número

Nombre del campo

Tipo de dato

Descripción

137

confVersion

Numérico

Número de versión de configuración.

138

confData

Alfanumérico

Configuración de POS recibida desde VTOL server. El valor recibido corresponde a los datos registrados en un archivo de configuración codificados en Base64.
Ver sección Formato Configuración POS

1010

currentSessionId

Numérico

Identificador de la sesión actual

1027

libResponseCode

Numérico

Código de respuesta de la librería.
Indica cómo fue procesada la operación en EMVKIT:
Éxito = 000
Error <> 000
Ver sección Códigos de Respuesta de Librería

1028

libResponseMessage

Alfanumérico

Mensaje descriptivo del código de respuesta de la librería


Ejemplo


Response from Full library:
{1010:28082015010451;1027:000;1028:Ok;137:5; 138:SEQ6MDAwMDAxOzAwMDAxMDswMDAwMDAwMDsyMDE1LzA4LzI2IDE…}


G. Cerrar Sesión

Permite cerrar la sesión entre la aplicación de punto de venta y EMVKIT.

Internamente EMVKIT se sincroniza con VTOL Server, confirmando o cancelando las transacciones procesadas dentro de la sesión.


IMPORTANTE: Es importante que una vez finalizada la transacción de pago en la aplicación de punto de venta se realice el cierre de la sesión con EMVKIT, indicando si se debe confirmar o reversar las autorizaciones realizadas.


IMPORTANTE: Cuando se desee cancelar una transacción dentro de una sesión de EMVKIT, es requisito realizar la anulación de la transacción teniendo que ingresar nuevamente la tarjeta o ingresar los datos de la misma.


Mensajería


  • Requerimiento


Número

Nombre del campo

Tipo de dato

Obligatorio

Descripción

11

trxType

Alfanumérico

Obligatorio

Tipo de Transacción:

  • closeSession: cierre de sesión con la librería

1008

closeSessionAction

Alfanumérico

Obligatorio

Acción que se debe realizar sobre el cierre de sesión:

  • CLOSE = Confirmar autorizaciones realizadas en la sesión
  • CANCEL = Reversar las autorizaciones realizadas en la sesión
  • FORCED_CLOSE = Confirmar autorizaciones realizadas en la sesión que fue cerrada forzosamente

1009

closeTrxIdList

Lista

Obligatorio. Solo cuando el campo 1008 es igual a CLOSE

Lista de los trxId (campo 24) recibidos en la respuestas a las distintas llamadas "Procesar Operación con la Tarjeta"

250

actionCode

Alfanumérico

Obligatorio cuando el campo 1008 es igual a FORCED_CLOSE

Identificación del motivo por el cual la sesión tuvo un cierre forzado. Código de 5 caracteres.
Valores posibles:

  • 00001 – Corte de energía en el local
  • 00002 – El tarjeta habiente se marchó
  • 00003 – El vendedor decidió cerrarla
  • 00004 – Error en la impresión
  • 00005 – Error en el punto de venta
  • 99999 – Motivo desconocido

251

actionNote

Alfanumérico

Opcional

Motivo informado por el punto de venta cuando la sesión tuvo un cierre no tradicional. Máximo de 50 caracteres


*{}Los valores de tienda y caja serán obtenidos de la sesión.

Ejemplo


Request to Full library: {1009:{270};1008:CLOSE;11:closeSession}


Es importante tener en cuenta que:


  • El campo closeSessionAction puede tomar uno de los siguientes valores:
    • CLOSE: la sesión terminó correctamente, es decir, la aplicación de punto de venta finalizó la transacción de punto de venta correctamente
    • CANCEL: la sesión no terminó correctamente, es decir, la aplicación de punto de venta NO finalizó correctamente la transacción de punto de venta debido a algún tipo de contingencia
    • FORCED_CLOSE: la sesión no terminó correctamente, es decir, la aplicación de punto de venta NO finalizó correctamente la transacción de punto de venta y se forzó el cierre de la sesión. Por ejemplo, corte de luz, el cliente se marcha, errores en el punto de venta, etc
  • El campo closeTrxIdList es la lista de los trxIds que la aplicación de punto de venta recibió y almacenó. Solamente debe enviar esta lista cuando el valor del campo closeSessionAction es igual a CLOSE


  • Respuesta


Número

Nombre del campo

Tipo de dato

Descripción

1010

currentSessionId

Numérico

Identificador de la sesión que se cierra

1027

libResponseCode

Numérico

Código de respuesta de la librería.
Indica cómo fue procesada la operación en EMVKIT:
Éxito = 000
Error <> 000
Ver sección Códigos de Respuesta de Librería

1028

libResponseMessage

Alfanumérico

Mensaje descriptivo del código de respuesta de la librería


Ejemplo


Response from Full library: {1010:28082015003859;1028:Ok;1027:000}


5.3 Autorización Aprobada

Para determinar que una autorización fue aprobada es necesario:

  • 1° verificar el campo

1027

libResponseCode


Si el valor es igual a 000, indica que la librería pudo enviar la solicitud a VTOL Server y procesar la respuesta sin problemas. Es el primer indicador de que todo va bien.
Un código distinto indica un error de procesamiento en la librería, que debe ser manejado.


  • 2° verificar el campo isoCode

27

isoCode


En este caso, si el valor es igual 00 indica que la autorización ha sido Aprobada por VTOL server y que debe capturarse el valor del campo para ser enviado en el cierre de sesión:

24

lastTrxId


6. Anexos

6.1 Códigos de Respuesta de EMVKIT

El código de respuesta de EMVKIT y su detalle se encuentran en los siguientes campos:

  1. Campo 1027: Código
  2. Campo 1028: Descripción de la Respuesta


A continuación se detallan las respuestas posibles con una breve descripción y significado de cada una:


Código

Descripción

Significado

UDF

INDEFINIDO

Corresponde al estado inicial de la variable de estado. La librería no debe devolver nunca este valor

000

(PINPAD) Aprobado

Operación satisfactoria

001

(PINPAD) Cancelado por el usuario

Se usó la tecla CANCEL del PINPAD

002

(PINPAD) Error ingreso 4 últimos dígitos

El PINPAD detectó errores en el ingreso de los últimos 4 dígitos

003

(PINPAD) Error de lectura Track2

El PINPAD no pudo leer el Track II

004

(PINPAD) Error Pinpad-ingreso PIN

No se ingresó correctamente el PIN en el PINPAD

005

(PINPAD) Error Chip

El PINPAD no pudo leer o grabar en el CHIP

006

(PINPAD) Error Fecha inválida

Se ingresó un fecha inválida en el PINPAD

007

(PINPAD) Error TimeOut

El PINPAD suspendió la operación por TIMEOUT

008

(PINPAD) Error en secuencia de comando recibido

El PINPAD rechazó un comando por estar fuera de secuencia

009

(PINPAD) Error en formato de comando recibido

El PINPAD rechazó un comando por formato erróneo

011

(PINPAD) Error de LRC de comando recibido

El PINPAD rechazó un comando por LRC erróneo

101

A SESSION is already created.

No se puede crear una nueva sesión con EMVKIT, debido a que ya existe una sesión activa.

102

Lib is processing requests.

EMVKIT se encuentra procesando un requerimiento.

103

Lib is processing response.

EMVKIT se encuentra procesando una respuesta a un requerimiento.

104

Lib is processing a reverse.

La librería se encuentra procesando un reverso.

198

Acción invalida

La librería suspendió la operación por que la acción que se requiere es no valida.

199

TimeOut

EMVKIT suspendió la operación por Timeout

701

(API) Archivo de Sesión no existe

No existe el archivo que contiene la información de sesión

702

(API) Existen Trxs Pendientes con VTOL Server

Existen Transacciones pendientes con VTOL que no se pueden cerrar

703

(API) Estado de Sesión no es válido

El estado de la sesión es inválido

704

(API) Tipo de Transacción es invalido

El tipo de transacción enviado en la llamada no es válido

705

(API) Error enviando mensaje a VTOL Server

Error enviando autorización a VTOL Server

706

(API) Lista de VTOL TrxIds no recibida (Cierre de Sesión)

Lista de VTOL TrxIds no recibida en el Cierre de Sesión con acción CLOSE

801

(API-PINPAD) PAN: Proveedor desconocido

La librería no pudo determinar el proveedor de una tarjeta

802

(API-PINPAD) PAN: Dígito verificador inválido

La librería encontró inválido el DV de una tarjeta

803

(AP-PINPADI) Error en protocolo con el PINPAD

La librería detectó un mensaje del PINPAD fuera de contexto

804

(API-PINPAD) Error de formato de mensaje del PINPAD

La librería detectó errores de formato en un mensaje del PINPAD

805

(API-PINPAD) Error en configuración de tarjetas

No se pudo identificar la tarjeta o la configuración es nula

806

(API-PINPAD) Error llave RSA invalida o nula

La librería no tiene llave RSA para trabajar. Se debe descargar de VTOL

807

(API-PINPAD) Error WK nula o formato invalido

La llave WorkingKey enviada por el POS tiene un formato inválido o es nula

901

(API) Error del sistema (general)

Error interno de la librería

902

(API) Error del sistema (I/O)

Error de entrada/salida o comunicación de la librería

911

(API) Error del sistema (carga)

Error al cargar la librería

912

(API) Error del sistema (contexto inexistente)

El POS envió un CARD_CONTEXT_ID inexistente

913

(API) Error del sistema (contexto inválido)

El POS envió un CARD_CONTEXT_ID inválido

914

(API) Error del sistema (carga working key)

Error leyendo o registrando las Claves de Trabajo<br>Interno de la librería

999

Error no manejado

Error no manejado


6.2 Códigos de Respuesta de VTOL Server

La respuesta que el POS recibe de VTOL se encuentra en los siguientes campos:

  1. Campo 27: Código de Respuesta ISO
  2. Campo 28: Descripción de la Respuesta ISO


A continuación se detallan las respuestas posibles con una breve descripción de cada una:


Código

Descripción

'00'

Aprobada

'01'

Pedir autorización telefónica

'02'

Pedir autorización

'03'

Comercio inválido

'04'

Capturar tarjeta

'05'

Denegada

'07'

Retenga y llame

'11'

Aprobada

'12'

Transacción inválida

'13'

Monto inválido

'14'

Tarjeta inválida

'25'

No existe original

'30'

Error en formato

'38'

Excede ingreso de PIN

'43'

Retener tarjeta

'45'

No opera en cuotas

'46'

Tarjeta no vigente

'47'

PIN requerido

'48'

Excede máximo de cuotas

'49'

Error fecha de vencimiento

'50'

Entrega supera límite

'51'

Fondos insuficientes

'53'

Cuenta inexistente

'54'

Tarjeta vencida

'55'

PIN incorrecto

'56'

Tarjeta no habilitada

'57'

Transacción no permitida

'58'

Servicio inválido

'61'

Excede límite

'65'

Excede límite de tarjeta

'76'

Llamar al emisor

'77'

Error plan/cuotas

'85'

Aprobada

'86'

No envía fecha original

'89'

Terminal inválida

'91'

Emisor fuera de línea

'94'

Número de secuencia duplicado

'95'

Re-transmitiendo

'96'

Error en sistema

'98'

No aprobada

'99'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Error no clasificado

Modo de ingreso inválido

Proveedor inválido

Error CVC

Error creando mensaje

Tipo de mensaje inválido

No envía código de autorización

Error en fecha efectiva

Error en fecha vencimiento

Tarjeta no efectiva

No opera off-line

Devolución monto mayor

Original ya anulada

Original ya devuelta

Original reversada

Moneda inválida

No envía fecha

Campo 71 inválido

Campo 71 nulo

CVC inválido

Tarjeta 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

Pinpad R. Cod. Error

Pinpad A. Cod. Error


6.3 Códigos de Error del CORE de VTOL Server

Es posible que VTOL responda "Error" en el campo 26 del mensaje de respuesta. Este 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:

Donde:

  • Los campos 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


6.4 Formato Configuración POS

A continuación se detalla la información que viaja en el campo confData de un mensaje de solicitud de configuración, que se corresponde con la interface de configuración generada para el POS en VTOL Server.
La versión de Formato de interface utilizada por Crédito Debito Argentina es la v106


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.
Campo de relación entre POS y VTOL (Opcional)


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.
(0/vacío ó 1)

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.
(0 ó 1)

24

Solicita número de cuenta

1

N

Solicita al autorizador el número de cuenta.
(0 ó 1)

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.
(0 ó 1)

28

Posición de la Master Key

1

N

Indica la posición de la Master Key en los registros del Firmware. Valores posibles:
0: Mastercard y Maestro
1: Visa 1
99: Indica que el Pinpad no tiene registro para la MK. Es el caso de tarjeta Amex.

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;99;;
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.
En formato 0000000000.00
0 indica sin límite

10

Limite intereses

13

N

Si el monto es superior a éste valor, entonces el interés es = 0
En formato 0000000000.00
0 indica sin límite

11

Interés

5

AN

Tasa de interés (%) para el plan de pago. En formato 00.00
0 indica sin interés

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


6.5 Circuito Operativo de EMVKIT

6.5.1 Flujo a Implementar

En este anexo se mencionará el flujo a implementar los tipos de operaciones soportadas por la Librería dependiendo el dispositivo de captura que posea la terminal:


Operatoria con Pinpad

  1. Crear Sesión
  2. Leer Datos de la Tarjeta
    Flujo alternativo:
    2.1 Cancelar Lectura de Tarjeta
    2.2 Vuelve al paso 2
  3. Procesar Operación con Tarjeta
    Flujo alternativo:
    3.1 Leer Datos de la Tarjeta
    3.2 Procesar Operación con Tarjeta
  4. Cerrar Sesión


Operatoria sin Pinpad

  1. Crear Sesión
  2. Procesar Mensaje Crédito Débito
    Flujo alternativo:
    2.1 Procesar Mensaje Crédito Débito
  3. Cerrar Sesión


Nota: La operación "Obtener Configuración de POS" se recomienda ejecutar por lo menos una vez a día: al inicio del día, tras efectuar un cierre de caja, etc.


6.5.2 Pagos Parciales

A continuación se muestra un diagrama de secuencia donde se explica la operatoria entre el POS, EMVKIT y el Pinpad.

Venta
Cuando en una sesión exista un sólo pago, se deberá efectuar la operatoria de lectura y de procesamiento de la operación. En caso de que en una sesión existan más de un pago; es decir, pagos parciales, se deberá efectuar el proceso de lectura y procesamiento por cada una de las tarjetas.

Anulación de venta
Cuando se desee cancelar una transacción dentro de una sesión de EMVKIT, es requisito realizar la anulación de la transacción teniendo que ingresar nuevamente la tarjeta o ingresar los datos de la misma. En caso de anulación de pagos parciales en una sesión, se deberá efectuar una anulación por cada pago parciales, finalizando de esta manera la sesión con tanta cantidad de ventas como de anulaciones de venta.


Diagrama de secuencia de Pagos Parciales


6.6 Mecanismo de Autorización Telefónica

Cuando el centro autorizador responde a una operatoria de autorización con el mensaje "Autorización telefónica", EMVKIT de igual forma le envía un comando de requerimiento al pinpad.

  • Si el pinpad aprueba la transacción, se envía un mensaje de advice al centro autorizador.
Nota: Este escenario se incluye en el proceso de certificación, pero en el entorno de producción no se contempla
  • Si el pinpad rechaza la transacción, se realiza un echo de los valores y se retorna el resultado al punto de venta.
    Luego, el retailer deberá comunicarse telefónicamente con el Centro Autorizador para proceder a autorizar por teléfono la transacción rechazada.
    • Si la transacción intentada era procedente de una tarjeta con chip, se marca la transacción para realizarse nuevamente. El punto de venta reintentará efectuar la transacción.
    • Si la transacción intentada era procedente de una tarjeta sin chip, el Centro Autorizador entrega un código de autorización. El punto de venta debe volver a ejecutar las operaciones de EMVKIT "Leer Datos de la Tarjeta" y "Procesar Operación con Tarjeta", esta vez informando el código de autorización otorgado por el Centro Autorizador y enviando la transacción como offline.

Importante: El punto de venta es el responsable de validar que tanto la primera transacción de venta como la segunda, en la que se informa el código de autorización, se trate de la misma operación de venta. Para EMVKIT, estas transacciones, se consideran como dos ventas individuales.


6.7 Timeout de EMVKIT

Se recomienda que el punto de venta implemente un timeout con EMVKIT de 240 segundos (4 minutos) antes de cerrar la comunicación. Este estimativo se obtiene en base a un análisis de los valores de setup de fábrica del pinpad y considerando los peores escenarios de interacción entre el servidor, el usuario y el pinpad.

Se debe tener en cuenta que el tiempo de espera para una respuesta de EMVKIT que se debe configurar en el punto de venta tiene que ser mayor al valor configurado en el archivo business.properties

#Tiempo de espera de la respuesta de la librería antes de responder al POS con TO.
ServiceApiBridge.responsePosTimeOut=230000

El valor de este parámetro indica cuánto tiempo espera EMVKIT para responder con un error de Timeout y no dejar al punto de venta esperando respuesta.
Por cada solicitud, se activa ese tiempo; y si no tiene una respuesta para enviar al punto de venta, cumplido ese tiempo, se enviará un mensaje de timeout.
Este valor en principio no debería subirse pues está calculado en base a los escenarios de sincronización y autorización.



  • Sem rótulos