Versões comparadas

Chave

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

...

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


Expandir
titleExpandir 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 la 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

20/07/2017

1.20

Incorporación del campo opcional 1025 – transactionalControl en la operación "Crear Sesión"
Incorporación de campo 24 - lastTrxId en operación "Leer Datos de la Tarjeta"
Agregado del anexo "Control Transaccional"

27/07/2017

1.21

Modificación del apartado "Pre requisitos"
Incorporación del apartado "Configuración de enlace con VTOL"

02/08/2017

1.22

Agregación de campo 22 – authorizationCode en el requerimiento de la operación "Leer Datos de la Tarjeta"
Eliminación de campo 22 – authorizationCode en el requerimiento de la operación "Procesar Operación con Tarjeta"

06/10/2017

1.23

Actualización de la estructura y numeración del documento
Agregación del campo dateTime como valor requerido en los requerimientos de "Procesar Operación con Tarjeta" y "Procesar Mensaje Crédito Débito"
Actualización del anexo "Timeout de la EMVKIT"

14/11/2017

1.24

Incorporación del apartado "Instalación"
Actualización del apartado "Configuración"

01/02/2018

1.25

Aclaración sobre requerimiento de software

23/04/20181.26

Revisión general del documento.

Agregado de apartado Pagos Parciales.

13/06/20181.27Agregado de procesamiento de tarjetas de empleados
12/07/20181.28Agregado de campos 6 - cardNumber, 9 - track2, 66 - track1 y 145 - exceptionBinName en la respuesta de la operación "Procesar Operación con Tarjeta"
06/08/20181.29Incorporación de la funcionalidad PEI en la mensajería
17/08/20181.30Agregado de campo 1104 - prefixesList en la respuesta de la operación "Leer Datos de la Tarjeta"
14/01/20191.31Incorporación de las funcionalidades de impresión de vouchers en la mensajería
25/01/20191.32

Incorporación de la mensajería PEI en las operatorias de "Leer datos de Tarjeta" y "Procesar Operación con Tarjeta"

Incorporación de la mensajería QueryPEI con PinPad

15/02/20191.33Incorporación de la funcionalidad Billeteras Electrónicas QR (Mercado Pago y Todo Pago)
03/04/20191.34Agregado del campo 0 (compañía) en todos los tipos de transacciones.
17/05/20191.35Incorporación de la funcionalidad Cuenta DNI y Promociones PEI.
20/05/20191.36Incorporación de apartado de compatibilidad con VTOL Server.
02/08/20191.37Incorporación de funcionalidad de Billeteras electrónicas con manejo de cuotas.
08/08/20191.38Incorporación de funcionalidad Contactless con pinpad de First Data.
09/08/20191.39Incorporación de apartado para integrar operaciones con tarjetas Contactless.
24/10/20191.40Agregado del campo 1138 (emvData) en la operatoria "Procesar Operación con Tarjeta". Los datos de este campo retornan al POS para ser impresos en el ticket.
25/11/20191.41Agregado de anexo 6.10 Vouchers con la especificación de los campos de los comprobantes según los Autorizadores
27/12/20191.42Actualización del apartado Procedimiento de Instalación
06/01/20201.43Incorporación de funcionalidad Contactless con pinpad de Prisma.
10/03/20201.44Incorporación de mensaje de Sincronización de transacciones entre EMVKit y el POS.
29/04/20201.45Incorporación de la carpeta doc a la instalación
30/07/20201.46Incorporación de funcionalidad de Billeteras Mercado Pago con retiro de efectivo.
22/09/20201.47Se actualiza el campo 54 (additionalAmount) como tipo de dato Importe, en la mensajería de Billeteras electrónicas.
26/11/20201.48Agregado del campo Descripción en Configuración de POS para indicar la descripción sobre un plan de pago.
11/12/20201.49Incorporación de funcionalidad QR Adquiriente.
16/12/20201.50Incorporación del campo afApplicationCondition para validar la aplicación de reglas antifraudes por el módulo AF de VTOL.
05/03/20211.51Se actualiza el nombre y la descripción del campo 406 en la respuesta de la mensajería de QR Adquiriente.
13/04/20211.52Incorporación de mensaje para Consultar Bines de Excepción
05/05/20211.53Incorporación de mensaje para Consultar tarjetas de Fidelidad
11/05/20211.54Se quitan las referencias de la billetera Todo Pago, ya que dicha Billetera está incluida dentro de la funcionalidad "QR Adquiriente Prisma".
19/05/20211.55Incorporación de mensajería para Billetera Yacaré. Se incluye dentro del apartado "J. Procesar mensaje Billeteras Electrónicas"
24/06/20211.56Incorporación de Operaciones Contactless con doble interacción.
23/08/20211.57En Billetera QR Adquiriente, en el campo WalletType se diferencian por id las billeteras Bimo, Modo y Todo Pago. Incorporación disponible a partir de la versión 3.8.0.12b de VTOL Server.
01/10/20211.58Incorporación de mensajería para Billetera Plus Pagos. Se incluye dentro del apartado "J. Procesar mensaje Billeteras Electrónicas"
25/01/20221.59Incorporación de mensajería para QR Adquiriente Fiserv. Se incluye dentro del apartado "P. Procesar mensaje QR Adquiriente Fiserv".
03/03/20221.60Incorporación de mensajería para Operaciones con PayStore. Se incluye dentro del apartado "T. Procesar mensaje PayStore".
16/03/20221.61Agregado del campo Marca de tarjeta en el "Formato Configuración POS", dentro de la tabla "Provider".
06/05/20221.62

Incorporación de mensajería para Billetera Rappi Payless. Se incluye dentro del apartado "J. Procesar mensaje Billeteras Electrónicas"

11/11/20221.63

Incorporación de mensajería para Operaciones con Ationet. Se incluye el apartado "U. Procesar mensaje Ationet"

3/11/20231.64

Agregado de los campos PaymentToDisplay y PaymentDescripción en Configuración de POS para indicar las opciones de pago que posee una descripción diferente a la cuota real.

04/12/20231.65

Cambios incorporados en EMVKIT en situaciones de rechazo en tercera instancia.

03/01/2024

1.7

Incorporación de mensajería para operaciones con la Billetera GoCuotas. Se incluye el apartado "V". Procesar mensaje con GOCuotas"

23/01/2024

1.8

Se agregaron los cambios en la instalación de Emvkit correspondientes a la configuración del driver del pinpap "VISA 0315B 3DES" en la sección 5. del manual.





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


Expandir
titleExpandir contenido

Índice


...

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


Âncora
_

...

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

...

Toc508730823
_Toc508730823
Âncora
_

...

Hlk498434717
_

...

Hlk498434717
5. Emvkit Versión 1.11.1

...

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.

– Driver del pinpad "VISA 0315B 3DES"

Âncora
_Toc508730824
_Toc508730824
5.1 Instalación

La instalación de EMVKIT o EMV Kit se realiza gracias al uso de un instalador o asistente gráfico. Mediante este asistente de instalación, también se instala el componente agente de la solución Director para que EMV Kit pueda actualizarse remotamente.

En esta nueva versión de EMVKIT AR se puede elegir en la configuración la versión de Driver del pinpad "VISA 0315B 3DES", la cual permite utilizar el nuevo firmware de Pinpad de Prisma que realiza encriptación en 3DES.


Para ello se deben seguir los siguientes pasos:

  1. Iniciar sesión en el sistema operativo donde se instalará EMVKIT con un usuario con permisos de administrador.

  2. Iniciar el instalador de la aplicación ejecutando la siguiente sentencia en la línea de comandos:
Bloco de código
java –jar INSTALADOR.jar 

Por ejemplo:

Bloco de código
java -jar vtol-pos-client-lib-ar-installer-1.11.1-2024-01-23-DirectorV-2.0.0.jar


Nota
Nota: Verificar tener seteada correctamente la variable JAVA_HOME. En caso de no tenerla, setearla a la carpeta de instalación de la JVM. Para esto verificar la carpeta de instalación, ejemplo: C:\Java\jdk1.8.0_25\.


Al ejecutar esta sentencia, se descomprime el archivo.
Image Added 

3. Se presentará la pantalla de bienvenida del instalador. Presionar el botón "Siguiente".

Image Added 


4. Al pasar a la siguiente pantalla, se mostrarán los términos y condiciones de uso de la aplicación de software para ser leídos y posteriormente aceptados para poder continuar con la instalación.

Presionar el botón "Aceptar".

Image Added


5. A continuación, se deberán aceptar los términos y condiciones de uso y completar los datos (nombre completo y correo electrónico) de quién acepta. Presionar el botón "Siguiente".

Image Added


Nota
Nota: Si no se aceptan los términos y condiciones de uso, la instalación no se completará.


6. En la siguiente pantalla se deben ingresar las siguientes propiedades:

    1. El directorio donde se encuentra Java
    2. El directorio donde se desea instalar EMVKIT o EMV Kit
    3. El código de la compañía, configurado en Director
    4. El código de la tienda, configurado en Director
    5. El código de la terminal de la tienda desde donde se operará, configurado en Director
    6. La IP de VTOL Server para poder comunicarse
    7. El puerto de VTOL Server
      • Por defecto 3003 (con SSL)
    8. La IP donde se comunica EMV Kit
      • Por defecto localhost
    9. El puerto donde se vincula EMV Kit
      • Por defecto 3500
    10. Y, por último, establecer si se desea actualizar EMV Kit remotamente gracias a Director.
      Al habilitar el componente checkbox, se ofrecerá completar las propiedades de la pantalla del punto 7. Si no se habilita el componente checkbox, se continúa con la pantalla del "punto 8. Indicar el puerto donde se encuentra conectado el pinpad y seleccionar mediante el desplegable el driver del pinpad" correspondiente a 3DES.

Presionar el botón "Siguiente".

Image Added
En caso de que el directorio donde se desea instalar EMV Kit no exista, se ofrecerá crearlo. Presionar el botón "Sí" para ello.

Image Added

A continuación, se muestra la información de la configuración de SSL con los siguientes campos completados:

Image Added

7.  Se muestra la pantalla en donde se deberá completar el campo de la URL de Director, esta pantalla se brindará cuando se haya habilitado el componente checkbox "Actualizable Remotamente" del punto 6.

Luego de ingresar la URL de Director se deberá oprimir el botón "Siguiente". Nota: la URL debe cumplir con el formato https://www.napsedirector.com, de lo contrario, se mostrará el siguiente mensaje “Campos obligatorios o con el formato incorrecto”.

Image Added


8. En la configuración del Driver del Pinpad se deberá seleccionar de la lista desplegable el driver “VISA 0315B 3DES” que permite utilizar el nuevo firmware de Pinpad de Prisma que realiza encriptación en 3DES, como se muestra a continuación:

Image Added


Nota

Para conocer en Windows el puerto donde se encuentra conectado el pinpad, dirigirse a Panel de control > Administrador de dispositivos, desplegar el submenú "Puertos (COM y LPT)" y revisar el COM que aparece. Ejemplo: Verifone Terminal (COM9).


9. Presionar "Instalar" para que se ejecute la instalación.

Image Added


Se podrá observar información detallada de la instalación presionando el botón "Enseñar detalles". Al hacer esto se mostrarán dos solapas:

    • En la solapa "Salida" podrá observar el progreso de la instalación visualizando las tareas ejecutadas por el instalador
    • En la solapa "Errores" se presentan las fallas que tuvieron lugar durante la instalación

Image Added


10. La finalización de la instalación se informa mediante un mensaje de "Terminado".

