...
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. |
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" |
27/07/2017 | 1.21 | Modificación del apartado "Pre requisitos" |
02/08/2017 | 1.22 | Agregación de campo 22 – authorizationCode en el requerimiento de la operación "Leer Datos de la Tarjeta" |
06/10/2017 | 1.23 | Actualización de la estructura y numeración del documento |
14/11/2017 | 1.24 | Incorporación del apartado "Instalación" |
01/02/2018 | 1.25 | Aclaración sobre requerimiento de software |
23/04/2018 | 1.26 | Revisión general del documento. Agregado de apartado Pagos Parciales. |
13/06/2018 | 1.27 | Agregado de procesamiento de tarjetas de empleados |
12/07/2018 | 1.28 | Agregado 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/2018 | 1.29 | Incorporación de la funcionalidad PEI en la mensajería |
17/08/2018 | 1.30 | Agregado de campo 1104 - prefixesList en la respuesta de la operación "Leer Datos de la Tarjeta" |
14/01/2019 | 1.31 | Incorporación de las funcionalidades de impresión de vouchers en la mensajería |
25/01/2019 | 1.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/2019 | 1.33 | Incorporación de la funcionalidad Billeteras Electrónicas QR (Mercado Pago y Todo Pago) |
03/04/2019 | 1.34 | Agregado del campo 0 (compañía) en todos los tipos de transacciones. |
17/05/2019 | 1.35 | Incorporación de la funcionalidad Cuenta DNI y Promociones PEI. |
20/05/2019 | 1.36 | Incorporación de apartado de compatibilidad con VTOL Server. |
02/08/2019 | 1.37 | Incorporación de funcionalidad de Billeteras electrónicas con manejo de cuotas. |
08/08/2019 | 1.38 | Incorporación de funcionalidad Contactless con pinpad de First Data. |
09/08/2019 | 1.39 | Incorporación de apartado para integrar operaciones con tarjetas Contactless. |
24/10/2019 | 1.40 | Agregado 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/2019 | 1.41 | Agregado de anexo 6.10 Vouchers con la especificación de los campos de los comprobantes |
Âncora | ||||
---|---|---|---|---|
|
...
Informações |
---|
Referencias X = Obligatorio |
Número | Nombre del campo | Tipo de dato | Sale | VoidSale | Refund | VoidRefund | SaleCashBack | ServicePayment | VoidServicePayment | SalePEI | RefundPEI | Descripción |
11 | trxType | Alfanumérico | X | X | X | X | X | X | X | X | X | Tipo de Transacción:
|
12 | amount | Importe | X | X | X | X | X | X | X | X | X | 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 | X | X | X | X | X | X | X | X | X | Tipos de Moneda:
|
14 | payments | Numérico | X | X | X | X | X | X | X | - | - | Cantidad de cuotas. 2 dígitos como máximo |
15 | plan | Alfanumérico | X | X | X | X | X | X | X | - | - | 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 | - | O | X | - | - | - | - | - | - | 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 | X | X | X | X | X | X | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS |
53 | paymentCondition | Alfanumérico | O | O | O | O | O | O | O | - | - | 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 | O | O | O | O | O | O | O | - | - | Fecha efectiva. Se usa para AMEX con formato YYMM |
73 | interestAmount | Alfanumérico | O | O | O | O | O | O | O | - | - | 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 | O | O | O | O | O | O | O | - | - | Indica si puede recibir el número de cuenta (Visa y Posnet). Default = 0. Valores posible:
|
101 | differDate | Alfanumérico | O | O | O | O | O | O | O | - | - | Fecha diferida. Solo utilizada para AMEX |
118 | terminalCapability | Alfanumérico | O | O | O | O | O | O | O | - | - | Capacidad de captura. Valores 1 = Manual / 2 = Lectura de Banda / 5 = Lectura de Chip |
130 | posPeriod | Numérico | O | O | O | O | O | O | O | - | - | Indica el Periodo del POS en que se realiza la operación. Solamente es registrado en VTOL. Longitud 5 |
131 | turn | Numérico | O | O | O | O | O | O | O | - | - | Indica Turno en que se realiza la operación. Solamente es registrado en VTOL. Longitud 2 |
132 | operatorCode | Alfanumérico | O | O | O | O | O | O | O | - | - | Código de operador. Solamente es registrado en VTOL. Longitud 20 |
133 | operatorName | Alfanumérico | O | O | O | O | O | O | O | - | - | Nombre de operador. Solamente es registrado en VTOL. Longitud 50 |
134 | sellerCode | Alfanumérico | O | O | O | O | O | O | O | - | - | Código del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 20 |
135 | sellerName | Alfanumérico | O | O | O | O | O | O | O | - | - | Nombre del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 50 |
136 | attentionMode | Alfanumérico | O | O | O | O | O | O | O | - | - | Modalidad de atención (AU ó AS). Longitud 2 |
1102 | provider | Alfanumérico | O | O | O | O | O | O | O | X | X | 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 | X | X | X | X | X | X | X | X | X | 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 | Sale | VoidSale | Refund | VoidRefund | SaleCashBack | ServicePayment | VoidServicePayment | SalePEI | RefundPEI | Descripción |
0 | company | Numérico | X | X | X | X | X | X | X | X | X | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | X | X | X | X | X | X | X | X | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | X | X | X | X | X | X | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
6 | cardNumber | Numérico | O | O | O | O | O | O | O | - | - | Número de tarjeta en texto plano. Solo presente en Tarjeta de Excepción o Tarjetas de Empleados |
9 | track2 | Alfanumérico | O | O | O | O | O | O | O | - | - | Track2 de la tarjeta entero. Solo presente en Tarjeta de Excepción o Tarjetas de Empleados |
10 | inputMode | Alfanumérico | X | X | X | X | X | X | X | X | X | Forma en que se ingresó/leyó la tarjeta. Valores posibles:
|
22 | authorizationCode | Alfanumérico | O | O | O | O | O | O | O | - | - | Código de autorización generado por el centro autorizador para la transacción cuando al transacción fue aprobada |
23 | authorizationMode | Alfanumérico | X | X | X | X | X | X | X | - | - | Modo de Autorización:
|
24 | lastTrxId | Numérico | X | X | X | X | X | X | X | - | - | 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 | X | X | X | X | X | X | X | X | X | 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 | X | X | X | X | X | X | X | X | X | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | X | X | X | X | X | X | X | X | X | 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 | X | X | X | X | X | X | X | X | X | Mensaje de la Respuesta ISO-8583 relacionado con el código del campo 27 |
29 | serialNumber | Numérico | X | X | X | X | X | X | X | - | - | Número que identifica de la terminal lógica en la que se procesó la transacción |
30 | businessNumber | Numérico | X | X | X | X | X | X | X | - | - | Número de comercio en el que se procesó la transacción |
31 | lotNumber | Numérico | X | X | X | X | X | X | X | - | - | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | O | O | O | O | O | O | O | - | - | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo |
33 | creditCardIssuerName | Alfanumérico | O | O | O | O | O | O | O | - | - | Nombre del Centro emisor de la tarjeta |
34 | hostNameName | Alfanumérico | O | O | O | O | O | O | O | - | - | Nombre del canal por el cual se autorizó la tarjeta |
35 | errorDescription | Alfanumérico | O | O | O | O | O | O | O | O | O | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es “Error” |
42 | lotDefinitionId | Numérico | X | X | X | X | X | X | X | - | - | Identificador de la definición de lote |
57 | accountType | Alfanumérico | O | O | O | O | O | O | O | - | - | Campo que se emplea para identificar el tipo de cuenta. Se usa para tarjetas de débito. Los valores posibles son:
|
58 | workingKey | Alfanumérico | O | O | O | O | O | O | O | O | O | 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 |
59 | offlinePinCheck | Numérico | O | O | O | O | O | O | O | O | O | Informa si se verifica o no el Pin Offline con AMEX EMV. Valores posibles:
|
66 | track1 | Alfanumérico | O | O | O | O | O | O | O | - | - | Track1 de la tarjeta entero. Solo presente en Tarjeta de Excepción o Tarjetas de Empleados |
68 | rrn | Numérico | O | O | O | O | O | O | O | - | - | Reference referral number |
75 | accountNumber | Alfanumérico | O | O | O | O | O | O | O | - | - | Número de cuenta. Este campo es devuelto si el campo 74- requestAccountNumber fue activado en el requerimiento. Longitud 28. |
81 | responseAuth | Alfanumérico | O | O | O | O | O | O | O | - | - | 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 | O | O | O | O | O | O | O | - | - | Versión de la aplicación |
130 | posPeriod | Numérico | O | O | O | O | O | O | O | - | - | [Opcional si viaja en la solicitud] Periodo enviado por el POS. Longitud 5 |
131 | turn | Numérico | O | O | O | O | O | O | O | - | - | [Opcional si viaja en la solicitud] Turno. Longitud 2 |
132 | operatorCode | Alfanumérico | O | O | O | O | O | O | O | - | - | [Opcional si viaja en la solicitud] Código de operador. Longitud 20 |
133 | operatorName | Alfanumérico | O | O | O | O | O | O | O | - | - | [Opcional si viaja en la solicitud] Nombre de operador. Longitud 50 |
134 | sellerCode | Alfanumérico | O | O | O | O | O | O | O | - | - | [Opcional si viaja en la solicitud] Código del vendedor. Longitud 20 |
135 | sellerName | Alfanumérico | O | O | O | O | O | O | O | - | - | [Opcional si viaja en la solicitud] Nombre del vendedor. Longitud 50 |
136 | attentionMode | Alfanumérico | O | O | O | O | O | O | O | - | - | [Opcional si viaja en la solicitud] Modalidad de atención (AU ó AS). Longitud 2 |
145 | exceptionBinName | Alfanumérico | O | O | O | O | O | O | O | - | - | Nombre de la tarjeta de Excepción. Solo presente en Tarjeta de Excepción o Tarjetas de Empleados |
166 | trxReferenceNumber | Numérico | X | X | X | X | X | X | 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. |
1010 | currentSessionId | Numérico | X | X | X | X | X | X | X | X | X | Identificador de la sesión actual |
1027 | libResponseCode | Numérico | X | X | X | X | X | X | X | X | X | 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 | X | X | X | X | X | X | X | X | X | Mensaje descriptivo del código de respuesta de la librería |
1103 | cardContextId | Numérico | X | X | X | X | X | X | X | X | X | Identifica el contexto de la tarjeta. Es un valor de referencia a la tarjeta leída a través del PINPAD. |
1110 | pinpadApplicationId | Alfanumérico | X | X | X | X | X | X | X | - | - | Identificador de la Aplicación del PINPAD. |
1111 | pinpadApplicationName | Alfanumérico | X | X | X | X | X | X | X | - | - | Nombre de la Aplicación del PINPAD. |
1112 | cardHolderName | Alfanumérico | O | O | O | O | O | O | O | X | X | Nombre del titular de la tarjeta si el track I está presente y la lectura fue por banda. |
1120 | voucherHeader | Mapa | O | O | O | O | O | O | O | - | - | [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 | O | O | O | O | O | O | O | - | - | [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 | O | O | O | O | O | O | O | - | - | [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 | O | O | O | O | O | O | O | - | - | [Opcional 2] Reservado para uso futuro. Retorna el voucher completo y formateado para ser impreso. |
1124 | printVoucher | Numérico | O | O | O | O | O | O | O | - | - | [Opcional 3] Reservado para uso futuro. Indica si la impresión del voucher tuvo éxito o no. Valores permitidos:
|
170 | idCommercePEI | Alfanumérico | - | - | - | - | - | - | - | X | X | Identificador PEI de compañía |
171 | idBranchPEI | Alfanumérico | - | - | - | - | - | - | - | X | X | Identificador PEI de local |
172 | idTerminalPEI | Alfanumérico | - | - | - | - | - | - | - | X | X | Identificador PEI de terminal |
153 | idOperationPEI | Alfanumérico | - | - | - | - | - | - | - | X | X | Identificador de la operación PEI de pago o devolución. |
154 | idOperationOrigenPEI | Alfanumérico | - | - | - | - | - | - | - | - | X | Identificador de la operación PEI de origen con la cual se solicitó la devolución. Sólo para RefundPEI |
278 | bankingRefNum | Alfanumé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. |
280 | clientCopyVoucher | Alfanumérico | X | X | X | X | X | X | X | - | - | Campo para imprimir copia al cliente. Valores posibles: False: imprimir copia al cliente sin consultarlo. |
281 | requiresSignature | Alfanumérico | X | X | X | X | X | X | X | - | - | Campo para solicitar firma al cliente. Valores posibles: False: no requerido |
1138 | emvData | Alfanumérico | O | O | O | O | O | O | O | - | - | 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 |
Número | Nombre del campo | Tipo de dato | Sale | VoidSale | Refund | VoidRefund | SaleCashBack | ServicePayment | VoidServicePayment | Descripción |
6 | cardNumber | Numérico | O | O | O | O | O | O | O | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expiration | Numérico | O | O | O | O | O | O | O | Formato YYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | Cvc | Numérico | O | O | O | O | O | O | O | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
9 | track2 | Alfanumérico | O | O | O | O | O | O | O | 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 | X | X | X | X | X | X | X | Forma en que se ingresó/leyó la tarjeta. Valores posibles:
|
11 | trxType | Alfanumérico | X | X | X | X | X | X | X | Tipo de Transacción:
|
12 | amount | Importe | X | X | X | X | X | X | X | 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 | X | X | X | X | X | X | X | Tipos de Moneda:
|
14 | payments | Numérico | X | X | X | X | X | X | X | Cantidad de cuotas. 2 dígitos como máximo |
15 | plan | Alfanumérico | X | X | X | X | X | X | X | 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 | - | O | X | - | - | - | - | 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 | O | O | O | O | O | 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 |
22 | authorizationCode | Alfanumérico | O | O | O | O | O | O | O | 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 | O | O | O | O | O | O | O | 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 | X | X | X | X | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS |
53 | paymentCondition | Alfanumérico | O | O | O | O | O | O | O | 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 | O | O | O | O | O | O | O | Fecha efectiva. Se usa para AMEX con formato YYMM |
73 | interestAmount | Alfanumérico | O | O | O | O | O | O | O | 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 | O | O | O | O | O | O | O | Indica si puede recibir el número de cuenta (Visa y Posnet). Default = 0. Valores posible:
|
101 | differDate | Alfanumérico | O | O | O | O | O | O | O | Fecha diferida. Solo utilizada para AMEX |
130 | posPeriod | Numérico | O | O | O | O | O | O | O | Indica el Periodo del POS en que se realiza la operación. Solamente es registrado en VTOL. Longitud 5 |
131 | turn | Numérico | O | O | O | O | O | O | O | Indica Turno en que se realiza la operación. Solamente es registrado en VTOL. Longitud 2 |
132 | operatorCode | Alfanumérico | O | O | O | O | O | O | O | Código de operador. Solamente es registrado en VTOL. Longitud 20 |
133 | operatorName | Alfanumérico | O | O | O | O | O | O | O | Nombre de operador. Solamente es registrado en VTOL. Longitud 50 |
134 | sellerCode | Alfanumérico | O | O | O | O | O | O | O | Código del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 20 |
135 | sellerName | Alfanumérico | O | O | O | O | O | O | O | Nombre del vendedor que realiza la operación. Solamente es registrado en VTOL. Longitud 50 |
136 | attentionMode | Alfanumérico | O | O | O | O | O | O | O | Modalidad de atención (AU ó AS). Longitud 2 |
1103 | cardContextId | Numérico | X | X | X | X | X | X | X | 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 | Sale | VoidSale | Refund | VoidRefund | SaleCashBack | ServicePayment | VoidServicePayment | Descripción |
0 | company | Numérico | X | X | X | X | X | X | X | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | X | X | X | X | X | X | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | X | X | X | X | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
22 | authorizationCode | Alfanumérico | O | O | O | O | O | O | O | Código de autorización generado por el centro autorizador para la transacción. |
23 | authorizationMode | Alfanumérico | X | X | X | X | X | X | X | Modo de Autorización:
|
24 | lastTrxId | Numérico | X | X | X | X | X | X | X | 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 | X | X | X | X | X | X | X | 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 | X | X | X | X | X | X | X | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | X | X | X | X | X | X | X | 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 | X | X | X | X | X | X | X | Mensaje de la Respuesta ISO-8583 relacionado con el código del campo 27 |
29 | serialNumber | Numérico | X | X | X | X | X | X | X | Número que identifica de la terminal lógica en la que se procesó la transacción |
30 | businessNumber | Numérico | X | X | X | X | X | X | X | Número de comercio en el que se procesó la transacción |
31 | lotNumber | Numérico | X | X | X | X | X | X | X | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | O | O | O | O | O | O | O | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo |
33 | creditCardIssuerName | Alfanumérico | X | X | X | X | X | X | X | Nombre del Centro emisor de la tarjeta |
34 | hostName | Alfanumérico | O | O | O | O | O | O | O | Nombre del canal por el cual se autorizó la tarjeta |
35 | errorDescription | Alfanumérico | O | O | O | O | O | O | O | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es “Error” |
42 | lotDefinitionId | Numérico | X | X | X | X | X | X | X | Identificador de la definición de lote |
58 | workingKey | Alfanumérico | O | O | O | O | O | O | O | 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 | X | X | X | X | X | X | X | Reference referral number |
75 | accountNumber | Alfanumérico | O | O | O | O | O | O | O | Número de cuenta. Este campo es devuelto si el campo 74- requestAccountNumber fue activado en el requerimiento. Longitud 28. |
81 | responseAuth | Alfanumérico | O | O | O | O | O | O | O | 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 | X | X | X | X | X | X | X | Versión de la aplicación |
130 | posPeriod | Numérico | O | O | O | O | O | O | O | [Opcional si viaje en la solicitud] Periodo enviado por el POS. Longitud 5 |
131 | turn | Numérico | O | O | O | O | O | O | O | [Opcional si viaje en la solicitud] Turno. Longitud 2 |
132 | operatorCode | Alfanumérico | O | O | O | O | O | O | O | [Opcional si viaje en la solicitud] Código de operador. Longitud 20 |
133 | operatorName | Alfanumérico | O | O | O | O | O | O | O | [Opcional si viaje en la solicitud] Nombre de operador. Longitud 50 |
134 | sellerCode | Alfanumérico | O | O | O | O | O | O | O | [Opcional si viaje en la solicitud] Código del vendedor. Longitud 20 |
135 | sellerName | Alfanumérico | O | O | O | O | O | O | O | [Opcional si viaje en la solicitud] Nombre del vendedor. Longitud 50 |
136 | attentionMode | Alfanumérico | O | O | O | O | O | O | O | [Opcional si viaje en la solicitud] Modalidad de atención (AU ó AS). Longitud 2 |
166 | trxReferenceNumber | Numérico | X | X | X | X | X | X | 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. |
1010 | currentSessionId | Numérico | X | X | X | X | X | X | X | Identificador de la sesión actual |
1027 | libResponseCode | Numérico | X | X | X | X | X | X | X | 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 | X | X | X | X | X | X | X | Mensaje descriptivo del código de respuesta de la librería |
1110 | pinpadApplicationId | Alfanumérico | X | X | X | X | X | X | X | Identificador de la Aplicación del PINPAD. |
1111 | pinpadApplicationName | Alfanumérico | X | X | X | X | X | X | X | Nombre de la Aplicación del PINPAD. |
1112 | CardHolderName | Alfanumérico | O | O | O | O | O | O | O | Nombre del titular de la tarjeta si el track I está presente y la lectura fue por banda. |
1120 | voucherHeader | Mapa | O | O | O | O | O | O | O | [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 | O | O | O | O | O | O | O | [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 | O | O | O | O | O | O | O | [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 | O | O | O | O | O | O | O | [Opcional 2] Reservado para uso futuro. Retorna el voucher completo y formateado para ser impreso. |
1124 | printVoucher | Numérico | O | O | O | O | O | O | O | [Opcional 3] Reservado para uso futuro. Indica si la impresión del voucher tuvo éxito o no. Valores permitidos:
|
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:
|
25 | dateTime | Numérico | X | Fecha 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 |
1103 | cardContextId | Numérico | X | 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" |
1118 | voucherParameters | Mapa | X | Se informa con el siguiente formato [copyCount\|nroCopia] la cantidad de copias a efectuar del comprobante, donde:
|
1130 | requestSignature | Numérico | X | Se informa si se solicitará o no la firma en el Pinpad. Valores posibles:
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. |
1131 | voucherHeader | Mapa | O | 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 |
1132 | clientDNI | Alfanumérico | O | DNI del cliente. Valor hasta 9 caracteres |
1133 | billNumber | Numérico | O | Número de la factura. Valor hasta 11 caracteres |
1134 | voucherPromoMessage | Mapa | O | Se 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 |
1135 | voucherPromoLine | Alfanumérico | O | Se informa la promoción obtenida. Valor hasta 40 caracteres |
1136 | billType | Alfanumérico | O | Tipo 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 | ||
---|---|---|
| ||
X = Obligatorio |
...
Aviso | ||
---|---|---|
| ||
Ú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: |
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 nuevamente | El PINPAD genera un error en la lectura de una tarjeta Chip. |
019 | (PINPAD) Error falta Master Key | El PINPAD informa que falta la master key. |
025 | (PINPAD) Error CTLS - Intente por chip | El 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 |
700 | No 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 |
707 | Monto inválido | Cuando el monto off-line excede el límite configurado en el servidor. |
708 | Monto Cash Back inválido | Cuando el monto cashback excede el límite configurado en el servidor. |
711 | Error cancelando las transacciones. Existe una inconsistencia | Cuando no logra realizar un rollback sobre una transacción existente en la sesión. |
713 | Transaccion invalida | Cuando el dispositivo no soporta el tipo de transacción ingresado. |
718 | Modo de ingreso invalido | Cuando la lectura realizada por el PINPAD no es soportada por la versión de EMVKIT. |
719 | Error en impresion de voucher | Existió un error y el comprobante no se puede imprimir |
720 | No permite operar con la tarjeta ingresada | Cuando el tipo de transacción que se intenta realizar no soporta la tarjeta ingresada. |
721 | Transaccion no soporta cashback | Cuando el tipo de transacción que se intenta realizar no soporta cashback. |
722 | Falta de papel en dispositivo | El pinpad se queda sin papel y no se puede imprimir el voucher. |
723 | Excede el máximo de líneas permitido | El pinpad no puede imprimir el voucher genérico debido a que excede la cantidad de líneas permitidas. |
724 | Modo Ingreso Error | El PINPAD no permite el tipo de ingreso recibido. |
725 | Error en la configuracion del sistema | Cuando se requiere un cambio en la configuración del servidor. |
726 | No se encontro un dispositivo conectado | Cuando el dispositivo no se encuentra debidamente configurado. |
727 | Compañía inválida | Cuando la compañía informada no es válida, según lo configurado en el servidor. |
728 | No existe configuracion para la version requerida | Cuando la librería intenta obtener una versión de configuración que no existe en VTOL Server. Problemas de compatibilidad. |
729 | Reintente 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. |
730 | Reintente operación sin modificar monto original | Cuando se modifica el monto o monto cashback en la operación de "Procesar operación con tarjeta". |
731 | Error en provider | Cuando 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 |
808 | Error cancelando operacion Tarjeta Chip. Intente anularla | Cuando una operación con tarjeta Chip no puede realizar un rollback de la operación. |
809 | Error en la sincronización del PinPad. | El PINPAD no puede completar el proceso de sincronización. |
810 | Error 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. |
811 | Comando no soportado por el Pinpad | Cuando el dispositivo o la versión del mismo, no soporta el tipo de transacción ingresado. |
812 | Reintente operación | Cuando se realiza un cambio en la configuración del servidor sobre la llave RSA, y se aplican los cambios en EMVKIT. |
813 | No se permite la impresion de la corriente transaccion | El 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 |
Ref | Dato | Canal VISA | Canal POSNET | Canal AMEX | Campo EMV Kit | Nota |
---|---|---|---|---|---|---|
1 | Tipo de transacción u operación Opciones VISA:
Opciones Posnet y AMEX:
| X | X | X | 11 - trxType | |
2 | Número de comercio o establecimiento asignado por el Emisor | X | X | X | 30 - businessNumber | |
3 | Número de Terminal | X | X | X | 29 - serialNumber | |
4 | Número de Lote | X | X | X | 31 - lotNumber | |
5 | Número de cupón correspondiente a la transacción | X | X | X | 32 - ticket | |
6 | Últimos 4 números de la tarjeta | X | X | X | 1106 - 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:
Opciones Posnet:
| X | X | X | 10 - inputMode | Cuando el ingreso es manual (Mastercard), se debe dejar en el voucher un espacio de embozado para marcar el relieve de la tarjeta |
8 | Fecha de vencimiento de la tarjeta | X | X | X | 7 - expiration, pero la fecha de vencimiento de la tarjeta debe ser siempre XX/XX | La fecha de vencimiento de la tarjeta siempre va enmascarada |
9 | Número de cuenta | O | O | O | 75 - 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ó |
10 | Tarjeta o proveedor con que se efectuó la operación | X | X | X | 33 - creditCardIssuerName | |
11 | Importe y moneda de la operación | X | X | X | 12 - amount y 13 - currencyPosCode | |
12 | Cantidad de cuotas | X | X | X | 14 - payments | |
13 | Identificador de la aplicación (AID) | O | - | O | 1110 - pinpadApplicationId | Se 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 | - | O | 1111 - pinpadApplicationName | Se debe imprimir este valor en caso de que el ingreso de la tarjeta sea Chip y cuando el valor sea devuelto |
15 | Modo de autorización | X | X | X | 23 - authorizationMode | Cuando la transacción es offline, se debe dejar en el voucher un espacio de embozado para marcar el relieve de la tarjeta |
16 | Código de autorización otorgado por el Emisor | X | X | X | 22 - authorizationCode | |
17 | Número de cupón original | O | O | O | 17 - originalTrxTicketNr | Sólo en las transacciones de Anulaciones de compra y Devoluciones |
18 | Fecha del cupón original | O | O | O | 16 - originalDate | Sólo en las transacciones de Devoluciones |
19 | Importe y moneda de la extracción en efectivo | O | O | - | 54 - additionalAmount | |
20 | Importe y moneda total de la operación (suma entre la compra/anulación y la extracción) | O | O | - | N/A | Só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:
| O | O | - | 57 - accountType | Exclusivo para tarjetas Maestro. Mastercard Debit no solicita el ingreso de este dato ni se imprime en el voucher |
22 | Tipo de plan | O | O | - | 15 - plan | Sólo para emisores que lo requieran |
23 | Nombre del tarjeta habiente | O | O | O | 1112 - cardHolderName | Nombre del titular de la tarjeta si el track I está presente y la lectura fue por banda |
24 | Versión del software o aplicación | X | X | X | 82 - softwareVersion | |
25 | Resultado descriptivo de la operación | O | O | O | 27 - isoCode | |
26 | Leyenda "Operación a confirmar" | O | - | - | N/A | Cuando es una devolución realizada por VISA, siempre se debe imprimir esta leyenda en el voucher |
27 | Mensaje adicional | O | - | - | 81 - responseAuth | Es opcional y se puede agregar para informarle alguna información adicional al cliente |
28 | Tipo de tarjeta | X | X | X | 1113 - cardIsDebit | Tarjeta de débito o tarjeta de crédito |
- | Verificación de pin offline | - | - | O | 59 - offlinePinCheck | Si el dato se encuentra, se imprime en el voucher |
- | Tipo de criptograma y valor | - | - | O | 1138 - emvData | Sólo será retornado en operaciones CHIP con tarjetas Amex |
- | Número de referencia de recuperación (RRN) | - | - | O | 68 - rrn |
Nota |
---|
|
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:
- EMVKit 1.5 con VTOL Server 3.8.0.5
- Compatibilidad: Se puede realizar el ruteo de transacciones por local, según la configuración que se establezca en VTOL Server.
- Compatibilidad: Se puede realizar el ruteo de transacciones por local, según la configuración que se establezca en VTOL Server.
- EMVKit 1.5 con VTOL Server 3.8.0.4
- 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.
- 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.
- EMVKit 1.4 con VTOL Server 3.8.0.5
- 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.