Versões comparadas

Chave

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

...

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


Âncora
_Toc508730814
_Toc508730814
Índice

...

Informações

Referencias

X = Obligatorio
O = Opcional
-   = No requerido


Número

Nombre del campo

Tipo de dato

SaleVoidSaleRefundVoidRefundSaleCashBackServicePaymentVoidServicePaymentSalePEIRefundPEI

Descripción

11

trxType

Alfanumérico

XXXXXXXXX

Tipo de Transacción:

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

12

amount

Importe

XXXXXXXXX

Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00.

Para operaciones PEI el monto tendrá un TOPE, el cual estará definido por LINK, quienes validan que no se supere por transacción el equivalente a un Salario Mínimo, Vital y Móvil.

13

currencyPosCode

Alfanumérico

XXXXXXXXX

Tipos de Moneda:

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

14

payments

Numérico

XXXXXXX--

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

15

plan

Alfanumérico

XXXXXXX--

Plan. 1 caracter de longitud

16

originalDate

Fecha

--X------

Este campo debe viajar si el tipo de transacción es Refund. Se trata de la fecha de la transacción original en el formato YYYYMMDD

17

originalTrxTicketNr

Numérico

-OX------

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

18

referedSale

Numérico

O--------

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

25

dateTime

Numérico

XXXXXXXXX

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

53

paymentCondition

Alfanumérico

OOOOOOO--

Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción

54

additionalAmount

Alfanumérico

----X----

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

70

effectiveDate

Alfanumérico

OOOOOOO--

Fecha efectiva. Se usa para AMEX con formato YYMM

73

interestAmount

Alfanumérico

OOOOOOO--

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

74

requestAccountNumber

Alfanumérico

OOOOOOO--

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

  • 1 = activado
  • 0 = desactivado

101

differDate

Alfanumérico

OOOOOOO--

Fecha diferida. Solo utilizada para AMEX

118

terminalCapability

Alfanumérico

OOOOOOO--

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

130

posPeriod

Numérico

OOOOOOO--

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

131

turn

Numérico

OOOOOOO--

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

132

operatorCode

Alfanumérico

OOOOOOO--

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

133

operatorName

Alfanumérico

OOOOOOO--

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

134

sellerCode

Alfanumérico

OOOOOOO--

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

135

sellerName

Alfanumérico

OOOOOOO--

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

136

attentionMode

Alfanumérico

OOOOOOO--

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

1102

provider

Alfanumérico

OOOOOOOXX

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

1103

cardContextId

Numérico

XXXXXXXXX

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

...

Número

Nombre del campo

Tipo de dato

SaleVoidSaleRefundVoidRefundSaleCashBackServicePaymentVoidServicePaymentSalePEIRefundPEI

Descripción

0companyNuméricoXXXXXXXXXIdentificador de la compañía donde se generó la transacción.

1

store

Alfanumérico

XXXXXXXXX

Identificador del sitio originador de la transacción

2

node

Numérico

XXXXXXXXX

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

6cardNumberNuméricoOOOOOOO--

Número de tarjeta en texto plano. Solo presente en Tarjeta de Excepción o Tarjetas de Empleados

9track2AlfanuméricoOOOOOOO--Track2 de la tarjeta entero. Solo presente en Tarjeta de Excepción o Tarjetas de Empleados

10

inputMode

Alfanumérico

XXXXXXXXX

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

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

22

authorizationCode

Alfanumérico

OOOOOOO--

Código de autorización generado por el centro autorizador para la transacción cuando al transacción fue aprobada

23

authorizationMode

Alfanumérico

XXXXXXX--

Modo de Autorización:

  • Online = La autorización fue realizada por el Centro Autorizador
  • Offhost = La autorización fue realizada internamente por VTOL
  • Offline  = La autorización fue realizada localmente por el POS

24

lastTrxId

Numérico

XXXXXXX--

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

25

dateTime

Numérico

XXXXXXXXX

Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. El valor en este campo debe ser el mismo que el valor de la fecha y hora del requerimiento. El POS utiliza este dato para validar que se trate de la misma transacción

26

responseCode

Alfanumérico

XXXXXXXXX

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

XXXXXXXXX

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

28

responseMessage

Alfanumérico

XXXXXXXXX

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

29

serialNumber

Numérico

XXXXXXX--

Número que identifica de la terminal lógica en la que se procesó la transacción