Oprimir "Aceptar".

Image Added

11. Presionar el botón "Salir" para salir del instalador.

Image Added

Âncora
_Toc508730825
_Toc508730825
5.2 Servicios y Directorios instalados

Finalmente, EMVKIT o EMV Kit queda funcionando como unservicio junto con el componente agente de Director. A continuación, los servicios:


Image Added


Donde:

  • EmvKit: Servicio de EMVKIT o EMV Kit
  • EmvKitDirectorService: Servicio del componente agente de Director correspondiente a EMVKIT o EMV Kit


Âncora
_Toc508730826
_Toc508730826
Dentro del directorio de la instalación (especificado en el punto 6) se encuentra la versión instalada de EMVKIT o EMV Kit con la siguiente estructura de directorios:

Image Added


Carpeta / Archivo

Descripción

backup

Directorio que persistirá los últimos cinco backups de archivos de las versiones instaladas de la solución EMV Kit durante la tarea de instalación

docContiene los archivos map_port.sh y README.txt, los cuales son definidos en la siguiente sección.

emvkit

Contiene todos los archivos requeridos para el funcionamiento del EMV Kit

sdagent

Contiene los archivos del componente agente de Director (configuración, binarios y registros)

sdagentcmds

Contiene los archivos para iniciar/detener/consultar el agente de Director de la solución EMV Kit

tmp

Persiste los archivos de la versión a instalar de la solución EMV Kit durante la tarea de sincronización

util

Contiene las utilidades para la creación de los servicios en Linux

licenseAccepted.sts

Archivo de texto que menciona el nombre de usuario, el mail del usuario y la fecha que aceptó los términos y condiciones de uso

nssm.exe

Aplicación encargada de construir los servicios EmvKit y EmvKitDirectorService para Windows


Âncora
carpetaemvkit
carpetaemvkit
Dentro de la carpeta "emvkit", se obtiene la siguiente estructura de directorios:


Image Added


Carpeta / Archivo

Descripción

config

Contiene los archivos de configuración requeridos para EMVKIT o EMV Kit

lib

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

start.cmd

Archivo de inicio de la aplicación como proceso de Windows

start.sh

Archivo de inicio de la aplicación como proceso de Linux



Âncora
carpetadoc
carpetadoc
Dentro de la carpeta "doc", se encuentran los siguientes archivos:

Image Added


Carpeta / Archivo

Descripción

map_port.sh

Script, exclusivo para entorno Linux (versión soportada por VTOL) e idealmente para que sea ejecutado al inicio del sistema, que permite asignarle un alias específico a los puertos que poseen una conexión establecida con pinpads para poder definirlos por ese alias.

Nota: El alias se configura desde el archivo serialPinPad.properties

README.txt

Documento de texto que informa los objetivos de los archivos contenidos en la carpeta "doc"

Luego de realizar la instalación de emvkit versión 1.11.1 con el drive de 3DES de Prisma, se deberá verificar el archivo serialPinPad.properties que se encuentra en la carpeta config de la instalación de emvkit. A continuación, se muestra que la línea 26 "PPVX820VISA.nativeImpleClass=com.synthesis.vtolClientLib.deviceAdapters.RxTxSimpleSerialNativeLibWrapperImpl" correspondiente a Producción no debe estar comentada: 


Aviso

IMPORTANTE: La instalación mediante el asistente gráfico configurará la solución EMV Kit en su totalidad. En caso de que se precise configurar un archivo de forma manual, se deberá detener el servicio y efectuar el cambio en base a lo explicado en el apartado "Configuración".

5.3 Configuración Pinpad 3DES de Prisma

Luego de realizar la instalación de emvkit versión 1.11.1 con el drive 3DES de Prisma, se debe verificar el archivo "serialPinPad.properties" que se encuentra en la carpeta "config" de la instalación de emvkit. La línea 26 "PPVX820VISA.nativeImpleClass=com.synthesis.vtolClientLib.deviceAdapters.RxTxSimpleSerialNativeLibWrapperImpl" correspondiente a Producción debe estar de la siguiente forma:  

Image Added


Nota
titleCompatibilidad con VTOL Server

La versión de VTOL compatible con la funcionalidad del PIN 3DES es "VTOL CD AR 3.8.1.0"


Âncora
_Toc508730833
_Toc508730833
6. 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.


Âncora
_Toc508730834
_Toc508730834
6.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.


Âncora
_Tipos_de_Operación
_Tipos_de_Operación
Âncora
_Toc508730835
_Toc508730835

...

6.2 Tipos de Operación

EMVKIT reconoce los siguientes tipos de operaciones:

...

  1. Se inicia con el envío de una orden de venta (transacción SaleWallet) por parte del POS a VTOL.
  2. VTOL le envía a GoCuotas el requerimiento de Authentication mediante el endpoint /authentication. Nota: el  el request message solo se envía si no existe un authToken vigente, la vigencia de cada authToken es de 24 hs.
  3. GoCuotas responde a VTOL con el Message message HTTP 200 en donde se envía el Token con la respuesta Aprobadode autenticación aprobado.
  4. Luego VTOL se comunica con GoCuotas mediante endpoint / send_code, en donde se envían todos los datos del necesarios para generar la venta: email, dni, area_code (sin "0"), telephone_number (sin "15"), amount_in_cents, number_of_installments, order_reference_id y Authorization: Bearer.
  5. GoCuotas responde a VTOL con el Message HTTP 201 y el dato del "sale_token" que será el token que representará la nueva venta.
  6. VTOL le responde al POS el isocode 714 y el responseMessage “Orden creada, ingrese el código de verificación”
  7. El POS le envía a VTOL el primer QueryWallet con el campo QueryWallet con el campo 279: softToken.
  8. VTOL se comunica con GoCuotas mediante el enpoint “code_verification” endpoint /code_verification, en donde le envía los campos sale_token, code y Authorization: Bearer. En este endpoint se envía el código de seguridad “code” que recibió el cliente en su celular para validar su identidad.
  9. GoCuotas le responde a VTOL con el dato de la tarjeta (card) que contiene los últimos 4 dígitos y el status de la compradígitos y el status de la compra. GoCuotas responde con toda la información de la venta generada y con los datos del cliente.
  10. VTOL le responde al POS con el isocode 718 y el responseMessage “Confirma la tarjeta recibida”.
  11. El POS le envía a VTOL la segunda QueryWallet enviando el (se envía elcampo 6: cardNumber cardNumber con los últimos cuatro dígitos de la tarjeta para confirmar el pago.como eco del campo 6 de la respuesta de VTOL al POS del paso anterior). 
  12. VTOL se comunica con Gocuotas mediante al endpoint / payments (este endpoint se utiliza para realizar el pago y completar la venta).
  13. GoCuotas responde a VTOL con el status aprobado de la transacción y otros datos.
  14. VTOL le responde a al POS con el estado de la transacción aprobada (isoCode "00" y responseMessage "Aprobada")
  15. Por último, el POS envía el tercer mensaje de “Commit”.

...

  1. Se inicia con el envío de una orden de venta (transacción SaleWallet) por parte del POS a VTOL.
  2. VTOL le envía a GoCuotas el requerimiento de Authentication mediante el endpoint /authentication. Nota: el request message solo se envía si no existe un authToken vigente, la vigencia de cada authToken es de 24 hs.
  3. GoCuotas responde a VTOL con el Message HTTP 200 en donde se envía el Token con la respuesta Aprobadode autenticación aprobado.
  4. Luego VTOL se comunica con GoCuotas mediante endpoint / send_code, en donde se envían los datos del email, dni, area_code (sin "0"), telephone_number (sin "15"), amount_in_cents, number_of_installments, order_reference_id y Authorization: Bearer.
  5. GoCuotas responde a VTOL con el Message HTTP 201 y el dato del "sale_token" . que será el token que representará la nueva venta
  6. VTOL le responde al POS el isocode 714 y el responseMessage “Orden creada, ingrese el código de verificación”
  7. El POS le envía a VTOL el primer QueryWallet con el campo 279: softToken.
  8. VTOL se comunica con GoCuotas mediante el enpoint “code_verification” endpoint / code_verification, en donde le envía los campos sale_token, code y Authorization: Bearer.
  9. GoCuotas le responde a VTOL con el dato de la tarjeta (card) que contiene los últimos 4 dígitos y el status de la compra. GoCuotas responde con toda la información de la venta generada y con los datos del cliente.
  10. VTOL le responde al POS con el isocode 718 y el responseMessage “Confirma la tarjeta recibida”.
  11. El POS le envía a VTOL la segunda QueryWallet con los campos, "6 cardNumber" (dieciséis dígitos de la tarjeta), "8 cvc" (tres dígitos), expirationDate (cuatro dígitos en formato AAMM). También se debe informar el campo "269 WalletType" con GoCuotas.
  12. VTOL le envía a GoCuotas el requerimiento del cambio de tarjeta mediante el endpoint /cards (este endpoint se utiliza en el caso de que el cliente no tenga ninguna tarjeta cargada en el sistema de GoCuotas o si es necesario cambiar de tarjeta para realizar el pago).
  13. GoCuotas le responde a VTOL con los siguientes datos: sale_token, status, last_four_digits, entre otros
  14. VTOL le responde al POS con el isocode 718 y el responseMessage “Confirma la tarjeta recibida”.
  15. El POS le envía a VTOL la tercera QueryWallet con el "campo 6: cardNumber" en donde se deben ingresar los cuatro últimos dígitos de la tarjeta para confirma confirmar el pago.
  16. VTOL se comunica con Gocuotas mediante al el endpoint / payments  (este endpoint se utiliza para realizar el pago y completar la venta).
  17. GoCuotas responde a VTOL con los campos payment_successfully_confirmed: true, "status": "approved", card, entre otros.
  18. VTOL le envía al POS el response message "Aprobada".

...

  1. Se inicia con el envío de una orden de venta (transacción SaleWallet) por parte del POS a VTOL.
  2. VTOL le envía a GoCuotas el requerimiento de Authentication mediante el endpoint /authentication. Nota: el request message solo se envía si no existe un authToken vigente, la vigencia de cada authToken es de 24 hs.
  3. GoCuotas responde a VTOL con el Message HTTP 200 en donde se envía el Token con la respuesta Aprobadode autenticación aprobado.
  4. Luego VTOL se comunica con GoCuotas mediante endpoint / send_code, en donde se envían los datos del email, dni, area_code (sin "0"), telephone_number (sin "15"), amount_in_cents, number_of_installments, order_reference_id y Authorization: Bearer.
  5. GoCuotas responde a VTOL con el Message HTTP 201 y el dato del "sale_token" que será el token que representará la nueva venta.
  6. VTOL le responde al POS el isocode 714 y el responseMessage “Orden creada, ingrese el código de verificación”
  7. El POS le envía a VTOL el primer QueryWallet con el campo 279: softToken.
  8. VTOL se comunica con GoCuotas mediante el enpoint “code_verification” endpoint / code_verification, en donde le envía los campos sale_token, code y Authorization: Bearer.
  9. GoCuotas le responde a VTOL con el dato de la tarjeta (card) que contiene los últimos 4 dígitos y el status de la compra. GoCuotas responde con toda la información de la venta generada y con los datos del cliente.
  10. VTOL le responde al POS con el isocode 718 y el responseMessage “Confirma la tarjeta recibida”.
  11. El POS le envía a VTOL la segunda QueryWallet con los campos, "6 cardNumber" (dieciséis dígitos de la tarjeta), "8 cvc" (tres dígitos), expirationDate (cuatro dígitos en formato AAMM). También se debe informar el campo "269 WalletType" con GoCuotas.
  12. VTOL le envía a GoCuotas el requerimiento del cambio de tarjeta mediante el endpoint /cardscards (este endpoint se utiliza en el caso de que el cliente no tenga ninguna tarjeta cargada en en el sistema de GoCuotas o si es necesario cambiar de tarjeta para realizar el pago).
  13. GoCuotas le responde a VTOL con los siguientes datos: sale_token, status, last_four_digits, entre otros
  14. VTOL le responde al POS con el isocode 718 y el responseMessage “Confirma la tarjeta recibida”.
  15. El POS le envía a VTOL la tercera QueryWallet con el "campo 6: cardNumber" en donde se deben ingresar los cuatro últimos dígitos de la tarjeta para confirma el pago.
  16. VTOL se comunica con Gocuotas mediante el endpoint / payments. Se valida que se excede el tiempo determinado de 2 minutos para realizar el pago.
  17. GoCuotas responde "Response message: (confirmed: false....)"
  18. Vtol responde al POS "Response message: Error 604, No se puede realizar el pago, reinicie la operación"
  19. Se reitera nuevamente el envío de una orden de venta (transacción SaleWallet) por parte del POS a VTOL.
  20. VTOL se comunica con GoCuotas mediante el endpoint / send_code, en donde se envían los datos del email, dni, area_code (sin "0"), telephone_number (sin "15"), amount_in_cents, number_of_installments, order_reference_id y Authorization: Bearer.
  21. GoCuotas responde a VTOL con el Message HTTP 200 (verificar cód de respuesta) y el dato del "sale_token".
  22. VTOL le responde al POS el isocode 714 y el responseMessage “Orden creada, ingrese el código de verificación”
  23. El POS le envía a VTOL la cuarta QueryWallet con el campo 279: softToken.
  24. VTOL se comunica con GoCuotas mediante el enpoint “code_verification”, en donde le envía los campos sale_token, code y Authorization: Bearer.
  25. El POS le envía a VTOL la quinta QueryWallet enviando el campo 6: cardNumber con los últimos cuatro dígitos de la tarjeta para confirmar el pago.
  26. VTOL se comunica con Gocuotas mediante al endpoint / payments.
  27. GoCuotas responde a VTOL con el status aprobado de la transacción y otros datos para finalizar el pago.
  28. VTOL le responde a POS con el estado de la transacción aprobada (isoCode "00" y responseMessage "Aprobada")
  29. Por último, el POS envía el tercer mensaje de “Commit”.

...

  1. El POS le envía a VTOL la operación “RefundWallet” con los campos 271 walletPaymentId, 24 trxId (opcional) y el 12 Ammount. Nota: si la devolución es por el monto total de la compra, se deberá enviar en el campo 12 el importe total. Si el importe que se desea devolver es menor al total de la compra, se deberá enviar el importe en dicho campo, y se refiere a una compra parcial.
  2. VTOL se comunica con GoCuotas mediante el endpoint / orders para consultar la orden, en donde se envía el saleToken y el Authorization: Bearer.
  3. GoCuotas responde con el código HTTP 200 y con el status de la solicitud del refundwallet de la transacción de compra y los datos de la operación.
  4. Vtol VTOL le responde al POS el estado de la transacción de RefundWallet.
  5. VTOL se comunica con GoCuotas mediante el endpoint / refund para solicitar la devolución total o parcial de una venta. Se envían los parámetros sale_token y el amount_in_cents.
  6. GoCuotas le responde a VTOL con datos de la transacción del refundWallet. Si la devolución se realiza por el monto total de la compra, entonces en el campo status aparece “denied”. Si el monto es menor que el importe total de la compra , entonces aparece “Approved”.

...

Código

Nombre del campo

Tipo de dato

SaleWallet

QueryWallet (1)

QueryWallet (2)

Descripción

1

store

Alfanumérico

X

X

X

Identificador del sitio originador de la transacción

2

node

Numérico

X

X

X

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

3

server

Alfanumérico

X

X

X

Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')

4

messageType

Alfanumérico

X

X

X

Tipo de Mensaje:

  • Control = Mensaje de Control, para uso interno por parte de un módulo en su comunicación con el server.
  • Data = Mensaje de la Aplicación cliente.

6

cardNumber

Numérico

-

-

X

Tarjeta enmascarada seleccionada por el cliente al momento de efectuar el pago QR. Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pagode efectuar el pago.

Nota: se envía como eco del campo 6 de la respuesta de VTOL al POS.

7

expiration

Numérico

-

-

-

Indica el año y el mes de vencimiento de la tarjeta (cuatro dígitos en formato AAMM). Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.

8

cvc

Numérico

-

-

-

Indica los tres dígitos de atrás de la tarjeta. Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.

11

trxType

Alfanumérico

X

X

X

Tipo de Transacción:

  • SaleWallet = permite realizar una compra presencial con billetera. 
  • RefundWallet = permite realizar una devolución (parcial o total) de una compra presencial con billetera realizada con anterioridad.
  • QueryWallet= permite realizar una consulta de una operación de compra con billetera

12

ammount

Importe

X

-

O

Monto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales.

13

currencyPosCode 

Alfanumérico

X

-

-

Tipos de moneda:

$ = Pesos

U$S = Dólares

14

payments

Numérico

X

-

 O

Cantidad de cuotas seleccionadas al momento de realizar el pago QR. Solo se admiten los valores 2, 3 y 4.

16

originalDate

 Numérico

-

X

X

Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD

24

trxId

Numérico

-

-

-

Identificador de la transacción

25

dateTime

Numérico

X

X

X

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

71

checkPendingString

Alfanumérico

X

O

-

Indica si VTOL debe o no efectuar el chequeo de pendientes:

  • true = activa chequeo de pendientes.
  • false = desactiva chequeo de pendientes.

157

customerDoc

Numérico

X

-

 -

Número de documento del cliente que realiza la consulta.

268

walletPosTrxId

Alfanumérico

X

X

X

Identificador único de la transacción de billetera para la compañía. Debe ser único por tipo de transacción. Es originado por el POS para realizar una compra o devolución con billetera.

Formato:
codigoTienda (longitud 10) + codigoCaja (longitud 10) + Fecha (AAMMDDHHmmss) (longitud 12)
Longitud total de 32

269

walletType

Numérico

X

X

X

Tipo de billetera por la cual se cursará la transacción en el POS. Opciones:

1: Mercado Pago

5: Yacaré

6: Plus Pagos

8: Rappi Payless

10: GoCuotas

270

walletPosTicket

Alfanumérico

X

X

-

Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura posTicket

271

walletPaymentId

 Numérico

-

-

-

Identificador del número de pago informado por el Autorizador.

279

softToken

Alfanumérico

-

X

-

Token generado por la app mobile. Este token se lo informa el cliente al cajero, para que sea ingresado en el POS.

Obligatorio junto con customerDoc, únicamente si el modo de ingreso es softToken.

401

paymentMethodsData

Json

-

-

-

Información de los planes de pago, en formato json

402

walletBenefits

Json

-

-

-

Información de las tarjetas de beneficio, en formato json

416

customerPhoneAreaCode

Numérico

X

-

-

Código de área de teléfono celular del cliente

417

customerPhone

Numérico

X

-

-

Teléfono celular del cliente 

418

customerEmail 

Alfanumérico

X

-

-

Mail del cliente

...

Código

Nombre del campo

Tipo de dato

SaleWallet

QueryWallet (1)

QueryWallet (2)

Descripción

1

store

Alfanumérico

XXX

Identificador del sitio originador de la transacción

2

node

Numérico

XXX

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

3

server

Alfanumérico

-X-

Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')

4

messageType

Alfanumérico

 ---

Tipo de Mensaje:

  • Control = Mensaje de Control, para uso interno por parte de un módulo en su comunicación con el server.
  • Data = Mensaje de la Aplicación cliente.

6

cardNumber

Numérico

-X-

Tarjeta enmascarada seleccionada por el cliente al momento de efectuar el pago QR.

11

trxType

Alfanumérico

---

Tipo de Transacción:

  • SaleWallet = permite realizar una compra presencial con billetera. 
  • RefundWallet = permite realizar una devolución (parcial o total) de una compra presencial con billetera realizada con anterioridad.
  • QueryWallet= permite realizar una consulta de una operación de compra con billetera

12

ammount

Importe

XXX

Monto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales.

13

currencyPosCode 

Alfanumérico

XXX

Tipos de moneda:

$ = Pesos

U$S = Dólares

14

payments

Numérico

X-X

Cantidad de cuotas seleccionadas al momento de realizar el pago QR. Solo se admiten los valores 2, 3 y 4.

16

originalDate

 Numérico

---

Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD

24

trxId

Numérico

XXX

Identificador de la transacción

25

dateTime

Numérico

XXX

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

26

responseCode

Alfanumérico

XXX

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

XXX

Código de Respuesta emitido por el centro autorizador. 3 dígitos como máximo.

28

responseMessage

Alfanumérico

XXX

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

71

checkPendingString

Alfanumérico

---

Indica si VTOL debe o no efectuar el chequeo de pendientes:

  • true = activa chequeo de pendientes.
  • false = desactiva chequeo de pendientes.

140

paymentType

Numérico

XXX

Tipo de pago. Valores posibles 0: Tarjeta

157

customerDoc

Numérico

---

Número de documento del cliente que realiza la consulta.

166

trxReferenceNumber

Numérico

X--

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

268

walletPosTrxId

Alfanumérico

-

--

Identificador único de la transacción de billetera para la compañía. Debe ser único por tipo de transacción. Es originado por el POS para realizar una compra o devolución con billetera.

Formato:
codigoTienda (longitud 10) + codigoCaja (longitud 10) + Fecha (AAMMDDHHmmss) (longitud 12)
Longitud total de 32

Opcional en QueryWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra

269

walletType

Numérico

-

--

Tipo de billetera por la cual se cursará la transacción en el POS. Opciones:

10: GoCuotas

270

walletPosTicket

Alfanumérico

-

--

Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura posTicket

271

walletPaymentId

 Numérico

X

XX

Identificador del número de pago informado por el Autorizador.

273

paymentStatus

Alfanumérico

X

XX

Estado de la transacción de pago informado por el Autorizador. Estados posibles:

0: Aprobado
1: Devuelto
2: Pendiente
3: Autorizado
4: En Progreso
5: En mediacion
6: Rechazado
7: Cancelado
8: Contracargo
9: Reversado

274

paymentStatusDetail

Alfanumérico

-

XX

Detalle del estado de la transacción de pago informado por el Autorizador

275

cardType

Numérico

X

XX

Tipo de tarjeta seleccionada al momento de efectuar el pago QR.

416

customerPhoneAreaCode

Numérico

-

--

Código de área de teléfono celular del cliente

417

customerPhone

Numérico

-

--

Teléfono celular del cliente 

418

customerEmail 

Alfanumérico

-

--

Mail del cliente

512

installmentAmount

Numérico

-

O-

Importe de cuota.
El campo es opcional porque no llega siempre a la caja la información. Es un dato que manda VTOL al POS, previamente informado por GoCuotas.

1010

currentSessionId

Numérico

XXX

Identificador de la sesión que se cierra

1027

libResponseCode

Numérico

XXX

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

XXX

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

...

Código

Nombre del campo

Tipo de dato

SaleWallet

QueryWallet (1)

QueryWallet (2) 

QueryWallet (3)

Descripción

1

store

Alfanumérico

X

X

X

X