30

businessNumber

Numérico

XXXXXXX--

Número de comercio en el que se procesó la transacción

31

lotNumber

Numérico

XXXXXXX--

Número de lote en el que se registró la transacción

32

ticket

Numérico

OOOOOOO--

Número de Ticket correspondiente a la transacción. 4 dígitos como máximo

33

creditCardIssuerName

Alfanumérico

OOOOOOO--

Nombre del Centro emisor de la tarjeta

34

hostNameName

Alfanumérico

OOOOOOO--

Nombre del canal por el cual se autorizó la tarjeta

35

errorDescription

Alfanumérico

OOOOOOOOO

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

42

lotDefinitionId

Numérico

XXXXXXX--

Identificador de la definición de lote

57

accountType

Alfanumérico

OOOOOOO--

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

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

58

workingKey

Alfanumérico

OOOOOOOOO

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

59offlinePinCheckNuméricoOOOOOOOOO

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

  • 0 = No
  • 1 = Si
66track1AlfanuméricoOOOOOOO--Track1 de la tarjeta entero. Solo presente en Tarjeta de Excepción o Tarjetas de Empleados

68

rrn

Numérico

OOOOOOO--

Reference referral number

75

accountNumber

Alfanumérico

OOOOOOO--

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

81

responseAuth

Alfanumérico

OOOOOOO--

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

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

82

softwareVersion

Alfanumérico

OOOOOOO--

Versión de la aplicación

130

posPeriod

Numérico

OOOOOOO--

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

131

turn

Numérico

OOOOOOO--

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

132

operatorCode

Alfanumérico

OOOOOOO--

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

133

operatorName

Alfanumérico

OOOOOOO--

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

134

sellerCode

Alfanumérico

OOOOOOO--

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

135

sellerName

Alfanumérico

OOOOOOO--

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

136

attentionMode

Alfanumérico

OOOOOOO--

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

145exceptionBinNameAlfanuméricoOOOOOOO--Nombre de la tarjeta de Excepción. Solo presente en Tarjeta de Excepción o Tarjetas de Empleados

166

trxReferenceNumber

Numérico

XXXXXXX--

Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato.

1010

currentSessionId

Numérico

XXXXXXXXX

Identificador de la sesión actual

1027

libResponseCode

Numérico

XXXXXXXXX

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

XXXXXXXXX

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

1103cardContextIdNuméricoXXXXXXXXXIdentifica el contexto de la tarjeta. Es un valor de referencia a la tarjeta leída a través del PINPAD.

1110

pinpadApplicationId

Alfanumérico

XXXXXXX--

Identificador de la Aplicación del PINPAD.

1111

pinpadApplicationName

Alfanumérico

XXXXXXX--

Nombre de la Aplicación del PINPAD.

1112

cardHolderName

Alfanumérico

OOOOOOOXX

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

1120

voucherHeader

Mapa

OOOOOOO--

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

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

1121

voucherFooter

Mapa

OOOOOOO--

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

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

1122

voucherBody

Mapa

OOOOOOO--

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

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

1123

formattedVoucher

Alfanumérico

OOOOOOO--

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

1124

printVoucher

Numérico

OOOOOOO--

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

  • 1 = true
  • 0 = false
170idCommercePEIAlfanumérico-------XXIdentificador PEI de compañía
171idBranchPEIAlfanumérico-------XXIdentificador PEI de local
172idTerminalPEIAlfanumérico-------XXIdentificador PEI de terminal
153idOperationPEIAlfanumérico-------XXIdentificador de la operación PEI de pago o devolución.
154idOperationOrigenPEIAlfanumérico--------XIdentificador de la operación PEI de origen con la cual se solicitó la devolución. Sólo para RefundPEI
278bankingRefNumAlfanumérico-------X-Numero de referencia de la transacción de pago. Se utiliza para conciliar con los reportes de las entidades bancarias. Número generado por LINK. Largo máximo 12.
280clientCopyVoucherAlfanuméricoXXXXXXX--

Campo para imprimir copia al cliente. Valores posibles:

False: imprimir copia al cliente sin consultarlo.
True: consultar al cliente si quiere copia del voucher.

281requiresSignatureAlfanuméricoXXXXXXX--

Campo para solicitar firma al cliente. Valores posibles:

False: no requerido
True: requerido