Identificador del sitio originador de la transacción

2

node

Numérico

X

X

X

X

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

3

server

Alfanumérico

X

X

X

X

Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')

4

messageType

Alfanumérico

X

X

X

X

Tipo de Mensaje:

  • Control = Mensaje de Control, para uso interno por parte de un módulo en su comunicación con el server.
  • Data = Mensaje de la Aplicación cliente.

6

cardNumber

Numérico

-

-

X

X

Tarjeta enmascarada seleccionada por el cliente al momento de efectuar el pago QR. Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.

7

expiration

Numérico

-

-

X

-

Indica el año y el mes de vencimiento de la tarjeta (cuatro dígitos en formato AAMM). Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.

8

cvc

Numérico

-

-

X

-

Indica los tres dígitos de atrás de la tarjeta. Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.

11

trxType

Alfanumérico

X

X

X

X

Tipo de Transacción:

  • SaleWallet = permite realizar una compra presencial con billetera. 
  • RefundWallet = permite realizar una devolución (parcial o total) de una compra presencial con billetera realizada con anterioridad.
  • QueryWallet= permite realizar una consulta de una operación de compra con billetera

12

ammount

Importe

X

-

X

X

Monto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales.

13

currencyPosCode 

Alfanumérico

X

-

-

-

Tipos de moneda:

$ = Pesos

U$S = Dólares

14

payments

Numérico

X

-

X

 X

Cantidad de cuotas seleccionadas al momento de realizar el pago QR. Solo se admiten los valores 2, 3 y 4.

16

originalDate

 Numérico

-

X

X

X

Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD

24

trxId

Numérico

-

-

-

-

Identificador de la transacción

25

dateTime

Numérico

X

X

X

X

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

71

checkPendingString

Alfanumérico

X

O

-

-

Indica si VTOL debe o no efectuar el chequeo de pendientes:

  • true = activa chequeo de pendientes.
  • false = desactiva chequeo de pendientes.

157

customerDoc

Numérico

X

-

-

 -

Número de documento del cliente que realiza la consulta.

268

walletPosTrxId

Alfanumérico

X

X

X

X

Identificador único de la transacción de billetera para la compañía. Debe ser único por tipo de transacción. Es originado por el POS para realizar una compra o devolución con billetera.

Formato:
codigoTienda (longitud 10) + codigoCaja (longitud 10) + Fecha (AAMMDDHHmmss) (longitud 12)
Longitud total de 32

269

walletType

Numérico

X

X

X

X

Tipo de billetera por la cual se cursará la transacción en el POS. Opciones:

10: GoCuotas

270

walletPosTicket

Alfanumérico

X

X

-

-

Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura posTicket

271

walletPaymentId

 Numérico

-

-

-

-

Identificador del número de pago informado por el Autorizador.

279

softToken

Alfanumérico

-

X

-

-

Token generado por la app mobile. Este token se lo informa el cliente al cajero, para que sea ingresado en el POS.

Obligatorio junto con customerDoc, únicamente si el modo de ingreso es softToken.

401

paymentMethodsData

Json

-

-

-

-

Información de los planes de pago, en formato json

402

walletBenefits

Json

-

-

-

-

Información de las tarjetas de beneficio, en formato json

416

customerPhoneAreaCode

Numérico

X

-

-

-

Código de área de teléfono celular del cliente

417

customerPhone

Numérico

X

-

-

-

Teléfono celular del cliente 

418

customerEmail 

Alfanumérico

X

-

-

-

Mail del cliente

...

Código

Nombre del campo

Tipo de dato

SaleWallet

QueryWallet (1)

QueryWallet (2)

QueryWallet (3)

Descripción

1

store

Alfanumérico

XXXX

Identificador del sitio originador de la transacción

2

node

Numérico

XXXX

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

3

server

Alfanumérico

-X--

Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')

4

messageType

Alfanumérico

----

Tipo de Mensaje:

  • Control = Mensaje de Control, para uso interno por parte de un módulo en su comunicación con el server.
  • Data = Mensaje de la Aplicación cliente.

6

cardNumber

Numérico

-XX-

Tarjeta enmascarada seleccionada por el cliente al momento de efectuar el pago, para darle a éste la posibilidad de confirmar o cambiar el medio de pago QR.

11

trxType

Alfanumérico

----

Tipo de Transacción:

  • SaleWallet = permite realizar una compra presencial con billetera. 
  • RefundWallet = permite realizar una devolución (parcial o total) de una compra presencial con billetera realizada con anterioridad.
  • QueryWallet= permite realizar una consulta de una operación de compra con billetera

12

ammount

Importe

XXXX

Monto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales.

13

currencyPosCode 

Alfanumérico

XXXX

Tipos de moneda:

$ = Pesos

U$S = Dólares

14

payments

Numérico

X-XX

Cantidad de cuotas seleccionadas al momento de realizar el pago QR. Solo se admiten los valores 2, 3 y 4.

16

originalDate

 Numérico

----

Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD

24

trxId

Numérico

XXXX

Identificador de la transacción

25

dateTime

Numérico

XXXX

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

26

responseCode

Alfanumérico

XXXX

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

XXXX

Código de Respuesta emitido por el centro autorizador. 3 dígitos como máximo.

28

responseMessage

Alfanumérico

XXXX

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

71

checkPendingString

Alfanumérico

----

Indica si VTOL debe o no efectuar el chequeo de pendientes:

  • true = activa chequeo de pendientes.
  • false = desactiva chequeo de pendientes.

140

paymentType

Numérico

XXXX

Tipo de pago. Valores posibles 0: Tarjeta

157

customerDoc

Numérico

----

Número de documento del cliente que realiza la consulta.

166

trxReferenceNumber

Numérico

X---

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

268

walletPosTrxId

Alfanumérico

-

---

Identificador único de la transacción de billetera para la compañía. Debe ser único por tipo de transacción. Es originado por el POS para realizar una compra o devolución con billetera.

Formato:
codigoTienda (longitud 10) + codigoCaja (longitud 10) + Fecha (AAMMDDHHmmss) (longitud 12)
Longitud total de 32

Opcional en QueryWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra

269

walletType

Numérico

-

---

Tipo de billetera por la cual se cursará la transacción en el POS. Opciones:

10: GoCuotas

270

walletPosTicket

Alfanumérico

-

---

Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura posTicket

271

walletPaymentId

 Numérico

X

XXX

Identificador del número de pago informado por el Autorizador.

273

paymentStatus

Alfanumérico

X

XXX

Estado de la transacción de pago informado por el Autorizador. Estados posibles:

0: Aprobado
1: Devuelto
2: Pendiente
3: Autorizado
4: En Progreso
5: En mediacion
6: Rechazado
7: Cancelado
8: Contracargo
9: Reversado

274

paymentStatusDetail

Alfanumérico

-

XXX

Detalle del estado de la transacción de pago informado por el Autorizador

275

cardType

Numérico

X

XXX

Tipo de tarjeta seleccionada al momento de efectuar el pago QR.

416

customerPhoneAreaCode

Numérico

-

---

Código de área de teléfono celular del cliente

417

customerPhone

Numérico

-

---

Teléfono celular del cliente 

418

customerEmail 

Alfanumérico

-

---

Mail del cliente

512

installmentAmount

Numérico

-

O--

Importe de cuota. 
El campo es opcional porque no llega siempre a la caja la información. Es un dato que manda VTOL al POS, previamente informado por GoCuotas.

1010

currentSessionId

Numérico

XXXX

Identificador de la sesión que se cierra

1027

libResponseCode

Numérico

XXXX

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

XXXX

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

...

CódigoNombre del campoTipo de datoQueryWallet (Operación)Descripción
1storeAlfanuméricoXIdentificador del sitio originador de la transacción
2nodeNuméricoXIdentificación del nodo, en el sitio originador, donde se generó la transacción
3serverAlfanuméricoXIdentificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')
4messageTypeAlfanuméricoX

Tipo de Mensaje:

Control = Mensaje de Control, para uso interno por parte de un módulo en su comunicación con el server.

Data = Mensaje de la Aplicación cliente.

6cardNumberNumérico-

Tarjeta enmascarada seleccionada por el cliente al momento de efectuar el pago

QR

. Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.

7expirationNumérico-Indica el año y el mes de vencimiento de la tarjeta (cuatro dígitos en formato AAMM). Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.
8cvcNumérico-Indica los tres dígitos de atrás de la tarjeta. Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.
11trxTypeAlfanuméricoX

Tipo de Transacción:

SaleWallet = permite realizar una compra presencial con billetera. 

RefundWallet = permite realizar una devolución (parcial o total) de una compra presencial con billetera realizada con anterioridad.

QueryWallet= permite realizar una consulta de una operación de compra con billetera

12ammountImporte-Monto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales.
13currencyPosCode Alfanumérico-

Tipos de moneda:

$ = Pesos

U$S = Dólares

14paymentsNumérico -Cantidad de cuotas seleccionadas al momento de realizar el pago QR. Solo se admiten los valores 2, 3 y 4.
16originalDate NuméricoXFecha de realización de la compra con billetera electrónica en formato YYYYMMDD
24trxIdNumérico-Identificador de la transacción
25dateTimeNuméricoXFecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS
71checkPendingStringAlfanuméricoX

Indica si VTOL debe o no efectuar el chequeo de pendientes:

true = activa chequeo de pendientes.

false = desactiva chequeo de pendientes.

157customerDocNumérico -Número de documento del cliente que realiza la consulta.
268walletPosTrxIdAlfanuméricoX

Identificador único de la transacción de billetera para la compañía. Debe ser único por tipo de transacción. Es originado por el POS para realizar una compra o devolución con billetera.

Formato:

codigoTienda (longitud 10) + codigoCaja (longitud 10) + Fecha (AAMMDDHHmmss) (longitud 12)

Longitud total de 32

269walletTypeNuméricoX

Tipo de billetera por la cual se cursará la transacción en el POS. Opciones:

1: Mercado Pago

5: Yacaré

6: Plus Pagos

8: Rappi Payless

10: GoCuotas

270walletPosTicketAlfanumérico-Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura posTicket
271walletPaymentId Numérico-Identificador del número de pago informado por el Autorizador.
416customerPhoneAreaCodeNumérico-Código de área de teléfono celular del cliente
417customerPhoneNumérico-Teléfono celular del cliente 
418customerEmail Alfanumérico-Mail del cliente

...

CódigoNombre del campoTipo de datoQueryWallet (Operación)Descripción
1storeAlfanuméricoXIdentificador del sitio originador de la transacción
2nodeNuméricoXIdentificación del nodo, en el sitio originador, donde se generó la transacción
3serverAlfanumérico-Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')
4messageTypeAlfanumérico-

Tipo de Mensaje:

Control = Mensaje de Control, para uso interno por parte de un módulo en su comunicación con el server.

Data = Mensaje de la Aplicación cliente.

11trxTypeAlfanumérico-

Tipo de Transacción:

SaleWallet = permite realizar una compra presencial con billetera. 

RefundWallet = permite realizar una devolución (parcial o total) de una compra presencial con billetera realizada con anterioridad.

QueryWallet= permite realizar una consulta de una operación de compra con billetera

12ammountImporteXMonto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales.
13currencyPosCode AlfanuméricoX

Tipos de moneda:

$ = Pesos

U$S = Dólares

14paymentsNuméricoXCantidad de cuotas seleccionadas al momento de realizar el pago QR. Solo se admiten los valores 2, 3 y 4.
16originalDate Numérico-Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD
24trxIdNuméricoXIdentificador de la transacción
25dateTimeNuméricoXFecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS
26responseCodeAlfanuméricoX

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

27isoCode NuméricoXCódigo de Respuesta emitido por el centro autorizador. 3 dígitos como máximo.
28responseMessageAlfanuméricoXMensaje de la Respuesta relacionado con el código del campo 27
71checkPendingStringAlfanumérico-

Indica si VTOL debe o no efectuar el chequeo de pendientes:

true = activa chequeo de pendientes.

false = desactiva chequeo de pendientes.

140paymentTypeAlfanuméricoXTipo de pago. Valore posible 0: Tarjeta
157customerDocNumérico-Número de documento del cliente que realiza la consulta.
166trxReferenceNumberNumé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
268walletPosTrxIdAlfanumérico-

Identificador único de la transacción de billetera para la compañía. Debe ser único por tipo de transacción. Es originado por el POS para realizar una compra o devolución con billetera.

Formato:

codigoTienda (longitud 10) + codigoCaja (longitud 10) + Fecha (AAMMDDHHmmss) (longitud 12)

Longitud total de 32

Opcional en QueryWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra

269walletTypeNumérico-

Tipo de billetera por la cual se cursará la transacción en el POS. Opciones:

1: Mercado Pago

5: Yacaré

6: Plus Pagos

8: Rappi Payless

10: GoCuotas

270walletPosTicketAlfanumérico-Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura posTicket
271walletPaymentId NuméricoXIdentificador del número de pago informado por el Autorizador.
273paymentStatusAlfanuméricoX

Estado de la transacción de pago informado por el Autorizador. Estados posibles:

0: Aprobado

1: Devuelto

2: Pendiente

3: Autorizado

4: En Progreso

5: En mediacion

6: Rechazado

7: Cancelado

8: Contracargo

9: Reversado

274paymentStatusDetail
XDetalle del estado de la transacción de pago informado por el Autorizador
275cardTypeNuméricoXTipo de tarjeta seleccionada al momento de efectuar el pago QR.
416customerPhoneAreaCodeNumérico-Código de área de teléfono celular del cliente
417customerPhoneNumérico-Teléfono celular del cliente 
418customerEmail Alfanumérico-Mail del cliente

...

CódigoNombre del campoTipo de datoRefundWalletDescripción
1storeAlfanuméricoXIdentificador del sitio originador de la transacción
2nodeNuméricoXIdentificación del nodo, en el sitio originador, donde se generó la transacción
3serverAlfanuméricoXIdentificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')
4messageTypeAlfanuméricoX

Tipo de Mensaje:

Control = Mensaje de Control, para uso interno por parte de un módulo en su comunicación con el server.

Data = Mensaje de la Aplicación cliente.

6cardNumberNumérico-Tarjeta enmascarada seleccionada por el cliente al momento de efectuar el pago QR. Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.
7expirationNumérico-Indica el año y el mes de vencimiento de la tarjeta (cuatro dígitos en formato AAMM). Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.
8cvcNumérico-Indica los tres dígitos de atrás de la tarjeta. Este campo se envía solo si se realiza el cambio de tarjeta para realizar el pago.
11trxTypeAlfanuméricoX

Tipo de Transacción:

SaleWallet = permite realizar una compra presencial con billetera. 

RefundWallet = permite realizar una devolución (parcial o total) de una compra presencial con billetera realizada con anterioridad.

QueryWallet= permite realizar una consulta de una operación de compra con billetera

12ammountImporteXMonto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales.
13currencyPosCode AlfanuméricoX

Tipos de moneda:

$ = Pesos

U$S = Dólares

14paymentsNuméricoXCantidad de cuotas seleccionadas al momento de realizar el pago QR. Solo se admiten los valores 2, 3 y 4.
16originalDate Numérico-Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD
24trxIdNuméricoXIdentificador de la transacción
25dateTimeNuméricoXFecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS
71checkPendingStringAlfanuméricoX

Indica si VTOL debe o no efectuar el chequeo de pendientes:

true = activa chequeo de pendientes.

false = desactiva chequeo de pendientes.

157customerDocNumérico-Número de documento del cliente que realiza la consulta.
268walletPosTrxIdAlfanuméricoX

Identificador único de la transacción de billetera para la compañía. Debe ser único por tipo de transacción. Es originado por el POS para realizar una compra o devolución con billetera.

Formato:

codigoTienda (longitud 10) + codigoCaja (longitud 10) + Fecha (AAMMDDHHmmss) (longitud 12)

Longitud total de 32

Opcional en QueryWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra

269walletTypeNuméricoX

Tipo de billetera por la cual se cursará la transacción en el POS. Opciones:

1: Mercado Pago

5: Yacaré

6: Plus Pagos

8: Rappi Payless

10: GoCuotas

270walletPosTicketAlfanuméricoInformación del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura posTicket.
271walletPaymentId NuméricoXIdentificador del número de pago informado por el Autorizador.
416customerPhoneAreaCodeNumérico-Código de área de teléfono celular del cliente
417customerPhoneNumérico-Teléfono celular del cliente 
418customerEmail Alfanumérico-Mail del cliente

...

CódigoNombre del campoTipo de datoSaleWalletRefundWalletQueryWalletDescripción
1storeAlfanuméricoXXXIdentificador del sitio originador de la transacción
2nodeNuméricoXXXIdentificación del nodo, en el sitio originador, donde se generó la transacción
3serverAlfanumérico---Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')
4messageTypeAlfanumérico ---

Tipo de Mensaje:

Control = Mensaje de Control, para uso interno por parte de un módulo en su comunicación con el server.

Data = Mensaje de la Aplicación cliente.

11trxTypeAlfanumérico---

Tipo de Transacción:

SaleWallet = permite realizar una compra presencial con billetera. 

RefundWallet = permite realizar una devolución (parcial o total) de una compra presencial con billetera realizada con anterioridad.

QueryWallet= permite realizar una consulta de una operación de compra con billetera

12ammountImporteX-XMonto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales.
13currencyPosCode AlfanuméricoX-X

Tipos de moneda:

$ = Pesos

$S = Dólares

14paymentsNuméricoX-XCantidad de cuotas seleccionadas al momento de realizar el pago QR. Solo se admiten los valores 2, 3 y 4.
16originalDate Numérico---Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD
24trxIdNuméricoXXXIdentificador de la transacción
25dateTimeNuméricoXXXFecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS
26responseCodeAlfanuméricoXXX

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

27isoCode NuméricoXXXCódigo de Respuesta emitido por el centro autorizador. 3 dígitos como máximo.
28responseMessageAlfanuméricoXXXMensaje de la Respuesta relacionado con el código del campo 27
71checkPendingStringAlfanumérico---

Indica si VTOL debe o no efectuar el chequeo de pendientes:

true = activa chequeo de pendientes.

false = desactiva chequeo de pendientes.

140paymentTypeAlfanuméricoX-XTipo de pago. Valore posible 0: Tarjeta
157customerDocNumérico---Número de documento del cliente que realiza la consulta.
166trxReferenceNumberNuméricoXX-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
268walletPosTrxIdAlfanumérico---

Identificador único de la transacción de billetera para la compañía. Debe ser único por tipo de transacción. Es originado por el POS para realizar una compra o devolución con billetera.

Formato:

codigoTienda (longitud 10) + codigoCaja (longitud 10) + Fecha (AAMMDDHHmmss) (longitud 12)

Longitud total de 32

Opcional en QueryWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra

269walletTypeNumérico---

Tipo de billetera por la cual se cursará la transacción en el POS. Opciones:

1: Mercado Pago

5: Yacaré

6: Plus Pagos

8: Rappi Payless

10: GoCuotas

270walletPosTicketAlfanumérico---Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura posTicket
271walletPaymentId NuméricoX-XIdentificador del número de pago informado por el Autorizador.
273paymentStatusAlfanuméricoX-X

Estado de la transacción de pago informado por el Autorizador. Estados posibles:

0: Aprobado

1: Devuelto

2: Pendiente

3: Autorizado

4: En Progreso

5: En mediacion

6: Rechazado

7: Cancelado

8: Contracargo

9: Reversado

274paymentStatusDetail
--XDetalle del estado de la transacción de pago informado por el Autorizador
275cardTypeNuméricoX-XTipo de tarjeta seleccionada al momento de efectuar el pago QR.
416customerPhoneAreaCodeNumérico---Código de área de teléfono celular del cliente
417customerPhoneNumérico---Teléfono celular del cliente 
418customerEmail Alfanumérico---Mail del cliente

...

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



Âncora
_Toc430706528
_Toc430706528
Âncora
_Toc508730836
_Toc508730836

...

6.3 Autorización Aprobada

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

...

En este caso, si el valor de isoCode es igual a 00, 11 o 85 indica que la autorización ha sido Aprobada por VTOL Server y que debe capturarse el valor del campo 24 (lastTrxId) para ser enviado en el cierre de sesión:

24

lastTrxId


Âncora
integracionesCtls
integracionesCtls

...

6.4 Integraciones para operar con tarjetas Contactless


Aviso
titleImportante

Únicamente se podrá operar con los siguientes Pinpad:

  • First Data con firmware A809R02 o superior. Se debe configurar en EMVKit la versión de Firmware:
    • En el archivo devices.properties se debe habilitar el siguiente driver: pinPad_driver=com.synthesis.vtol.ar.client.devices.posnet.PinpadVx820A0809PosnetDriver

  • Prisma con firmware 0319B15 o superior. Se debe configurar en EMVKit la versión de Firmware:
    • En el archivo devices.properties se debe habilitar el siguiente driver: pinPad_driver=com.synthesis.vtol.ar.client.devices.visa.PinpadVx8200319B05VisaDriver

...

El sistema POS podrá integrar operaciones con tarjetas Contactless, de dos formas posibles:

...

6.4.1 Interacción única

Sólo existirá una única interacción entre el POS e EMVKit. Será la única manera de operar con tarjetas Contactless. Ver mensajería

...

  • En caso de querer operar con Cashback, dicho monto debe enviarse sin conocer si la tarjeta lo tiene habilitado y sin conocer los límites permitidos.
  • Si el POS no envía todos los campos de la operación en la primer interacción, EMVKit manejará doble interacción con el POS (flujo tradicional: lectura y procesamiento), pero no se podrá utilizar lectura Contactless.

...


6.4.2 Interacción doble con el POS

En los casos de doble interacción, el POS deberá enviar en la primer interacción el importe de la operación y pudiendo o no enviar el importe de cashback. Luego en la segunda interacción, el importe de la operación podrá ser modificado, debido a la aplicación de descuentos o intereses sobre cuotas.

...

Nota
titleImportante

En las transacciones con lectura Contactless con pinpad de First Data, EMVKit responderá al POS campos con información sobre la impresión de copia del cliente y la firma del cliente. Dichos campos son: clientCopyVoucher y requiresSignature

clientCopyVoucher (Consulta por copia para cliente)

Si el valor es "false", imprimir copia al cliente sin consultarlo. Si el valor es "true", consultar al cliente si quiere copia del voucher.

requiresSignature (Solicita firma del cliente en el ticket)

Si el valor es "false", no se deberá solicitar firma del cliente. Si el valor es "true", se deberá solicitar firma al cliente.


El manejo de los resultado de estos campos, para la utilización de impresión de voucher por parte del pinpad de First Data, queda bajo responsabilidad del sistema de POS.



Âncora
_Toc508730837
_Toc508730837

...

7. Anexos

Âncora
_Códigos_de_Respuesta
_Códigos_de_Respuesta