1138emvDataAlfanuméricoOOOOOOO--Este campo sólo será retornado en operaciones CHIP con tarjetas Amex. Corresponden a datos del criptograma, los cuales deben ser impresos en el ticket.



Wiki Markup
\\ *Campos opcionales:* \\ \[Opcional 1\]: Cuando la autorización fue aprobada y la librería retorna los datos del Voucher separados en encabezado, Cuerpo y pie. No implementado, reservado para uso futuro. \\ \[Opcional 2\]: Cuando la autorización fue aprobada y la librería retorna en un solo campo el Voucher formateado. No implementado, reservado para uso futuro. \\ \[Opcional 3\]: Cuando la autorización fue aprobada y la librería se encarga de imprimir el Voucher. No implementado, reservado para uso futuro. \\ *Ejemplo* \\



Response from Full library:

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

...

Informações

Referencias

X = Obligatorio
O = Opcional
-   = No requerido


Número

Nombre del campo

Tipo de dato

SaleVoidSaleRefundVoidRefundSaleCashBackServicePaymentVoidServicePayment

Descripción

6

cardNumber

Numérico

OOOOOOO

Número de tarjeta. Sólo presente si el modo de ingreso fue Manual.

7

expiration

Numérico

OOOOOOO

Formato YYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual.

8

Cvc

Numérico

OOOOOOO

Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual.

9

track2

Alfanumérico

OOOOOOO

Track2 de la tarjeta entero (se envía todo el contenido del track2 en este campo) Este campo sólo está presente si la banda magnética / chip de la tarjeta pudo ser leído.

10

inputMode

Alfanumérico

XXXXXXX

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

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

11

trxType

Alfanumérico

XXXXXXX

Tipo de Transacción:

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

12

amount

Importe

XXXXXXX

Monto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00

13

currencyPosCode

Alfanumérico

XXXXXXX

Tipos de Moneda:

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

14

payments

Numérico

XXXXXXX

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

15

plan

Alfanumérico

XXXXXXX

Plan. 1 caracter de longitud

16

originalDate

Fecha

--X----

Este campo debe viajar si el tipo de transacción es Refund. Se trata de la fecha de la transacción original en el formato YYYYMMDD

17

originalTrxTicketNr

Numérico

-OX----

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

18

referedSale

Numérico

OOOOOOO

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

22

authorizationCode

Alfanumérico

OOOOOOO

Código de autorización telefónica. 6 dígitos como máximo. Este campo se encuentra presente sólo si la transacción se autorizó off-line por teléfono

24

lastTrxId

Numérico

OOOOOOO

Utilizado cuando está activo el control transaccional. En este campo el POS debe enviar la última transacción procesada correctamente (Si el POS tuvo algún problema con la transacción previa no debería enviar su trxId en este campo).

25

dateTime

Numérico

XXXXXXX

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

53

paymentCondition

Alfanumérico

OOOOOOO

Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción

54

additionalAmount

Alfanumérico

----X--

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

70

effectiveDate

Alfanumérico

OOOOOOO

Fecha efectiva. Se usa para AMEX con formato YYMM

73

interestAmount

Alfanumérico

OOOOOOO

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

74

requestAccountNumber

Alfanumérico

OOOOOOO

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

  • 1 = activado
  • 0 = desactivado

101

differDate

Alfanumérico

OOOOOOO

Fecha diferida. Solo utilizada para AMEX

130

posPeriod

Numérico

OOOOOOO

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

131

turn

Numérico

OOOOOOO

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

132

operatorCode

Alfanumérico

OOOOOOO

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

133

operatorName

Alfanumérico

OOOOOOO

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

134

sellerCode

Alfanumérico

OOOOOOO

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

135

sellerName

Alfanumérico

OOOOOOO

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

136

attentionMode

Alfanumérico

OOOOOOO

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

1103

cardContextId

Numérico

XXXXXXX

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

...

Número

Nombre del campo

Tipo de dato

SaleVoidSaleRefundVoidRefundSaleCashBackServicePaymentVoidServicePayment

Descripción

0companyNuméricoXXXXXXXIdentificador de la compañía donde se generó la transacción.

1

store

Alfanumérico

XXXXXXX

Identificador del sitio originador de la transacción

2

node

Numérico

XXXXXXX

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

22

authorizationCode

Alfanumérico

OOOOOOO

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

23

authorizationMode