Âncora
_Toc508730838
_Toc508730838

...

7.1 Códigos de Respuesta de EMVKIT

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

...

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

013(PINPAD) Error de lectura. Intente nuevamenteEl PINPAD genera un error en la lectura de una tarjeta Chip.
019(PINPAD) Error falta Master KeyEl PINPAD informa que falta la master key.
025(PINPAD) Error CTLS - Intente por chipEl PINPAD informa que no pudo leer por contactless.

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.

Además en la respuesta se incluye el campo 1010 (currentSessionId) que es el identificador de la sesión actual.

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 válida.

199

TimeOut

EMVKIT suspendió la operación por Timeout

700No opera Offline

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

707Monto inválidoCuando el monto off-line excede el límite configurado en el servidor.
708Monto Cash Back inválidoCuando el monto cashback excede el límite configurado en el servidor.
711Error cancelando las transacciones. Existe una inconsistenciaCuando no logra realizar un rollback sobre una transacción existente en la sesión.
713Transaccion invalidaCuando el dispositivo no soporta el tipo de transacción ingresado.
718Modo de ingreso invalidoCuando la lectura realizada por el PINPAD no es soportada por la versión de EMVKIT.
719Error en impresion de voucherExistió un error y el comprobante no se puede imprimir
720No permite operar con la tarjeta ingresadaCuando el tipo de transacción que se intenta realizar no soporta la tarjeta ingresada.
721Transaccion no soporta cashbackCuando el tipo de transacción que se intenta realizar no soporta cashback.
722Falta de papel en dispositivoEl pinpad se queda sin papel y no se puede imprimir el voucher.
723Excede el máximo de líneas permitidoEl pinpad no puede imprimir el voucher genérico debido a que excede la cantidad de líneas permitidas.
724Modo Ingreso ErrorEl PINPAD no permite el tipo de ingreso recibido.
725Error en la configuracion del sistemaCuando se requiere un cambio en la configuración del servidor.
726No se encontro un dispositivo conectadoCuando el dispositivo no se encuentra debidamente configurado.
727Compañía inválidaCuando la compañía informada no es válida, según lo configurado en el servidor.
728No existe configuracion para la version requeridaCuando la librería intenta obtener una versión de configuración que no existe en VTOL Server. Problemas de compatibilidad.
729Reintente otro modo de ingreso

Cuando VTOL no tiene habilitado la encripción de datos sensibles, o cuando el prefijo no tiene habilitada la opción para que utilice mensaje encriptado.

730Reintente operación sin modificar monto originalCuando se modifica el monto o monto cashback en la operación de "Procesar operación con tarjeta".
731Error en providerCuando el POS envía el ProviderPosCode, y EMVKIT detecta que no coincide con el valor de la configuración de los prefijos.

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

808Error cancelando operacion Tarjeta Chip. Intente anularlaCuando una operación con tarjeta Chip no puede realizar un rollback de la operación.
809Error en la sincronización del PinPad.El PINPAD no puede completar el proceso de sincronización.
810Error en sincronización del PinPad. Intente anular la operación.El PINPAD no puede completar el proceso de sincronización porque tiene transacciones pendientes. Se recomienda un cierre forzoso.
811Comando no soportado por el PinpadCuando el dispositivo o la versión del mismo, no soporta el tipo de transacción ingresado.
812Reintente operaciónCuando se realiza un cambio en la configuración del servidor sobre la llave RSA, y se aplican los cambios en EMVKIT.
813No se permite la impresion de la corriente transaccionEl PINPAD o dispositivo no puede imprimir la transacción enviada por el POS.

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


Âncora
_Códigos_de_Respuesta_1
_Códigos_de_Respuesta_1
Âncora
_Toc508730839
_Toc508730839

...

7.2 Códigos de Respuesta de VTOL Server

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

...

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


Âncora
responsecodepei
responsecodepei

...

7.2.1 Códigos de Respuesta de VTOL Server para PEI

A continuación se detallan las respuestas posibles de VTOL Server, cuando se opera con PEI, con una breve descripción de cada una:

Código

Descripción

00APROBADA
300Se agoto el tiempo de espera
301La sucursal ingresada es incorrecta
302El concepto ingresado es incorrecto
303El concepto ingresado no esta disponible
304El concepto ingresado no esta habilitado
305La cuenta destino del pago es incorrecta
306La cuenta destino no esta habilitada
307La cuenta origen del pago es incorrecta
308La cuenta origen no esta habilitada
309La Red destino del pago es incorrecta
310La cuenta del comercio es incorrecta
311La cuenta de la sucursal es incorrecta
312El comercio supero el importe máximo
313La sucursal supero el importe máximo
314La tarjeta ha superado el importe diario
315Comercio ha superado el importe diario
316Comercio ha superado el importe mensual
317Comercio supero las trxs diarias
318Comercio supero las trxs mensuales
319La sucursal supero el importe diario
320La sucursal supero el importe mensual
321La sucursal supero las trxs diarias
322La sucursal supero las trxs mensuales
323Encriptacion incorrecta
324El DNI no coincide con el de la tarjeta
325Los datos de tarjeta no se condicen
326El comercio es invalido
327Cuenta destino del comercio es invalida
328La tarjeta es invalida
329La referencia de trx ya fue utilizada
330El importe no es un numero mayor a cero
331Ultimos 4 dig. no coinciden con la tarj.
332Tarjeta inhabilitada para operar
333Tarjeta vencida
334Fondos insuficientes
335El CBU Banelco ingresado es incorrecto
336El ALIAS CBU Banelco es incorrecto
337El id de pago es invalido
338El id del canal es invalido
339Importe excede saldo remanente del pago
340El ID de requerimiento es invalido
341IP de cliente invalida
342Existe una devolucion aprobada del pago
343El pago tiene devoluciones parciales
344Pago no admite el tipo de devolucion
345Pago no admite el tipo de devolucion
346Terminal en uso
347Terminal PEI Invalida
348Comercio PEI Invalido
349Sucursal PEI Invalida
350Id operacion Requerido
351Id operacion Rango invalido
352Ultimos cuatro digitos invalidos
353Numero de documento requerido
354Trx original no se puede devolver
355La cuenta es incorrecta
356La cuenta no está habilitada
357La cuenta del comercio es incorrecta
358La cuenta de la sucursal es incorrecta
359Comercio supero monto para concepto
360Sucursal supero monto para concepto
361Tarjeta supero monto tipo de operacion
362Comercio supero monto tipo operacion
363Comercio supero monto tipo operacion
364Comercio supero cantidad transacciones
365Comercio supero cantidad transacciones
366Sucursal supero monto diario permitido
367Sucursal supero monto mensual permitido
368Sucursal supero cantidad trxs diarias
369Sucursal supero cantidad trx mensuales
370Error al desencriptar campos encriptados
371La cuenta destino del comercio invalida
372Ref de trx del comercio ya fue utilizada
373Ultimos 4 digitos incorrectos
374El ID de requerimiento enviado invalido
375Error General
376Concepto ingresado no habilitado
377Concepto ingresado no habilitado
378Cuenta es incorrecta
379Cuenta no está habilitada
380ALIAS CBU red Banelco es incorrecto
381El pago tiene devoluciones parciales
382Esta operacion no acepta devol. total
383Esta operacion no acepta devol. parcial
384La fecha es invalida
385El estado del pago es invalido
386El Concepto Operacion es invalido
387Estado trx original no acepta devolucion
388Importe devolucion supero monto limite
389No se encontró la trx original
390No es posible devolver una devolución
391Error en comunicación
392Campo DateTimeOriginalTrx invalido
393Autorizacion Original en Proceso
600El codigo de barras es requerido
601El softToken es requerido
602El importe de promoción es invalido
603Original transaction type es requerido
604El numero de referencia bancaria es requerido
605El importe original informado es invalido
606La venta original no tiene promoción aplicada
607El numero de referencia bancaria es incorrecto
608La venta original no permite promoción
609

Clave DNI inválido

610Se agoto el tiempo de espera
611Código de barras invalido
612La referencia ingresada es inválida
613El timestamp ingresado no respeta el formato
614La cuenta origen no tiene tarjeta asociada
615La cuenta origen de los fondos es inexistente
616Cuenta origen sin fondos suficientes
617La terminal ingresada es incorrecta
618<Código para posibles nuevos errores de PEI - Link no manejados por VTOL>


Âncora
codrespbill
codrespbill

...

7.2.2 Códigos de Respuesta de VTOL Server para Billeteras Electrónicas

A continuación se detallan las respuestas posibles de VTOL Server, cuando se opera con Billeteras Electrónicas, con una breve descripción de cada una:

CódigoDescripción
00APROBADA
500No se encuentra la transaccion original
501El campo WalletPosTrxId es requerido
502El campo WalletType es requerido
503No esta configurado una Compañia MP
504No esta configurado una Caja MP
505El tipo de billetera es invalido
506El campo WalletPaymentId es requerido
507El campo OriginalDate es requerido
508No es posible devolver una devolucion
509Estado trx original no acepta devolucion
510Importe devolucion supero monto limite
511No se pudo realizar la orden de pago
512La transaccion no posee estado
513El campo posTicket es requerido
514Tiempo expirado. Elija Consultar o Cancelar pago
515Tiempo expirado confirmacion devolucion
516Pago aun no realizado, desea seguir esperando?
517Estado trx original no acepta devolucion
518No se encuentra la devolucion
519Acceso a MP no esta autorizado
520Accion a MP no esta autorizada
521El campo WalletPosTrxId es invalido
522Cancelado
523Estado trx original no acepta devolucion
524Importe invalido para devolucion
525Estado trx original no acepta devolucion
526Compañia MP no permite operar
527Numero devoluciones parciales superados
528El pago es antiguo para ser devuelto
529No es posible devolver una devolucion
530Compañia MP sin dinero para devolver
531Compañia MP sin dinero disponible
532Estado trx original no acepta devolucion
533Devolucion parcial no soportada
534Url de notificacion invalido
535El monto de la transaccion es invalido
536Error general por parte de MP
537No se encuentra la transaccion original
538El campo WalletPosTrxId es requerido
539Transaccion devuelta
540Pendiente
541Autorizado
542En Progreso
543En mediacion
544Transaccion ya devuelta
545Cancelado
546Contracargo
547No se encontró la trx original
548Error en comunicación
549No existe comunicación con Mercado Pago
550Error al consultar venta original online 
552Orden no generada por Prisma
553Pago Rechazado por parte de Prisma
554Esta operación requiere autorización
555Esta operación requiere autorización
556Pago rechazado, reintente con otro medio de pago
557Pago rechazado, reintente con otro medio de pago
558Pago rechazado, reintente con otro medio de pago
559Pago rechazado, reintente con otro medio de pago
560Pago rechazado, reintente con otro medio de pago
561No fue posible procesar su pago, intente más tarde
562No fue posible procesar su pago, intente más tarde
563No fue posible procesar su pago, intente más tarde
564No fue posible procesar su pago, intente más tarde
565No fue posible procesar su pago, intente más tarde
566La cantidad de cuotas seleccionada es inválida
567La cantidad de cuotas seleccionada es inválida
568Tarjeta de crédito vencida
569Tarjeta de crédito no habilitada
570Fondos insuficientes, reintente otro medio de pago
571Fondos insuficientes, reintente otro medio de pago
572Datos incorrectos, revíselos y reintente
573Datos incorrectos, revíselos y reintente
574No fue posible procesar su pago, intente más tarde
575No fue posible procesar su pago, intente más tarde
576Tarjeta no vigente, reintente otro medio de pago
577Esta operación requiere autorización
578No fue posible procesar su pago, intente más tarde
579No fue posible procesar su pago, intente más tarde
580La cantidad de cuotas seleccionada es inválida
581Datos incorrectos, revíselos y reintente
582Datos incorrectos, revíselos y reintente
583Las cuotas informadas son incorrectas
584Devolucion parcial no soportada
585

Transacción con CashBack no permitido

586El comercio informado es inválido
587El establecimiento informado es inválido
588El establecimiento no pertenece al comercio
589El punto de venta informado es inválido
590El punto de venta no pertenece al establecimiento
591El tipo de documento es inválido
592Se debe informar el ID de la operación
593Se debe informar un timeStamp
594Se debe informar el traceNumber
595Intención de pago vencida
596Entrega Excede Supera Limite
598Las cuotas del pago ya fueron informadas
602Devolución rechazada
603Devolución no aprobada
604Devolución pendiente de aprobación
650Importe de devolución de cashout invalido
651Importe de cashout invalido
652Medio de pago inválido
654Devolución registrada confirme administrativamente
733

La transacción no corresponde a una operación de Billeteras Electrónicas

734

No es posible cancelar la transacción informada

...


7.2.2.1 Códigos de respuesta de VTOL Server para Billetera Rappi Payless

Código

Descripción

Código

Descripción

00APROBADA
57TRANSACCION NO PERMITIDA
500Sucursal no configurada Billetera RappiPayless
503Compañia no configurada Billetera RappiPayless
509Estado trx original no acepta devolucion
510Importe devolucion supero monto limite
533Devolucion parcial no soportada
537Se excedio el tiempo limite para devolver
539Devuelto
544Transaccion ya devuelta
545Cancelado
549No existe comunicación con RappiPayless
553Pago rechazado por diferencias en la orden
585Transacción con CashBack no permitido
586Imposible identificar el comercio. Verifique datos
595Intención de pago vencida en Billetera
599Error de validacion
601No se pudo realizar la operación, reintente
602Devolucion rechazada
605La transaccion no se puede anular
606Identificador de transaccion incorrecto
607No se pudo realizar la devolucion
611Código de barras invalido
619No se pudo realizar la cancelación
620Reintente pago por modo offline con código PIN

...

7.2.2.2 Códigos de Respuesta de VTOL Server para QR Adquiriente Fiserv

Estos códigos de respuesta son exclusivos para QR Fiserv. El resto de los códigos coincide con las demás billeteras.

Código

Descripción

654Valide monto y cuotas según tarjeta elegida
655Cancelado, timeout QR
656El provider informado no coincide con el pago

...


7.2.3 Códigos de Respuesta de VTOL Server para Antifraude

A continuación se detallan las respuestas posibles de VTOL Server, cuando se opera con Antifraude:

Código

Descripción de respuesta al POS

Descripción del módulo antifraude

801Tarjeta no autorizadaFraude por validación de BlackList
802Tarjeta no autorizadaPosible Fraude por BlackList
803Operación no autorizadaFraude por Velocity Check
804Operación no autorizadaPosible fraude por Velocity Check
805Operación no autorizadaError en validación concurrente, posible fraude por Velocity Check
806Operación no autorizadaError en validación Velocity Check
807Operación no autorizadaError general en validación de Antifraude
810Operación no autorizadaFaltan campos requeridos en el requerimiento


Âncora
codRespFidelidad
codRespFidelidad

...

7.2.4 Códigos de Respuesta de VTOL para Consulta de tarjetas de Fidelidad

A continuación se detallan las respuestas posibles de VTOL Server, cuando se realizan consultas de tarjetas de fidelidad:

Código

Descripción

Observaciones

770Cliente no encontrado en servicio de fidelidadEl servicio de fidelidad respondió que el cliente no fue encontrado en su base de datos.
771El cliente no está activo en servicio de fidelidadEl servicio de fidelidad respondió que el cliente no tiene ninguna tarjeta activa.
772Error en el servicio de fidelidadCuando el servicio de fidelidad no está disponible o se vence el timeout.
773Error de configuración en VTOL.

VTOL valida que se encuentre configurada la API Key del Comercio para consultar con Bimo, en las propiedades de configuración.

Si no están configurados en VTOL Server, o si Bimo responde un error 400, VTOL retorna este mensaje al POS.

774Es requerido el documento del clienteEl POS no envió el número de DNI del cliente.
775Es requerido el tipo de tarjeta de fidelidadEl POS no envió el tipo de tarjeta de fidelidad del cliente.
776El documento no es validoEl número de DNI enviado no tiene el formato correcto.
777Tipo de tarjeta de fidelidad no válido.El tipo de tarjeta de fidelidad enviado no está soportado.
778Consulta no disponible para esta billeteraEl tipo de consulta no es soportado por el tipo de billetera enviado por el POS en el campo WalletType.



Âncora
_Códigos_de_Errores
_Códigos_de_Errores
Âncora
_Toc508730840
_Toc508730840

...

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

...

  • 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


Âncora
_Códigos_de_Respuestas
_Códigos_de_Respuestas
Âncora
_Formato_Configuración_POS
_Formato_Configuración_POS
Âncora
_Toc508730841
_Toc508730841

...

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

...

Ejemplo:
BE:6006;6006;17;ASOCIADO;Pepe-123
BE:601056;601056;16;GIFT CARD;Extra


Âncora
_Circuito_Operativo_de
_Circuito_Operativo_de
Âncora
_Toc508730842
_Toc508730842

...

7.5 Circuito Operativo de EMVKIT

...

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

...

Nota

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.

...


7.5.2 Procesamiento de Tarjetas de Empleados

A continuación se detalla la forma de procesarse una tarjeta de empleados con EMVKIT:

...

Response message: {1010:1527012912324;1027:000;1028:Ok}

...


7.5.3 Pagos Parciales

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

...

Diagrama de secuencia de Pagos Parciales


Âncora
_Toc508730843
_Toc508730843

...

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

...

Aviso

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.


Âncora
_Toc508730844
_Toc508730844

...

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

...

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.


Âncora
_Toc487143445
_Toc487143445
Âncora
_Toc508730845
_Toc508730845

...

7.8 Control Transaccional

El control transaccional permite que EMVKIT pueda decidir qué acción tomar transacción a transacción. Es decir, si debe confirmar o reversar cada transacción.

...

  1. La transacción se cae por tiempo expirado, el POS ejecuta un QueryWallet para consultar el estado.
    1. Apertura de sesión.
      1. SaleWallet
        1. Rta: Consulte pago por tiempo expirado - 24:trxid 7
      2. QueryWallet - 24:trxid 7 (transacción de la venta original)
        1. Rta: 27:516 28:Pago aún no realizado, desea seguir esperando? - 24:trxid 7
      3. QueryWallet - 24:trxid 7 (transacción de la venta original)
        1. Rta: Pago Aprobado - 24:trxid 7
    2. Cierre de sesión: Se cierra sesión en estado Close. En el campo 1009 (closeTrxIdList) se envían las operaciones aprobadas (iii). 1009:7
  2. El cliente confirma el pago desde la app de su celular, pero después le indica al cajero que quiere cancelar la operación.

    1. create session

      1. SaleWallet

        1. Rta: Pago Aprobado - 24:trxid 8

      2. QueryWallet - 24:trxid 8 (transacción de la venta original)

        1. Rta: 27:00 28:Aprobada - 24:trxid 8

        2. SI EL CLIENTE DECIDE CANCELAR LA COMPRA, EL POS DEBERÁ GENERAR UN refundWallet

      3. CloseSession en estado CLOSE (1009:8). En el campo 1009 (closeTrxIdList) se envían las operaciones aprobadas (i).

...


7.9 Ejemplo de integración

A continuación se da un ejemplo de integración con EMVKit para poder realizar una venta con tarjeta presencial. 

...