Alfanumérico

XXXXXXX

Modo de Autorización:

  • Online = La autorización fue realizada por el Centro Autorizador
  • Offhost = La autorización fue realizada internamente por VTOL
  • Offline  = La autorización fue realizada localmente por el POS

24

lastTrxId

Numérico

XXXXXXX

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

25

dateTime

Numérico

XXXXXXX

Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. El valor en este campo debe ser el mismo que el valor de la fecha y hora del requerimiento. El POS utiliza este dato para validar que se trate de la misma transacción

26

responseCode

Alfanumérico

XXXXXXX

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

XXXXXXX

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

28

responseMessage

Alfanumérico

XXXXXXX

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

29

serialNumber

Numérico

XXXXXXX

Número que identifica de la terminal lógica en la que se procesó la transacción

30

businessNumber

Numérico

XXXXXXX

Número de comercio en el que se procesó la transacción

31

lotNumber

Numérico

XXXXXXX

Número de lote en el que se registró la transacción

32

ticket

Numérico

OOOOOOO

Número de Ticket correspondiente a la transacción. 4 dígitos como máximo

33

creditCardIssuerName

Alfanumérico

XXXXXXX

Nombre del Centro emisor de la tarjeta

34

hostName

Alfanumérico

OOOOOOO

Nombre del canal por el cual se autorizó la tarjeta

35

errorDescription

Alfanumérico

OOOOOOO

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

42

lotDefinitionId

Numérico

XXXXXXX

Identificador de la definición de lote

58

workingKey

Alfanumérico

OOOOOOO

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

68

rrn

Numérico

XXXXXXX

Reference referral number

75

accountNumber

Alfanumérico

OOOOOOO

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

81

responseAuth

Alfanumérico

OOOOOOO

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

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

82

softwareVersion

Alfanumérico

XXXXXXX

Versión de la aplicación

130

posPeriod

Numérico

OOOOOOO

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

131

turn

Numérico

OOOOOOO

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

132

operatorCode

Alfanumérico

OOOOOOO

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

133

operatorName

Alfanumérico

OOOOOOO

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

134

sellerCode

Alfanumérico

OOOOOOO

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

135

sellerName

Alfanumérico

OOOOOOO

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

136

attentionMode

Alfanumérico

OOOOOOO

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

166

trxReferenceNumber

Numérico

XXXXXXX

Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato.

1010

currentSessionId

Numérico

XXXXXXX

Identificador de la sesión actual

1027

libResponseCode

Numérico

XXXXXXX

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

XXXXXXX

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

1110

pinpadApplicationId

Alfanumérico

XXXXXXX

Identificador de la Aplicación del PINPAD.

1111

pinpadApplicationName

Alfanumérico

XXXXXXX

Nombre de la Aplicación del PINPAD.

1112

CardHolderName

Alfanumérico

OOOOOOO

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

1120

voucherHeader

Mapa

OOOOOOO

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

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

1121

voucherFooter

Mapa

OOOOOOO

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

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

1122

voucherBody

Mapa

OOOOOOO

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

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

1123

formattedVoucher

Alfanumérico

OOOOOOO

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

1124

printVoucher

Numérico

OOOOOOO

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

  • 1 = true
  • 0 = false




Wiki Markup
\\ *Campos opcionales:* \\ \[Opcional 1\]: Cuando la autorización fue aprobada y la librería retorna los datos del Voucher separados en encabezado, Cuerpo y pie. No implementado, reservado para uso futuro. \\ \[Opcional 2\]: Cuando la autorización fue aprobada y la librería retorna en un solo campo el Voucher formateado. No implementado, reservado para uso futuro. \\ \[Opcional 3\]: Cuando la autorización fue aprobada y la librería se encarga de imprimir el Voucher. No implementado, reservado para uso futuro. \\ *Ejemplo* \\



Response from Full library:

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

...

Número

Nombre del campo

Tipo de dato

PrintTrxVoucher

Descripción

11

trxType

Alfanumérico

X

Tipo de Transacción:

  • PrintTrxVoucher: imprime el comprobante
25dateTimeNuméricoXFecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. Es importante persistir este valor para consultar el resultado de una operación en caso de algún inconveniente
1103cardContextIdNuméricoXIdentifica el contexto de la tarjeta. Es un valor de referencia a la tarjeta leída a través del PINPAD. Es el valor devuelto por la última operación "Leer Datos Tarjeta"
1118voucherParametersMapaX

Se informa con el siguiente formato [copyCount\|nroCopia] la cantidad de copias a efectuar del comprobante, donde:

  • nroCopia = 1 es copia comercio
  • nroCopia = 2 es copia comercio y cliente
  • nroCopia = 0 no imprime voucher físico. Disponible únicamente en caso de solicitar firma digital (requestSignature =1).
1130requestSignatureNumérico

X

Se informa si se solicitará o no la firma en el Pinpad. Valores posibles:

  • 0: no solicita firma digital, pero se imprime el texto "Firma" en el ticket físico. No genera comprobante digital.

  • 1: solicita firma digital y genera comprobante digital.

  • 2: no solicita firma y no genera comprobante digital.

Nota: En caso de no solicitar firma digital, no se genera el archivo .POS (del comprobante) por lo que no se tendrá constancia del mismo en VTOL Server.

1131voucherHeaderMapaO

Se informa la leyenda del header del comprobante con el siguiente formato [headerNro|detalle,...,headerNro|detalle], donde Nro es un número del 1 al 5 y detalle es la leyenda a imprimir. El largo máximo para cada línea es de 40 caracteres

1132clientDNIAlfanuméricoODNI del cliente. Valor hasta 9 caracteres
1133billNumberNuméricoONúmero de la factura. Valor hasta 11 caracteres
1134voucherPromoMessageMapaOSe informa el mensaje de promoción con el siguiente formato [promotionalNro|detalle,...,promotionalNro|detalle], donde Nro es un número del 1 al 7 y detalle es la leyenda de promoción a imprimir. El largo máximo para cada línea es de 28 caracteres
1135voucherPromoLine AlfanuméricoOSe informa la promoción obtenida. Valor hasta 40 caracteres
1136billType AlfanuméricoOTipo de factura. Valor hasta 1 caracter

...

Las operaciones con lectura Contactless, únicamente se podrán operar con Pinpad de First Data con firmware A809R02 o superior.


Mensajería

Informações
titleReferencias

X = Obligatorio
O = Opcional
- = No requerido

...

Aviso
titleImportante

Únicamente se podrá operar con Pinpad de First Data con firmware A809R02 o superior. Se debe configurar en EMVKit el Driver de la versión de Firmware A809.

En el archivo devices.properties se debe habilitar el siguiente driver: pinPad_driver=com.synthesis.vtol.ar.client.devices.posnet.PinpadVx820A0809PosnetDriver


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

...

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.

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

...

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); //********************************** } } } 


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



Canal Visa - Transacción Compra - Tarjeta Visa


Canal Visa - Transacción Compra - Tarjeta Maestro


Canal Visa -  Transacción Compra + Extracción - Tarjeta Visa Electrón


Canal Visa - Transacción Anulación de compra - Tarjeta Visa


Canal Visa - Transacción Anulación de compra + Extracción - Tarjeta Visa Electrón


Canal Visa - Transacción Devolución - Tarjeta Mastercard


Canal Visa - Transacción Anulación de devolución - Tarjeta VISA


Canal Posnet - Transacción Compra - Tarjeta Maestro


Canal Posnet - Transacción Anulación - Tarjeta Maestro


Canal Posnet - Transacción Devolución - Tarjeta Maestro


Canal Posnet - Transacción Compra + Retiro - Tarjeta Mastercard Debit


Canal Posnet - Transacción Compra + Retiro - Tarjeta Maestro



Informações

Referencias

X = Obligatorio
O = Opcional
- = No requerido


Ref

Dato

Canal VISACanal POSNETCanal AMEX

Campo EMV Kit

Nota
1

Tipo de transacción u operación

Opciones VISA:

  • Compra
  • Compra + Extracción
  • Anulación de compra
  • Anulación de compra + Extracción
  • Devolución
  • Anulación de devolución

Opciones Posnet y AMEX:

  • Compra
  • Compra + Retiro
  • Anulación de compra
  • Anulación de compra + Retiro
  • Devolución
  • Anulación de devolución
XXX11 - trxType
2Número de comercio o establecimiento asignado por el EmisorXXX30 - businessNumber
3Número de TerminalXXX29 - serialNumber
4Número de LoteXXX31 - lotNumber
5Número de cupón correspondiente a la transacciónXXX32 - ticket
6