Bloco de código
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using VtolClientLib; namespace VtolTestPinPad { public partial class Form1 : Form { //Cliente Vtol StaticVtolClient StaticVtolClient = new StaticVtolClient(); //Lista de transacciones a confirmar System.Collections.ArrayList trxToConfirm = new System.Collections.ArrayList(); public EjemploIntegracion() { InitializeComponent(); } private VtolNode IniciarSesion() { //Inciar Sesion contra la libreria VTOL Full //Seleccionar el Local StaticVtolClient.SetParameter(VtolClientLib.VtolParam.StoreId, "6"); //Setear Parámateros StaticVtolClient.SetParameter(VtolClientLib.VtolParam.HostIp, "127.0.0.1"); StaticVtolClient.SetParameter(VtolClientLib.VtolParam.HostPort, 3500); StaticVtolClient.SetParameter(VtolParam.TimeOutConnectionHost, 30000); StaticVtolClient.SetParameter(VtolParam.ResponseTimeout, 10000); StaticVtolClient.SetParameter(VtolParam.TimeOutExpirationNode, 10000); StaticVtolClient.SetParameter(VtolParam.TimeOutObtainNode, 10000); StaticVtolClient.SetParameter(VtolParam.UseVtolClientFinder, false); StaticVtolClient.SetParameter(VtolParam.VtolClientFinder, new DefaultVtolClientFinder()); StaticVtolClient.SetParameter(VtolParam.UseEncryptedData, false); StaticVtolClient.SetParameter(VtolParam.Encrypter, "DESede"); StaticVtolClient.SetParameter(VtolParam.EncrypterKey, "SynthesisSynthesisSynthe"); //Iniciar libreria StaticVtolClient.Init(); //Crear un nuevo Nodo (Caja Existente en VTOL) VtolNode vtolNode = StaticVtolClient.CreateNode("1"); //Limpiar lista de transacciones a Confirmar trxToConfirm.Clear(); textBox1.Clear(); textBox1.AppendText("Iniciando Sesion \r\n"); vtolNode.Status = NodeStatus.INUSE; vtolNode.CreateTransaction(); vtolNode.AddField(11, "createSession"); vtolNode.SendTransaction(); //Obtener Respuesta String responseCodeString = vtolNode.GetField(1027).ToString(); if ("000".Equals(responseCodeString)) { textBox1.AppendText("Sesion creada \r\n"); } else { textBox1.AppendText("Error: " + vtolNode.GetField(1028).ToString() + " \r\n"); } //Retornar el nodo creado return vtolNode; } private void CerrarSesion(VtolNode vtolNode, String SessionAction, System.Collections.ArrayList trxList) { //Cerrar sesion vtolNode.CreateTransaction(); vtolNode.AddField(11, "closeSession"); textBox1.AppendText("Cerrando Sesion \r\n"); switch (SessionAction) { case "Close": //Cerrar y confirmar las transacciones pendientes //{Debug textBox1.AppendText("Enviando Commit"); //Recorrer el array para indicar las trx a informar foreach (String element in trxToConfirm) { textBox1.AppendText("trxID : " + element + "\r\n"); } //}Debug vtolNode.AddField(1008, "CLOSE"); vtolNode.AddField(1009, trxList); break; default: //Cerrar y enviar RollBack de todas las transacciones vtolNode.AddField(1008, "CANCEL"); break; } vtolNode.SendTransaction(); String responseCodeString = vtolNode.GetField(1027); if ("000".Equals(responseCodeString)) { textBox1.AppendText("Sesion Cerrada \r\n"); } else { textBox1.AppendText("Error al cerrar session [" + responseCodeString + "] "+ vtolNode.GetField(1028) +"\r\n"); } vtolNode.Status = NodeStatus.AVAILABLE; } private void btnSend_Click(object sender, EventArgs e) { textBox1.Clear(); //============================================================================================== //Iniciar sesion VtolNode vtolNode = IniciarSesion(); //============================================================================================== textBox1.AppendText("Enviando Compra \r\n"); vtolNode.CreateTransaction(); vtolNode.AddField(6, "5432219380000102"); //Tarjeta vtolNode.AddField(7, "1612"); //Vto vtolNode.AddField(8, "123"); //CVC vtolNode.AddField(10, "Manual"); //Mod. Ingreso vtolNode.AddField(11, "Sale"); //Operacion vtolNode.AddField(12, "100"); //Monto vtolNode.AddField(13, "$"); //Moneda vtolNode.AddField(14, "2"); //Cuotas vtolNode.AddField(15, "0"); //Plan //envia la trnsaccion. Es bloqueante hasta recibir la repsuesta o darse un timeout con el server vtolNode.SendTransaction(); string responseCodeString = vtolNode.GetField(FieldId.ResponseCodeFieldId); if (String.Compare(responseCodeString, "ISO8583", true) == 0) { String isoResponseCodeString = vtolNode.GetField(FieldId.ISOResponseCodeFieldId); if ("00".Equals(isoResponseCodeString)) { String transactionIdString = vtolNode.GetField(FieldId.TrxIdFieldId); trxToConfirm.Add(vtolNode.GetField(FieldId.TrxIdFieldId)); textBox1.AppendText("Aprobada trxID: "+ transactionIdString +"\r\n"); } else { textBox1.AppendText("Rechazada \r\n"); } } else { textBox1.AppendText("Error :"+ responseCodeString +" \r\n"); } //============================================================================================== textBox1.AppendText("Enviando Compra 2 \r\n"); vtolNode.CreateTransaction(); vtolNode.AddField(6, "5432219380000102"); //Tarjeta vtolNode.AddField(7, "1612"); //Vto vtolNode.AddField(8, "123"); //CVC vtolNode.AddField(10, "Manual"); //Mod. Ingreso vtolNode.AddField(11, "Sale"); //Operacion vtolNode.AddField(12, "200"); //Monto vtolNode.AddField(13, "$"); //Moneda vtolNode.AddField(14, "2"); //Cuotas vtolNode.AddField(15, "0"); //Plan //envia la trnsaccion. Es bloqueante hasta recibir la repsuesta o darse un timeout con el server vtolNode.SendTransaction(); responseCodeString = vtolNode.GetField(FieldId.ResponseCodeFieldId); if (String.Compare(responseCodeString, "ISO8583", true) == 0) { String isoResponseCodeString = vtolNode.GetField(FieldId.ISOResponseCodeFieldId); if ("00".Equals(isoResponseCodeString)) { String transactionIdString2 = vtolNode.GetField(FieldId.TrxIdFieldId); trxToConfirm.Add(vtolNode.GetField(FieldId.TrxIdFieldId)); textBox1.AppendText("Aprobada trxID: "+ transactionIdString2 +"\r\n"); } else { textBox1.AppendText("Rechazada \r\n"); } } else { textBox1.AppendText("Error :" + responseCodeString + " \r\n"); } //============================================================================================== //Cerrarr sesion CerrarSesion(vtolNode, "Close", trxToConfirm); } private void button1_Click(object sender, EventArgs e) { // ************** Prueba utilizando el pinpad ************************************** //****** Iniciar sesion ************ VtolNode vtolNode = IniciarSesion(); //****************************************************************************************************** //****************************************************************************************************** //Solicitar Lectura de Tarjeta textBox1.AppendText("Pase la Tarjeta por el PinPad \r\n"); vtolNode.CreateTransaction(); vtolNode.AddField(11, "Sale"); vtolNode.SendTransaction(); String responseCodeString = vtolNode.GetField(1027); //****************************************************************************************************** if ("000".Equals(responseCodeString)) { //Mostrar detalle de tarjeta Leida textBox1.AppendText("Lectura de Tarjeta "+ vtolNode.GetField(1028)+ " [" + vtolNode.GetField(1107) +"]\r\n"); //obtener datos necesarios String cardContextId = vtolNode.GetField(1103); vtolNode.CreateTransaction(); vtolNode.AddField(11, "Sale"); vtolNode.AddField(12, "100"); vtolNode.AddField(13, "$"); vtolNode.AddField(14, "2"); vtolNode.AddField(15, "0"); vtolNode.AddField(1103, cardContextId); vtolNode.SendTransaction(); responseCodeString = vtolNode.GetField(1027); if ("000".Equals(responseCodeString)) { //Obtener Respuesta responseCodeString = vtolNode.GetField(27); textBox1.AppendText("Respuesta: " + responseCodeString + "\r\n"); if (responseCodeString.Equals("ISO8583")) { //Obtener codigo ISO String ISOresponseCodeString = vtolNode.GetField(27); if ("00".Equals(ISOresponseCodeString)) { //Aprobada, guardar trxID trxToConfirm.Add(vtolNode.GetField(FieldId.TrxIdFieldId)); textBox1.AppendText("Aprobada trxID: " + vtolNode.GetField(FieldId.TrxIdFieldId) + "\r\n"); } } else { textBox1.AppendText("Error " + vtolNode.GetField(28) + "\r\n"); } } else { textBox1.AppendText("Error " + vtolNode.GetField(1028) + "\r\n"); } } //****** Cerrar sesion ************* CerrarSesion(vtolNode, "CLOSE", trxToConfirm); //********************************** } } } 

...


7.10 Vouchers

En este anexo se mencionan los datos de los vouchers o comprobantes a tener en cuenta en base al canal por el cual se autorizó la tarjeta (34 - hostName), la tarjeta y el tipo de transacción. También se especifica el campo de EMV Kit correspondiente para lograr obtener dicha información.

...

Nota
  1. Ubicación de los datos
    La ubicación de los datos en el voucher no poseen alguna obligatoriedad, pero se recomienda seguir una estructura lógica como ser que los datos del cliente a completar se encuentren al final del voucher o que la fecha y hora se encuentren en la cabecera del voucher

  2. Original y Copia
    Los mencionados en esta documentación son los vouchers "Original Comercio", los vouchers "Copia Cliente" deberán ser similares pero contener esta nota al pie del voucher y omitir los datos a completar (Firma, Aclaración y Tipo y N° Doc)

  3. Vouchers de rechazo
    Cuando la operación resulte rechazada, el POS deberá imprimir un voucher similar a los mencionados pero informando solamente la terminal, el número de comercio y el motivo del rechazo obtenido del campo 28 - responseMessage



Âncora
bancos
bancos

...

7.11 Códigos de Bancos

A continuación se detallan los ID de los bancos dispuestos por el BCRA.

ID de BancoDescripción
7BANCO DE GALICIA Y BUENOS AIRES S.A.U.
11BANCO DE LA NACION ARGENTINA
14BANCO DE LA PROVINCIA DE BUENOS AIRES
15INDUSTRIAL AND COMMERCIAL BANK OF CHINA
16CITIBANK N.A.
17BANCO BBVA ARGENTINA S.A.
20BANCO DE LA PROVINCIA DE CORDOBA S.A.
27BANCO SUPERVIELLE S.A.
29BANCO DE LA CIUDAD DE BUENOS AIRES
34BANCO PATAGONIA S.A.
44BANCO HIPOTECARIO S.A.
45BANCO DE SAN JUAN S.A.
65BANCO MUNICIPAL DE ROSARIO
72BANCO SANTANDER RIO S.A.
83BANCO DEL CHUBUT S.A.
86BANCO DE SANTA CRUZ S.A.
93BANCO DE LA PAMPA SOCIEDAD DE ECONOMÍA M
94BANCO DE CORRIENTES S.A.
97BANCO PROVINCIA DEL NEUQUÉN SOCIEDAD ANÓ
143BRUBANK S.A.U.
147BANCO INTERFINANZAS S.A.
150HSBC BANK ARGENTINA S.A.
165JPMORGAN CHASE BANK, NATIONAL ASSOCIATIO
191BANCO CREDICOOP COOPERATIVO LIMITADO
198BANCO DE VALORES S.A.
247BANCO ROELA S.A.
254BANCO MARIVA S.A.
259BANCO ITAU ARGENTINA S.A.
262BANK OF AMERICA, NATIONAL ASSOCIATION
266BNP PARIBAS
268BANCO PROVINCIA DE TIERRA DEL FUEGO
269BANCO DE LA REPUBLICA ORIENTAL DEL URUGU
277BANCO SAENZ S.A.
281BANCO MERIDIAN S.A.
285BANCO MACRO S.A.
299BANCO COMAFI SOCIEDAD ANONIMA
300BANCO DE INVERSION Y COMERCIO EXTERIOR S
301BANCO PIANO S.A.
305BANCO JULIO SOCIEDAD ANONIMA
309BANCO RIOJA SOCIEDAD ANONIMA UNIPERSONAL
310BANCO DEL SOL S.A.
311NUEVO BANCO DEL CHACO S. A.
312BANCO VOII S.A.
315BANCO DE FORMOSA S.A.
319BANCO CMF S.A.
321BANCO DE SANTIAGO DEL ESTERO S.A.
322BANCO INDUSTRIAL S.A.
330NUEVO BANCO DE SANTA FE SOCIEDAD ANONIMA
331BANCO CETELEM ARGENTINA S.A.
332BANCO DE SERVICIOS FINANCIEROS S.A.
336BANCO BRADESCO ARGENTINA S.A.U.
338BANCO DE SERVICIOS Y TRANSACCIONES S.A.
339RCI BANQUE S.A.
340BACS BANCO DE CREDITO Y SECURITIZACION S
341BANCO MASVENTAS S.A.
384WILOBANK S.A.
386NUEVO BANCO DE ENTRE RÍOS S.A.
389BANCO COLUMBIA S.A.
426BANCO BICA S.A.
431BANCO COINAG S.A.
432BANCO DE COMERCIO S.A.
435BANCO SUCREDITO REGIONAL S.A.U.

...


7.

...

12 Respuesta de EMVKIT en Rechazo Z3

Cambios incorporados en EMVKIT en situaciones de rechazo en tercera instancia:

...

VTOL=00 / CRE=(vacio)  >> 99 - PINPAD RECHAZADA - Mensaje de EMVKIT al POS "PINPAD RECHAZADA" (código 99)


...

8. Compatibilidad con VTOL Server

La versión 1.5.X de EMVKit y superior tendrá compatibilidad con VTOL Server para rutear las transacciones, según las siguientes variantes:

  1. EMVKit 1.5 con VTOL Server 3.8.0.5
    1. Compatibilidad: Se puede realizar el ruteo de transacciones por local, según la configuración que se establezca en VTOL Server.

  2. EMVKit 1.5 con VTOL Server 3.8.0.4
    1. Compatibilidad: Estas versiones no son compatibles, por lo cual no se podrá transaccionar. VTOL Server no va a tener los datos de configuración que permitan que EMVKIT haga el ruteo de transacciones. En este escenario, se deberá actualizar VTOL Server a una versión superior, por ejemplo la 3.8.0.5.

  3. EMVKit 1.4 con VTOL Server 3.8.0.5
    1. Compatibilidad: no va a ser posible rutear las transacciones por local. La posición de la llave maestra mantendrá la configuración definida en los prefijos del server anterior a la actualización, por ejemplo de la 3.8.0.4 a la 3.8.0.5.

...


9. Compatibilidad con Firmware

En el siguiente apartado se detallan las funcionalidades disponibles según cada versión de firmware disponible.

...