Últimos 4 números de la tarjeta

XXX1106 - panLastDigit

Cuando VISA autoriza, se debe enmascarar toda la tarjeta con X exceptuando los últimos 4 dígitos.

Cuando Posnet autoriza, se deberá imprimir el número de tarjeta enmascarando con el carácter “*” o “#” los primeros doce dígitos de la misma, a solicitud de cada emisor.

Nota: Tener en cuenta que la longitud de la tarjeta puede variar

7

Modo de ingreso del número de tarjeta

Opciones VISA:

  • (M): Manual
  • (B): Banda
  • (C): Chip
  • (F): Fallback (EMV Kit devuelve MSR Chip, pero deberá imprimirse (F) o Fallback)

Opciones Posnet:

  • (*): Manual
  • Blanco: Banda
XXX10 - inputModeCuando el ingreso es manual (Mastercard), se debe dejar en el voucher un espacio de embozado para marcar el relieve de la tarjeta
8Fecha de vencimiento de la tarjetaXXX7 - expiration, pero la fecha de vencimiento de la tarjeta debe ser siempre XX/XXLa fecha de vencimiento de la tarjeta siempre va enmascarada
9Número de cuentaOOO75 - accountNumber

Se debe imprimir el número de cuenta en caso de que la tarjeta lo devuelva

En Posnet, cuando se reciba al menos un asterisco (“*”) se deberá imprimir el Número de Tarjeta en forma completa y se deberá imprimir el campo Número de Cuenta tal como se lo recibió

10Tarjeta o proveedor con que se efectuó la operaciónXXX33 - creditCardIssuerName
11Importe y moneda de la operaciónXXX12 - amount y 13 - currencyPosCode
12Cantidad de cuotasXXX14 - payments
13

Identificador de la aplicación (AID)

O-O1110 - pinpadApplicationIdSe debe imprimir este valor en caso de que el ingreso de la tarjeta sea Chip y cuando el valor sea devuelto
14

Nombre de la aplicación (APN)

O-O1111 - pinpadApplicationNameSe debe imprimir este valor en caso de que el ingreso de la tarjeta sea Chip y cuando el valor sea devuelto
15Modo de autorizaciónXXX23 - authorizationModeCuando la transacción es offline, se debe dejar en el voucher un espacio de embozado para marcar el relieve de la tarjeta
16Código de autorización otorgado por el EmisorXXX22 - authorizationCode
17Número de cupón originalOOO17 - originalTrxTicketNrSólo en las transacciones de Anulaciones de compra y Devoluciones
18Fecha del cupón originalOOO16 - originalDateSólo en las transacciones de Devoluciones
19Importe y moneda de la extracción en efectivoOO-

54 - additionalAmount


20Importe y moneda total de la operación (suma entre la compra/anulación y la extracción)OO-N/ASólo en operación compra + extracción y anulación de compra + extracción
21

Tipo de cuenta de tarjetas de débito Maestro

Opciones:

  • Caja de ahorros en pesos
  • Cuenta corriente en pesos
  • Caja de ahorros en dólares
  • Cuenta corriente en dólares
OO-57 - accountType

Exclusivo para tarjetas Maestro.

Mastercard Debit no solicita el ingreso de este dato ni se imprime en el voucher

22Tipo de planOO-15 - planSólo para emisores que lo requieran
23Nombre del tarjeta habienteOOO

1112 - cardHolderName

Nombre del titular de la tarjeta si el track I está presente y la lectura fue por banda
24Versión del software o aplicaciónXXX

82 - softwareVersion


25Resultado descriptivo de la operaciónOOO27 - isoCode
26Leyenda "Operación a confirmar"O--N/ACuando es una devolución realizada por VISA, siempre se debe imprimir esta leyenda en el voucher
27Mensaje adicionalO--

81 - responseAuth

Es opcional y se puede agregar para informarle alguna información adicional al cliente
28

Tipo de tarjeta

XXX1113 - cardIsDebitTarjeta de débito o tarjeta de crédito
-Verificación de pin offline--O59 - offlinePinCheckSi el dato se encuentra, se imprime en el voucher
-Tipo de criptograma y valor--O1138 - emvDataSólo será retornado en operaciones CHIP con tarjetas Amex
-

Número de referencia de recuperación (RRN)

--O68 - rrn

 

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



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