Manual de Integración
VTOL EMVKIT AR 1.5.X
...
Painel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Painel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
|
Âncora | ||||
---|---|---|---|---|
|
...
Índice |
---|
Âncora | ||||
---|---|---|---|---|
|
...
Propiedad | Descripción | Valor por defecto |
portName | Nombre del puerto | COM9 |
dataBits | Data bits length | 8 |
stopBits | 1 | |
baudRate | Baud rate of serial port | 19200 |
parity | Paridad | none |
timeout | Default time to wait for response from PINPad. This time is expressed in milliseconds. | 180000 |
pinEntryTimeout | Time in milliseconds to wait until card holder enters PIN. If card holder don't enter PIN during this milliseconds, then a packet 72 should be sent to PINPad to cancel PIN entry. | 180000 |
bufferSize | Tamaño máximo del buffer de lectura del puerto serie. | 2048 |
nativeImpleClass | Clase de driver nativo para comunicarse con el PINPad. | |
Y01Tec | Tiempo entre comandos expresado en segundos (Formato: NNN). Es el tiempo máximo que el PINPAD espera el siguiente comando. | 035 |
firmwareVersion | Opcional. Indica la versión de compatibilidad de firmware con la que trabajará EMVKIT. | |
requiredInitAppVersions | Opcional (Solo para FD). Indica que versiones de compatibilidad de firmware requieren enviar mensaje de inicio al PINPAD | |
approveInSecondInstance | Opcional. Indica si EMVKIT permite que el PINPAD apruebe en segunda decisión, una transacción rechazada por el HOST. | True |
...
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. |
11 | trxType | Alfanumérico | X | X | X | X | X | X | X | X | X | Tipo de Transacción:
|
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. Obligatorio solamente cuando la autorización fue aprobada telefónicamente |
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 | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS |
157 | customerDoc | Alfanumérico | - | - | - | - | - | - | - | X | - | Numero de documento del titular de la tarjeta |
161 | operationConcept | Numérico | - | - | - | - | - | - | - | O | - | Concepto por el cual se realiza la operación, valores posibles:
|
53 | idOperationPEI | Numérico | - | - | - | - | - | - | - | - | X | Identificador de la operación PEI de pago que se desea anular |
155 | cbu | Alfanumérico | - | - | - | - | - | - | - | - | O | Dato informado por el cliente sobre la cuenta destino de la devolución para tarjetas Banelco. Se debe informar el CBU o el Alias CBU. |
156 | cbuAlias | Alfanumérico | - | - | - | - | - | - | - | - | O | Dato informado por el cliente sobre la cuenta destino de la devolución para tarjetas Banelco |
...
Nota |
---|
Los valores de compañía, tienda y caja serán obtenidos de la sesión. |
Ejemplo
Request to Full library: {25:20190401114640;2:1;1:1;11:Sale;0:1} |
Ejemplo de SalePEI
Request: {161:1;157:32644050;25:20190122093125;11:SalePEI} |
- Respuesta
Informações |
---|
Referencias X = Obligatorio O = Opcional - = No requerido |
...
Número | Nombre del campo | Tipo de dato | cancel | Descripción |
0 | company | Numérico | X | Identificador de la compañía donde se generó la transacción |
11 | trxType | Alfanumérico | X | Tipo de Transacción:
|
Nota |
---|
Los valores de compañía, tienda y caja serán obtenidos de la sesión. |
...
Informações |
---|
Referencias X = Obligatorio |
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 | XIdentificador de la compañía donde se generó la transacció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" |
Nota |
---|
Los valores de de compañía, tienda y caja serán obtenidos de la sesión. |
...
Informações |
---|
Referencias X = Obligatorio |
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 | 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 | 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 |
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. |
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} |
...
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|
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" |
Nota |
---|
Los valores de de compañía, tienda y caja serán obtenidos de la sesión. |
...
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} |
...
Informações | ||
---|---|---|
| ||
X = Obligatorio O = Opcional - = No requerido |
Número | Nombre del campo | Tipo de dato | SalePEI | RefundPEI | QueryPEI | Descripción |
---|---|---|---|---|---|---|
03 | companyserver | NuméricoAlfanumérico | X | X | X | Identificador de la compañía donde se generódel Server que procesará la transacción. Enviar "VTOL" |
8 | Cvc | Numérico | X | X | - | Código de seguridad de la tarjeta |
9 | track2 | Alfanumérico | X | X | X | Track2 de la tarjeta entero (se envía todo el contenido del track2 en este campo) |
10 | inputMode | Alfanumérico | X | X | X | Forma en que se ingresó/leyó la tarjeta. Valor posible:
|
11 | trxType | Alfanumérico | X | X | X | Tipo de Transacción:
|
12 | amount | Importe | 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 | - | Tipos de Moneda:
|
25 | dateTime | Numérico | X | X | 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 |
66 | track1 | Alfanumérico | X | X | X | Track1 de la tarjeta entero (se envía todo el contenido del track1 en este campo) |
153 | idOperationPEI | Alfanumérico | - | X | - | Identificador de la operación PEI de pago que se desea devolver |
155 | cbu | Alfanumérico | - | O | - | CBU de la cuenta destino de la devolución asociada con la tarjeta Banelco. Si el dato se envía, el valor es validado por Link |
156 | cbuAlias | Alfanumérico | - | O | - | Alias del CBU de la cuenta destino de la devolución asociada con la tarjeta Banelco. Si el dato se envía, el valor es validado por Link |
157 | customerDoc | Alfanumérico | X | O | - | Número de documento del titular de la tarjeta |
158 | lastFourDigits | Numérico | X | X | - | Últimos 4 dígitos de la tarjeta. La solicitud de la validación de los últimos 4 dígitos de la tarjeta es configurable por prefijo |
161 | operationConcept | Numérico | O | - | - | Concepto por el cual se realiza la operación, valores posibles:
|
173 | dateTimeOriginalTrx | Numérico | - | - | X | Fecha y hora de realización de la transacción de venta o devolución que se desea consultar en formato YYYYMMDDHHMMSS. Se debe enviar el valor del campo 25 de la transacción a consultar |
Nota |
---|
Los valores de compañía, tienda y caja serán obtenidos de la sesión. |
...
Request to EMV Kit (SalePEI): Request: {158:9002;66:%b778899000000049002^apellido24/nombre24 ^371212000000000840;157:34000499;13:$;12:100;11:SalePEI;10:MSR;9:778899000000049002=371212000000000840;8:523;25:20180904131343;161:1;3:VTOL} Request to EMV Kit (RefundPEI): Request: {158:9002;66:%b778899000000049002^apellido24/nombre24 ^371212000000000840;157:34000499;156:alias;155:12345678945612345879;153:5439999999999999543;13:$;12:100;11:RefundPEI;10:MSR;9:778899000000049002=371212000000000840;8:523;25:20180904131400;3:VTOL} Request to EMV Kit (QueryPEI): Request: {10:MSR;9:778899000000049002=371212000000000840;173:20180904131400;25:20180904131915;11:QueryPEI;66:%b778899000000049002^apellido24/nombre24 ^371212000000000840;3:VTOL} |
- Respuesta
Informações | ||
---|---|---|
| ||
X = Obligatorio O = Opcional - = No requerido |
Número | Nombre del campo | Tipo de dato | SalePEI | RefundPEI | QueryPEI | Descripción |
---|---|---|---|---|---|---|
0 | company | Numérico | X | X | X | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | X | X | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
25 | dateTime | Numérico | 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 | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | 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 para PEI |
28 | responseMessage | Alfanumérico | X | X | X | Mensaje de la Respuesta ISO-8583 relacionado con el código del campo 27 |
35 | errorDescription | Alfanumérico | X | X | X | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es “Error” |
153 | idOperationPEI | Alfanumérico | X | X | X | Identificador de la operación PEI de pago o de devolución |
154 | idOperationOrigenPEI | Alfanumérico | - | X | O | Identificador de la operación PEI de origen con la cual se solicitó la devolución |
170 | idCommercePEI | Alfanumérico | X | X | X | Identificador PEI de compañía |
171 | idBranchPEI | Alfanumérico | X | X | X | Identificador PEI de local |
172 | idTerminalPEI | Alfanumérico | X | X | X | Identificador PEI de terminal |
174 | originalTrxStatus | Numérico | - | - | O | Informa el estado de la transacción original en una operación de consulta. Si el campo en la respuesta no se recibe es porque la consulta falló. Puede contener uno de los siguientes valores:
|
278 | bankingRefNum | Alfanumérico | X | - | 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. |
1010 | currentSessionId | Numérico | X | X | X | Identificador de la sesión actual |
1027 | libResponseCode | Numérico | 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 | Mensaje descriptivo del código de respuesta de la librería |
...
El mensaje queryPEI debe generarse dentro de la sesión del POS en la cual se realizó la operación de pago o devolución PEI, es decir que previamente se ejecutaron las operaciones de "Leer datos de tarjeta" y "Procesar operación con tarjeta". Esto se debe a que la consulta a Link se deben enviar los track 1 y 2 de la tarjeta.
- Requerimiento
Número | Nombre del campo | Tipo de dato | QueryPEI | Descripción |
---|---|---|---|---|
0 | company | Numérico | X | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | X | Identificador del sitio originador de la transacción. |
2 | node | Numérico | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
11 | trxType | Alfanumérico | X | Tipos de Transacciones:
|
25 | dateTime | Numérico | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS |
173 | dateTimeOriginalTrx | Numérico | X | Fecha y hora de realización de la transacción de venta o devolución que se desea consultar en formato YYYYMMDDHHMMSS. Se debe enviar el valor del campo 25 de la transacción a consultar. |
Ejemplo
Request: {173:20190122093302;25:20190122093352;11:QueryPEI;0:1} |
- Respuesta
Número | Nombre del campo | Tipo de dato | QueryPEI | Descripción |
---|---|---|---|---|
0 | company | Numérico | X | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | Identificación del nodo, en el sitio originador, donde se generó la 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. |
26 | responseCode | Alfanumérico | X | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | X | Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo |
28 | responseMessage | Numérico | X | Mensaje de la Respuesta con la descripción ISO-8583 del Centro Autorizador relacionado con el código del campo 27. |
153 | idOperationPEI | Alfanumérico | 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. |
170 | idCommercePEI | Alfanumérico | X | Identificador PEI de compañía |
171 | idBranchPEI | Alfanumérico | X | Identificador PEI de local |
172 | idTerminalPEI | Alfanumérico | X | Identificador PEI de terminal |
174 | originalTrxStatus | Numérico | X | Informa el estado de la transacción original en una operación de consulta. Si el campo en la respuesta no se recibe es porque la consulta falló. Puede contener uno de los siguientes valores:
|
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. |
1010 | currentSessionId | Numérico | X | Identificador de la sesión actual |
1027 | libResponseCode | Numérico | 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 | Mensaje descriptivo del código de respuesta de la librería |
Ejemplo
Response message: {0:1;1:1;2:1;1027:000;1028:Ok;170:143;171:SYN1;172:SYN001;174:0;1010:1553778037824;153:100442;25:20190328100306;26:ISO8583;27:00;28:APROBADA} |
H. Impresión de Vouchers
Este comando tiene como funcionalidad la solicitud de firma digital en el dispositivo pinpad, y la impresión de vouchers o comprobantes de pago. La solicitud de firma digital queda restringida a los dispositivos con firmware A0808 o superior de los dispositivos de First Data.
...
- requestSignature = 1: Solicita firma digital y genera comprobante digital.
- requestSignature distinto de 1: No genera comprobante digital.
Nota | ||
---|---|---|
|
- Requerimiento
Informações | ||
---|---|---|
| ||
Esta funcionalidad se encuentra disponibleencuentra disponible para los pinpad de PosnetFirst Data, a partir del firmware A0808. |
...
X = Obligatorio |
Mensajería
- Requerimiento
Informações | ||
---|---|---|
| ||
X = Obligatorio |
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 |
Nota |
---|
Los valores de compañía, tienda y caja serán obtenidos de la sesión. |
Ejemplo
Request to Full library: {1103:20190115143308991;1118:[copyCount |
|1];11:PrintTrxVoucher;1136:B;1135:Vale Otro!;1134:[promotional1|**************************,promotional2| Gracias por utilizar,promotional3| nuestros Servicios,promotional4| Esperamos su regreso,promotional5| El presente voucher,promotional6| no contiene premios,promotional7|**************************];1133:1235456;1132:123456789;1131:[header1| ******************************,header2| ** NAPSE **,header3| ******************************,header4|Conectate con la evolucion del Retail,header5|-------------------------------------];1130:1;2:1;25:20190115143332;1:1} |
- Respuesta
Número | Nombre del campo | Tipo de dato | PrintTrxVoucher | Descripción |
1010 | currentSessionId | Numérico | X | Identificador de la sesión |
1027 | libResponseCode | Numérico | X | Código de respuesta de la librería. |
1028 | libResponseMessage | Alfanumérico | X | Mensaje descriptivo del código de respuesta de la librería |
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" |
Ejemplo
Response from Full library: {1010:1547573567858;1027:000;1028:Ok;1103:20190115143308991} |
I. Impresión Libre
Este comando tiene como funcionalidad la libre impresión y formateo de comprobantes por parte del punto de venta.
...
Informações | ||
---|---|---|
| ||
X = Obligatorio O = Opcional - = No requerido |
Número | Nombre del campo | Tipo de dato | Print | 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 |
1137 | printContent | Base 64 | X | Texto en plano codificado en base 64 con el siguiente formato: XXNN ***************************** Donde XX indican el formato de la línea, valores posibles:
El texto por linea es de hasta 40 caracteres cuando no es doble ancho, seguido de un salto de línea. Lineas permitidas: 30 |
Nota |
---|
Los valores de compañía, tienda y caja serán obtenidos de la sesión. |
Ejemplo
Request to Full library: {1137:MDJOTiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogICAgIA0KMDJOTiAgICAgICAg ICAgIEFWSVNPIERFIFBSRU1JTyAgICAgICAgICAgIA0KMDJOTiAgICAgKioqKioqKioqKioqKioq KioqKioqKioqKioqKiogICAgIA0KMjBOTg0KMDFOTlNZTlRIRVNJUyBMQUJPUkFUT1JJTyAxICAt ICA1OTcwNDAwMDQ0NzENCjAxTk4gICAgICAgICAgICAgICAgMjMvMTAvMTcgICAgICAgICAgICAg ICANCjIwTk4NCjIwTk4NCjAxTk4gICAgICAgICAgICAgICBQUk9NT0NJT04gICAgICAgICAgICAg ICAgICAgICAgDQowMU5OICAgICAgICAgICAgIFBFTDFQVE9ERVZFTlRBICAgICAgICAgICAgDQoy ME5ODQowMU5OICAgRkVMSUNJVEFDSU9ORVMsIFVTVEVEIFNFIEhBIEdBTkFETyAgDQowMU5OICAg WFlYIEgySCBQRUwgMSAtIFBSRU1JTyBDT01JRU5aQSBZICAgDQowMU5OICAgICAgVEVSTUlOQSBD T04gLSBQRUwgMSBIMkggWFlYICAgICAgDQoyME5ODQowM05OICAgICAgICAgICBDT0RJR08gREVM IFBSRU1JTyAgICAgICAgICAgDQowMU5OICAgICAgICAgIDc5MTQyNyBCIC0gMDAwMzU2MjIgICAg ICAgICAgDQoyME5OICAgDQoyME5OICAgDQowMU5OICBQQVJBIENBTkpFQVIgU1UgUFJFTUlPIFBS RVNFTlRFIEVTVEUgDQowMU5OVkFMRSBBIENVQUxRVUlFUiBWRU5ERURPUiBERSBFU1RFIExPQ0FM DQoyME5ODQoyME5ODQowMU5OUkVDSUJJIENPTkZPUk1FOg0KMTBOTg0KMjBOTg0KMjBOTg0KMjBO Tg==;25:20190115143513;11:Print} |
- Respuesta
Informações | ||
---|---|---|
| ||
X = Obligatorio O = Opcional - = No requerido |
Número | Nombre del campo | Tipo de dato | Descripción | |
1010 | currentSessionId | Numérico | X | Identificador de la sesión |
1027 | libResponseCode | Numérico | X | Código de respuesta de la librería. |
1028 | libResponseMessage | Alfanumérico | X | Mensaje descriptivo del código de respuesta de la librería |
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" |
Ejemplo
Response from Full library: {1010:1547573567858;1027:000;1028:Ok;1103:20190115143513} |
J. Procesar Mensajes Billeteras Electrónicas
...
- Mercado Pago: La plataforma de pagos online más importante de América Latina
- Todo Pago: La plataforma de pagos de Prisma (No disponible para esta versión de EMVKit)
Las operaciones soportadas en VTOL Server para Billeteras electrónicas son:
...
Nota |
---|
Nota: Las operatorias de billeteras electrónicas poseen tercer mensaje; por lo que en el cierre de sesión se efectuará el envío del requerimiento del tercer mensaje. |
Procedimiento para Mercado Pago
El proceso de pagos con billetera virtual siempre iniciará se realizará de la siguiente manera:
- Se inicia con el envío de una orden de venta (
...
- transacción SaleWallet) por parte del POS a VTOL
...
- .
- Recién en ese momento el comprador podrá efectuar la lectura del código QR impreso en la caja mediante su smartphone.
...
- Mercado Pago, con la información
...
- de la orden de venta recibida por VTOL, le comunicará a
...
- la app de la billetera virtual el importe total y el detalle de los artículos adquiridos.
...
- El comprador visualizará en su app mobile el detalle de la compra, y efectuará el pago seleccionado el medio de pago
...
- (
...
- tarjeta,
...
- o saldo de Mercado Pago), la tarjeta enrolada (o incorporando una nueva), las cuotas y confirmando el pago.
...
- El POS recibirá la respuesta de la
...
Para obtener de forma completa todo el detalle de la transacción, posterior venta, el POS deberá enviar de forma automática la transacción QuerySaleWallet.
La anulación, no precisa de interacción por parte del comprador en la caja. Simplemente el POS envía el identificador del número de pago del Autorizador en el mensaje RefundWallet.
- Requerimiento
...
Referencias
X = Obligatorio
O = Opcional
...
- transacción SaleWallet a través de VTOL, quien informará si la operación resultó autorizada por Mercado Pago.
- Puede darse el caso que VTOL responda "Consulte el pago por tiempo expirado". Este escenario puede surgir cuando el cliente demora en confirmar el pago desde su app mobile, y expira el tiempo designado por defecto en VTOL, entonces al POS se le da una respuesta automática por timeout. Para conocer el resultado de la operación, el POS deberá realizar una consulta (transacción QuerySaleWallet). Las respuestas del QuerySaleWallet pueden ser las siguientes:
- VTOL responde "Aprobado". Indica que el pago fue autorizado por Mercado Pago. El paso siguiente del POS es confirmar o cancelar la transacción, con un tercer mensaje.
- VTOL responde "Pago Rechazado, desea seguir esperando?". Indica que el cliente intentó pagar pero Mercado Pago rechazó el pago, pero a su vez el cliente puede volver a intentar realizar el pago con otra tarjeta u otro medio de pago, por lo cual el POS puede "seguir esperando" para permitirle al cliente intentar pagar nuevamente, y luego el POS deberá enviar un nuevo QuerySaleWallet, o directamente cancelar la operación.
- Puede darse el caso que VTOL responda "Consulte el pago por tiempo expirado". Este escenario puede surgir cuando el cliente demora en confirmar el pago desde su app mobile, y expira el tiempo designado por defecto en VTOL, entonces al POS se le da una respuesta automática por timeout. Para conocer el resultado de la operación, el POS deberá realizar una consulta (transacción QuerySaleWallet). Las respuestas del QuerySaleWallet pueden ser las siguientes:
- Por último, el POS deberá confirmar la operación, mediante el cierre de sesión (en estado Close).
Para obtener de forma completa todo el detalle de la transacción, posterior venta, el POS deberá enviar de forma automática la transacción QuerySaleWallet.
La anulación, no precisa de interacción por parte del comprador en la caja. Simplemente el POS envía el identificador del número de pago del Autorizador en el mensaje RefundWallet.
- Requerimiento
Informações |
---|
Referencias: X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SaleWallet | RefundWallet | QuerySaleWallet | Descripción |
11 | trxType | Alfanumérico | X | X | X | Tipo de Transacción:
|
12 | amount | Importe | 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 Nota: El importe debe ser el número correspondiente a la moneda informada |
13 | currencyPosCode | Alfanumérico | X | X | - | Tipos de moneda:
Nota: En el punto de venta se deberá informar la moneda de la cuenta vendedor de Mercado Pago (si el retailer posee una cuenta argentina en Mercado Pago entonces tendrá que informar la moneda $ -pesos argentinos-) Nota: Para Todo Pago la moneda siempre es $ -pesos argentinos- Importante: Tener en cuenta que operando con Mercado Pago siempre debe coincidir el país de la cuenta vendedor con el país de la cuenta comprador |
16 | originalDate | Numérico | - | X | X | Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD |
24 | lastTrxId | Numérico | O | O | O | Utilizado cuando está activo el control transaccional. En este campo el POS debe enviar la última transacción procesada correctamente. |
25 | dateTime | Numérico | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS |
268 | walletPosTrxId | Alfanumérico | X | - | O | Identificador único de la transacción de billetera para la compañía. Es originado por el POS para realizar una compra con billetera Formato: Opcional en QuerySaleWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra |
269 | walletType | Numérico | X | X | X | Tipo de billetera por la cual se cursará la transacción en el POS. Opciones: 1: Mercado Pago |
270 | posTicket | Base 64 | X | - | - | Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket |
271 | walletPaymentId | Alfanumérico | - | X | O | Identificador del número de pago informado por el Autorizador en el campo 271 de la respuesta de la operación SaleWallet Opcional en QuerySaleWallet: Se informa este campo o el campo walletPosTrxId para localizar una transacción de compra |
Nota |
---|
Los valores de compañía, tienda y caja serán obtenidos de la sesión. |
Ejemplo
Request to VTOL (SaleWallet): Request: {270:PG1lc3NhZ2U+CiAgICAgICA8aXRlbS1hZGQgc2VxPSIxIiBjb2RlPSIwMDAxIiBkaXNjb3VudGFibGU9InRydWUiIHVuaXRwcmljZT0iMjUuMCIgcXR5PSIxLjAiIGxldmVsMT0iTUVOIiBsZXZlbDI9IkNBU1VBTCIgc3VwcGxpZXI9IiIgYnJhbmQ9IkxFVklTIiB4cHJpY2U9IjI1LjAiIG1hZ25pdHVkZT0iMS4wIiBkZXNjcmlwdGlvbj0iSmVhbiBjYXN1YWwiIGN1cnJlbmN5PSIkIiAvPgogICAgICAgPGl0ZW0tYWRkIHNlcT0iMiIgY29kZT0iMDAwMiIgZGlzY291bnRhYmxlPSJ0cnVlIiB1bml0cHJpY2U9IjI4LjAiIHF0eT0iMi4wIiBsZXZlbDE9Ik1FTiIgbGV2ZWwyPSJDQVNVQUwiIHN1cHBsaWVyPSIiIGJyYW5kPSJMRVZJUyIgeHByaWNlPSI0OC4wIiBtYWduaXR1ZGU9IjEuMCIgZGVzY3JpcHRpb249IkplYW4gY2FzdWFsIiBjdXJyZW5jeT0iJCIgLz4KPC9tZXNzYWdlPg==;269:1;268:1120181116055713;13:$;12:1200;11:SaleWallet;4:DATA;3:VTOL;2:1;25:20181116055713;71:True;1:1} Request to VTOL (RefundWallet): Request: {271:4379999999999999437;269:1;16:20181116;13:$;12:1200;11:RefundWallet;4:DATA;3:VTOL;2:1;25:20181116105619;71:True;1:1} Request to VTOL (QuerySaleWallet): Request: {271:2289999999999999228;269:1;16:20190214;268:11020190514050534;25:20190214050534;11:QuerySaleWallet} |
Estructura del campo posTicket
...
Cada uno de los comandos que se envían posee diversos atributos, los cuales identifican al elemento que se está enviando y definen diversas propiedades que poseen los mismos. Poseerá un número de secuencia, el cual identifica cada elemento unívocamente:
Propiedad | Tipo de dato | Descripción | Requerido |
seq | Entero positivo | Número identificador único del elemento dentro de la transacción. | Sí |
Cada comando posee una serie de atributos que definirán las distintas propiedades del elemento que se está agregando (además del número de secuencia antes mencionado).
Para el elemento ítem, los atributos serán los siguientes:
Elemento | Atributo | Tipo de dato | Descripción | Requerido | Valor ante ausencia |
Ítem |
unitprice | Numérico positivo | Precio unitario del artículo en cuestión. | Si |
xprice | Numérico positivo | Precio extendido del artículo en cuestión. Es igual a la cantidad por el precio unitario. | Si |
qty | Entero positivo | Cantidad de artículos en la línea. | Si |
magnitude | Numérico positivo | Si el artículo es mensurable por otro unidad que no sea la cantidad, deberá ser expresad en esta propiedad. | No | 0 |
code | Alfanumérico | Código propio del artículo. | No | "-" |
brand | Alfanumérico | Marca del artículo. | No | "-" |
supplier | Alfanumérico | Proveedor al que pertenece el artículo. | No | "-" |
discountable | Alfanumérico | Si el artículo es puede recibir descuentos o no. | No | "-" |
level1 | Alfanumérico | Nivel 1 de categorización del artículo. Anteriormente este nivel se conocía con el nombre de Departamento. | No | "-" |
level2 | Alfanumérico | Nivel 2 de categorización del artículo. Anteriormente este nivel se conocía como la Familia del artículo. | No | "-" |
level3 | Alfanumérico | Nivel 3 de categorización del artículo. Anteriormente este nivel se conocía como la Categoría del artículo. | No | "-" |
level4 | Alfanumérico | Nivel 4 de categorización del artículo. Anteriormente este nivel se conocía como la subcategoría del artículo. | No | "-" |
description | Alfanumérico | Descripción del ítem | Si | |
currency | Alfanumérico | Moneda utilizada en el precio del ítem Nota: En el punto de venta se deberá informar la moneda de la cuenta vendedor de Mercado Pago (si el retailer posee una cuenta argentina en Mercado Pago entonces tendrá que informar la moneda $ -pesos argentinos-). | Si |
Ejemplo
<message> |
Aviso |
---|
Importante: Esta estructura generada debe transformarse al formato Base 64 para informárselo a VTOL en el campo 270 posTicket. |
...
Informações |
---|
Referencias X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SaleWallet | RefundWallet | QuerySaleWallet | Descripción |
0 | company | Numérico | X | X | X | Identificador de la compañía donde se generó la transacción |
1 | store | Alfanumérico | X | X | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
6 | cardNumber | Alfanumérico | - | - | O | Tarjeta enmascarada seleccionada al momento de efectuar el pago QR. El campo es opcional en caso de que se haya abonado con saldo de la cuenta de Mercado Pago |
12 | amount | Importe | - | - | X | Monto de la transacción |
13 | currencyPosCode | Alfanumérico | - | - | X | Tipos de moneda:
|
14 | payments | Numérico | - | - | O | Cantidad de cuotas seleccionadas al momento de realizar el pago QR. El campo es opcional en caso de que se haya abonado con saldo de la cuenta de Mercado Pago |
22 | authorizationCode | Alfanumérico | X | - | X | Código de autorización informado por el Autorizador |
24 | trxId | Numérico | X | X | X | Identificador de la transacción |
25 | dateTime | Numérico | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. 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 | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | X | X | X | Código de Respuesta emitido por el centro autorizador. 2 dígitos como máximo. Ver sección Códigos de Respuesta de VTOL Server para Billeteras Electrónicas |
28 | responseMessage | Alfanumérico | X | X | X | Mensaje de la Respuesta relacionado con el código del campo 27 |
140 | paymentType | Numérico | - | - | X | Tipo de pago. Valores posibles: 0: Tarjeta |
142 | providerName | Alfanumérico | - | - | O | Proveedor de la tarjeta seleccionada al momento de efectuar el pago QR. El campo es opcional en caso de que se haya abonado con saldo de la cuenta de Mercado Pago |
166 | trxReferenceNumber | Numérico | 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 |
271 | walletPaymentId | Alfanumérico | X | - | X | Identificador del número de pago informado por el Autorizador |
272 | amountRefunded | Importe | - | - | X | Monto devuelto en la transacción |
273 | paymentStatus | Alfanumérico | - | - | X | Estado de la transacción de pago informado por el Autorizador. Estados posibles: 0: Aprobado |
274 | paymentStatusDetail | Alfanumérico | - | - | X | Detalle del estado de la transacción de pago informado por el Autorizador |
275 | cardType | Numérico | - | - | O | Tipo de tarjeta seleccionada al momento de efectuar el pago QR. El campo es opcional en caso de que se haya abonado con saldo de la cuenta de Mercado Pago. Valores posibles: 0: Débito |
1010 | currentSessionId | Numérico | X | X | X | Identificador de la sesión |
1027 | libResponseCode | Numérico | X | X | X | Código de respuesta de la librería. |
1028 | libResponseMessage | Alfanumérico | X | X | X | Mensaje descriptivo del código de respuesta de la librería |
Ejemplo
Response from VTOL (SaleWallet): Response message: {1:1;2:1;1027:000;1028:Ok;166:14021905052200000204;271:2289999999999999228;1010:1550131493463;22:1234567;24:121;25:20190214050518;26:ISO8583;27:00;28:APROBADA} Response from VTOL (RefundWallet): Response message: {1:1;2:1;1010:1550131493463;1027:000;1028:Ok;25:20190214050543;26:ISO8583;27:509;28:Estado trx original no acepta devolucion} Response from VTOL (QuerySaleWallet): Response message: {1:1;2:1;1027:000;1028:Ok;6:450995xxxxxx3704;140:0;12:53.0;13:$;14:1;142:visa;271:2289999999999999228;272:0.0;273:0;274:accredited;1010:1550131493463;275:1;22:1234567;24:121;25:20190214050534;26:ISO8583;27:00;28:APROBADA} |
K. Procesar mensaje Cuenta DNI
...
La operación de reversa automática en Link no existe.
Mensajería
Informações | ||
---|---|---|
| ||
X = Obligatorio |
- Requerimiento
Número | Nombre del campo | Tipo de dato | SalePEI | RefundPEI | QueryPEI | Descripción |
---|
3 |
server |
Alfanumérico | X | X | X | Identificador |
del Server que procesará la transacción. Enviar "VTOL" | ||||||
10 | inputMode | Alfanumérico | X | X | X | Forma de ingreso: |
|
| ||||||
11 | trxType | Alfanumérico | X | X | X | Tipo de Transacción:
|
12 | amount | Importe | X | X | - | Monto de la transacción de Venta o de Devolució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 Se validará el importe enviado por el POS:
|
13 | currencyPosCode | Alfanumérico | X | X | - | Tipos de Moneda:
|
25 | dateTime | Numérico | X | X | 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 |
153 | idOperationPEI | Alfanumérico | - | X | O | Identificador de operación Cuenta DNI PEI de pago que se desea devolver o consultar. |
157 | customerDoc | Alfanumérico | O | - | - | Número de documento del titular de la cuenta. Obligatorio junto con softToken, únicamente si el modo de ingreso es softToken. |
173 | dateTimeOriginalTrx | Numérico | - | - | X | Fecha y hora de realización de la transacción de venta o devolución que se desea consultar en formato YYYYMMDDHHMMSS. Se debe enviar el valor del campo 25 de la transacción a consultar. |
279 | softToken | Alfanumérico | O | - | - | Token generado por la app mobile. Este token se lo informa el cliente al cajero, para que sea ingresado en el POS. Obligatorio junto con customerDoc, únicamente si el modo de ingreso es softToken. |
300 | barCode | Alfanumérico | O | - | - | Código generado por la app mobile. Este código se lo informa el cliente al cajero, para que sea ingresado en el POS. Obligatorio únicamente si el modo de ingreso es barCode. |
Nota |
---|
Los valores de compañía, tienda y caja serán obtenidos de la sesión. |
- Respuesta
Número | Nombre del campo | Tipo de dato | SalePEI | RefundPEI | QueryPEI | Descripción |
---|---|---|---|---|---|---|
0 | company | Numérico | X | X | X | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | X | X | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
25 | dateTime | Numérico | 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 | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | 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 para PEI |
28 | responseMessage | Alfanumérico | X | X | X | Mensaje de la Respuesta ISO-8583 relacionado con el código del campo 27 |
35 | errorDescription | Alfanumérico | X | X | X | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es “Error” |
153 | idOperationPEI | Alfanumérico | X | X | X | Identificador de la operación PEI de pago o de devolución |
154 | idOperationOrigenPEI | Alfanumérico | - | X | O | Identificador de la operación original de pago. |
170 | idCommercePEI | Alfanumérico | X | X | X | Identificador PEI de compañía |
171 | idBranchPEI | Alfanumérico | X | X | X | Identificador PEI de local |
172 | idTerminalPEI | Alfanumérico | X | X | X | Identificador PEI de terminal |
174 | originalTrxStatus | Numérico | - | - | O | Informa el estado de la transacción original en una operación de consulta. Si el campo en la respuesta no se recibe es porque la consulta falló. Puede contener uno de los siguientes valores:
|
278 | bankingRefNum | Alfanumérico | X | X | X | Número de referencia de la transacción de pago. |
1010 | currentSessionId | Numérico | X | X | X | Identificador de la sesión actual |
1027 | libResponseCode | Numérico | X | X | X | Código de respuesta de la librería. Indica cómo fue procesada la operación en EMVKIT: Éxito = 000 Ver sección Códigos de Respuesta de Librería |
1028 | libResponseMessage | Alfanumérico | X | X | X | Mensaje descriptivo del código de respuesta de la librería |
L. Procesar mensaje Promociones PEI
...
- promoPEI = Permite informar una promoción sobre una operación de pago PEI, y permite informar una devolución de un pago PEI que fue sujeto a promoción.
Informações |
---|
Sólo será requerido informar Promociones PEI en caso que se realice una venta PEI con productos que tengan promociones. |
Cómo
...
informa el POS una Promoción
Luego de realizar una operación de Pago PEI, el POS deberá informar (en caso que aplique) la promoción sobre ese pago. Informará en el campo amount el monto original de la venta y en el campo promoAmount la sumatoria del importe de los productos sujetos a promoción. Si el pago completo está sujeto a promoción, el promoAmount será igual al amount. Si sólo una porción del pago está sujeta a promoción, entonces promoAmount será solamente el importe sujeto a promoción. El cálculo de la promoción lo realizará LINK.
Este mecanismo se ideó para el caso que los comercios tengan solo algunos productos sujetos a promoción, entonces se informará a LINK la porción del pago al cual aplicar promoción.
Cómo
...
informa el POS una Devolución de un pago sujeto a Promoción
Luego de realizar una devolución de un pago PEI, el POS deberá informar (en caso que aplique) la promoción que se aplicó a los productos de esa devolución. Informará en el campo amount la sumatoria del importe de los productos a devolver y en el campo promoAmount la sumatoria del importe de los productos a devolver que fueron informados como promoción en el pago.
...
Informações |
---|
Referencias |
- Requerimiento
Número | Nombre del campo | Tipo de dato | PromoPei | Descripción |
---|
3 |
server |
Alfnumérico | X | Identificador |
del Server que procesará la transacción. Enviar "VTOL" | ||||
11 | trxType | Alfanumérico | X | Tipo de Transacción:
|
12 | amount | Importe | X | Monto total de la transacción original de venta, debe ser el mismo valor. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. |
13 | currencyPosCode | Alfanumérico | X | Tipos de Moneda:
|
301 | originalTrxType | Alfanumérico | X | Identificador del Tipo de Promoción que se está informando. Valores posibles: "1" para Pagos con promociones y "2" para Devoluciones de pagos con promoción. |
302 | promoAmount | Importe | X | Importe para informar una promoción o para informar la devolución de un pago con promoción. En donde los últimos 2 dígitos serán los decimales. Puede ser igual al importeOperacion (amount), en el caso en que todo el importe del pago esté sujeto a promoción. Pero no puede superar el importeOperacion. Para informar una Promoción en una Venta, se informará la sumatoria del importe de los productos sujetos a promoción. Si el pago completo está sujeto a promoción, el PromoAmount será igual a amount. El mismo comportamiento se aplicará para informar la Devolución de un pago sujeto a promoción. Se informará la suma del importe de los productos que fueron sujetos a promoción en la venta. |
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 |
153 | idOperationPEI | Alfanumérico | X | Identificador de operación PEI de pago que devuelve Link en la respuesta del pago. |
278 | bankingRefNum | Alfanumérico | X | Número de referencia bancaria de la operación de pago. Es devuelta por Link en la operación de pago. |
Nota |
---|
Los valores de compañía, tienda y caja serán obtenidos de la sesión. |
- Respuesta
Número | Nombre del campo | Tipo de dato | PromoPei | Descripción |
---|---|---|---|---|
0 | company | Numérico | X | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
25 | dateTime | Numérico | 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 | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | 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 para PEI |
28 | responseMessage | Alfanumérico | X | Mensaje de la Respuesta ISO-8583 relacionado con el código del campo 27 |
35 | errorDescription | Alfanumérico | X | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es “Error” |
1010 | currentSessionId | Numérico | X | Identificador de la sesión actual |
1027 | libResponseCode | Numérico | X | Código de respuesta de la librería. Indica cómo fue procesada la operación en EMVKIT: Éxito = 000 Ver sección VTOL EMVKIT AR 1.4.X#_Toc5087308386.1C%C3%B3digosdeRespuestadeEMVKIT |
1028 | libResponseMessage | Alfanumérico | X | Mensaje descriptivo del código de respuesta de la librería |
M. Obtener Configuración de POS
Operación que permite a la aplicación de punto de venta obtener la información existente en VTOL Server relacionada con los planes, cuotas, tarjetas, prefijos y bines de excepción.
Mensajería
- Requerimiento
Número | Nombre del campo | Tipo de dato | getConfiguration | Descripción |
---|---|---|---|---|
0 | company | Numérico | X | Identificador de la compañía donde se generó la transacción. |
11 | trxType | Alfanumérico | X | Tipo de Transacción:
|
Nota |
---|
Los valores de tienda compañía, tienda y caja serán obtenidos de la sesión. |
...
Request to Full library: {11:getConfiguration} |
- Respuesta
Número | Nombre del campo | Tipo de dato | getConfiguration | Descripción | 0|||||
---|---|---|---|---|---|---|---|---|---|
137 | companyconfVersion | Numérico | X | Identificador de la compañía donde se generó la transacción. | 137 | confVersion | Numérico | X | Número de versión de configuraciónNúmero de versión de configuración. |
138 | confData | Alfanumérico | X | Configuración de POS recibida desde VTOL server. El valor recibido corresponde a los datos registrados en un archivo de configuración codificados en Base64. | |||||
1010 | currentSessionId | Numérico | X | Identificador de la sesión actual | |||||
1027 | libResponseCode | Numérico | X | Código de respuesta de la librería. | |||||
1028 | libResponseMessage | Alfanumérico | X | Mensaje descriptivo del código de respuesta de la librería |
...
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Número | Nombre del campo | Tipo de dato | closeSession | Descripción | 0 | company | Numérico | X | Identificador de la compañía donde se generó la transacción.|
11 | trxType | Alfanumérico | X | Tipo de Transacción:
| |||||
1008 | closeSessionAction | Alfanumérico | X | Acción que se debe realizar sobre el cierre de sesión:
| |||||
1009 | closeTrxIdList | Lista | O | Lista de los trxId (campo 24) recibidos en la respuestas a las distintas llamadas "Procesar Operación con la Tarjeta" Obligatorio cuando el campo 1008 es igual a CLOSE | |||||
250 | actionCode | Alfanumérico | O | Identificación del motivo por el cual la sesión tuvo un cierre forzado. Código de 5 caracteres.
Obligatorio cuando el campo 1008 es igual a FORCED_CLOSE | |||||
251 | actionNote | Alfanumérico | O | Motivo informado por el punto de venta cuando la sesión tuvo un cierre no tradicional. Máximo de 50 caracteres Se debe enviar cuando el campo 1008 es igual a FORCED_CLOSE |
...
Nota |
---|
Los valores de compañía, tienda y caja serán obtenidos de la sesión. |
Ejemplo
Request to Full library: {1009:{270};1008:CLOSE;11:closeSession} |
...
- El campo closeSessionAction puede tomar uno de los siguientes valores:
- CLOSE: la sesión terminó correctamente, es decir, la aplicación de punto de venta finalizó la transacción de punto de venta correctamente.
- CANCEL: la sesión no terminó correctamente, es decir, la aplicación de punto de venta NO finalizó correctamente la transacción de punto de venta debido a algún tipo de contingencia.
- FORCED_CLOSE: la sesión no terminó correctamente, es decir, la aplicación de punto de venta NO finalizó correctamente la transacción de punto de venta y se forzó el cierre de la sesión. Por ejemplo, corte de luz, el cliente se marcha, errores en el punto de venta, etc.
- El campo closeTrxIdList es la lista de los trxIds que la aplicación de punto de venta recibió y almacenó. Solamente debe enviar esta lista cuando el valor del campo closeSessionAction es igual a CLOSE
...
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 | Cuando 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. |
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 | |
730 | Reintente operación sin modificar monto original | |
731 | Error en provider | |
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 |
...
A continuación se detallan las respuestas posibles de VTOL Server, cuando se opera con PEI, con una breve descripción de cada una:
Código | Descripción |
00 | APROBADA |
300 | Se agoto el tiempo de espera |
301 | La sucursal ingresada es incorrecta |
302 | El concepto ingresado es incorrecto |
303 | El concepto ingresado no esta disponible |
304 | El concepto ingresado no esta habilitado |
305 | La cuenta destino del pago es incorrecta |
306 | La cuenta destino no esta habilitada |
307 | La cuenta origen del pago es incorrecta |
308 | La cuenta origen no esta habilitada |
309 | La Red destino del pago es incorrecta |
310 | La cuenta del comercio es incorrecta |
311 | La cuenta de la sucursal es incorrecta |
312 | El comercio supero el importe máximo |
313 | La sucursal supero el importe máximo |
314 | La tarjeta ha superado el importe diario |
315 | Comercio ha superado el importe diario |
316 | Comercio ha superado el importe mensual |
317 | Comercio supero las trxs diarias |
318 | Comercio supero las trxs mensuales |
319 | La sucursal supero el importe diario |
320 | La sucursal supero el importe mensual |
321 | La sucursal supero las trxs diarias |
322 | La sucursal supero las trxs mensuales |
323 | Encriptacion incorrecta |
324 | El DNI no coincide con el de la tarjeta |
325 | Los datos de tarjeta no se condicen |
326 | El comercio es invalido |
327 | Cuenta destino del comercio es invalida |
328 | La tarjeta es invalida |
329 | La referencia de trx ya fue utilizada |
330 | El importe no es un numero mayor a cero |
331 | Ultimos 4 dig. no coinciden con la tarj. |
332 | Tarjeta inhabilitada para operar |
333 | Tarjeta vencida |
334 | Fondos insuficientes |
335 | El CBU Banelco ingresado es incorrecto |
336 | El ALIAS CBU Banelco es incorrecto |
337 | El id de pago es invalido |
338 | El id del canal es invalido |
339 | Importe excede saldo remanente del pago |
340 | El ID de requerimiento es invalido |
341 | IP de cliente invalida |
342 | Existe una devolucion aprobada del pago |
343 | El pago tiene devoluciones parciales |
344 | Pago no admite el tipo de devolucion |
345 | Pago no admite el tipo de devolucion |
346 | Terminal en uso |
347 | Terminal PEI Invalida |
348 | Comercio PEI Invalido |
349 | Sucursal PEI Invalida |
350 | Id operacion Requerido |
351 | Id operacion Rango invalido |
352 | Ultimos cuatro digitos invalidos |
353 | Numero de documento requerido |
354 | Trx original no se puede devolver |
355 | La cuenta es incorrecta |
356 | La cuenta no está habilitada |
357 | La cuenta del comercio es incorrecta |
358 | La cuenta de la sucursal es incorrecta |
359 | Comercio supero monto para concepto |
360 | Sucursal supero monto para concepto |
361 | Tarjeta supero monto tipo de operacion |
362 | Comercio supero monto tipo operacion |
363 | Comercio supero monto tipo operacion |
364 | Comercio supero cantidad transacciones |
365 | Comercio supero cantidad transacciones |
366 | Sucursal supero monto diario permitido |
367 | Sucursal supero monto mensual permitido |
368 | Sucursal supero cantidad trxs diarias |
369 | Sucursal supero cantidad trx mensuales |
370 | Error al desencriptar campos encriptados |
371 | La cuenta destino del comercio invalida |
372 | Ref de trx del comercio ya fue utilizada |
373 | Ultimos 4 digitos incorrectos |
374 | El ID de requerimiento enviado invalido |
375 | Error General |
376 | Concepto ingresado no habilitado |
377 | Concepto ingresado no habilitado |
378 | Cuenta es incorrecta |
379 | Cuenta no está habilitada |
380 | ALIAS CBU red Banelco es incorrecto |
381 | El pago tiene devoluciones parciales |
382 | Esta operacion no acepta devol. total |
383 | Esta operacion no acepta devol. parcial |
384 | La fecha es invalida |
385 | El estado del pago es invalido |
386 | El Concepto Operacion es invalido |
387 | Estado trx original no acepta devolucion |
388 | Importe devolucion supero monto limite |
389 | No se encontró la trx original |
390 | No es posible devolver una devolución |
391 | Error en comunicación |
392 | Campo DateTimeOriginalTrx invalido |
393 | Autorizacion Original en Proceso |
600 | El codigo de barras es requerido |
601 | El softToken es requerido |
602 | El importe de promoción es invalido |
603 | Original transaction type es requerido |
604 | El numero de referencia bancaria es requerido |
605 | El importe original informado es invalido |
606 | La venta original no tiene promoción aplicada |
607 | El numero de referencia bancaria es incorrecto |
608 | La venta original no permite promoción |
Âncora | ||||
---|---|---|---|---|
|
A continuación se detallan las respuestas posibles de VTOL Server, cuando se opera con Billeteras Electrónicas, con una breve descripción de cada una:
Código | Descripción |
00 | APROBADA |
500 | No se encuentra la transaccion original |
501 | El campo WalletPosTrxId es requerido |
502 | El campo WalletType es requerido |
503 | No esta configurado una Compañia MP |
504 | No esta configurado una Caja MP |
505 | El tipo de billetera es invalido |
506 | El campo WalletPaymentId es requerido |
507 | El campo OriginalDate es requerido |
508 | No es posible devolver una devolucion |
509 | Estado trx original no acepta devolucion |
510 | Importe devolucion supero monto limite |
511 | No se pudo realizar la orden de pago |
512 | La transaccion no posee estado |
513 | El campo posTicket es requerido |
514 | Consulte el pago por tiempo expirado |
515 | Tiempo expirado confirmacion devolucion |
516 | No se encuentra el pago original |
517 | Estado trx original no acepta devolucion |
518 | No se encuentra la devolucion |
519 | Acceso a MP no esta autorizado |
520 | Accion a MP no esta autorizada |
521 | El campo WalletPosTrxId es invalido |
523 | Estado trx original no acepta devolucion |
524 | Importe invalido para devolucion |
525 | Estado trx original no acepta devolucion |
526 | Compañia MP no permite operar |
527 | Numero devoluciones parciales superados |
528 | El pago es antiguo para ser devuelto |
529 | No es posible devolver una devolucion |
530 | Compañia MP sin dinero para devolver |
531 | Compañia MP sin dinero disponible |
532 | Estado trx original no acepta devolucion |
533 | Devolucion parcial no soportada |
534 | Url de notificacion invalido |
535 | El monto de la transaccion es invalido |
536 | Error general por parte de MP |
537 | No se encuentra la transaccion original |
538 | El campo WalletPosTrxId es requerido |
539 | Devuelto |
540 | Pendiente |
541 | Autorizado |
542 | En Progreso |
543 | En mediacion |
544 | Rechazado |
545 | Cancelado |
546 | Contracargo |
547 | No se encontró la trx original |
548 | Error en comunicación |
549 | No existe comunicación con Mercado Pago |
550 | Error al consultar venta original online |
Âncora | ||||
---|---|---|---|---|
|
Âncora | ||||
---|---|---|---|---|
|
...
A continuación se detalla la información que viaja en el campo confData de un mensaje de solicitud de configuración, que se corresponde con la interface de configuración generada para el POS en VTOL Server.
La versión de Formato de interface utilizada por Crédito Debito Argentina es la v107v108.
Header
Pos. | Descripción | Longitud | Tipo de dato | Detalle |
1 | HD | 2 | AN | Identificador de tipo de registro |
2 | Local | 6 | AN | Código local. |
3 | Incremental | 6 | N | Nº de incremental. |
4 | CRC | 8 | N | |
5 | Fecha / Hora | 16 | AN | Fecha/Hora. yyyy/mm/dd |
...
Pos | Descripción | Longitud | Tipo de dato | Detalle | |
1 | PF | 2 | AN | Identificador de tipo de registro | |
2 | Hasta | 20 | AN | Rango Desde. | |
3 | Desde | 20 | AN | Rango Hasta. | |
4 | Largo prefijo | 2 | N | Largo del prefijo. | |
5 | Largo tarjeta | 2 | N | Largo de la tarjeta. | |
6 | ID Tarjeta | 2 | AN | ID proveedor VTOL | |
7 | Condición | 10 | AN |
| |
8 | Largo CVC | 2 | N | Largo código seguridad. | |
9 | Validar digito | 1 | N | Valida el digito verificador. | |
10 | Envía Track I | 1 | N | 0/vacío deshabilitado / 1 habilitado / 2 Opcional. | |
11 | Validar vencimiento | 1 | N | Valida fecha vencimiento. | |
12 | Offline permitido | 1 | N | Permite operar offline. | |
13 | Offline monto | 14 | N | Límite para operación Offline. | |
14 | Habilitado | 1 | N | Prefijo habilitado. | |
15 | Valida fecha efectiva | 1 | N | Valida fecha emisión o fecha desde. | |
16 | Valida CVC | 1 | N | 0/vacío deshabilitado / 1 habilitado / 2 Opcional. | |
17 | Service code | 5 | AN | Se suele utilizar en VTOL para diferenciar Visa débito (2) de Visa crédito (0 ó vació) | |
18 | Ingreso manual permitido | 1 | N |
| |
19 | Chequea boletines | 1 | N | Valida contra boletines protectivos. | |
20 | Es debito | 1 | N | Es prefijo de tarjeta de tipo débito. | |
21 | Requiere pin. | 1 | N | 0 deshabilitado / 1 habilitado / 2 Opcional. | |
22 | Valida últimos N números. | 2 | N | Cantidad de últimos números a validar de la tarjeta. 0 no valida nada. | |
23 | Pide tipo de cuenta. | 1 | N | Requiere envío tipo de cuenta. | |
24 | Solicita número de cuenta | 1 | N | Solicita al autorizador el número de cuenta. | |
25 | Cashback | 1 | N | Habilita la operatoria de Cashback | |
26 | Puntos de Lealtad | 1 | N | Habilita la acumulación y/o redención de puntos de lealtad. | |
27 | Tarjeta que Encripta punto a punto POS - CA. | 1 | N | Indica si la tarjeta encripta. | |
28 | Posición de la Master Key | 1 | N | Indica la posición de la Master Key en los registros del Firmware. Valores posibles: | |
29 | Código de banco | 10 | AN | Código del banco | |
30 | Permite Fallback | 1 | N | Visa 1; Mastercard y Maestro 0 | |
31 | CashBack Amount Limit | 10 | N | Límite de importe Cashback |
...
Pos. | Descripción | Longitud | Tipo de dato | Detalle | |
1 | PP | 2 | AN | Identificador de tipo de registro | |
2 | ID Tarjeta | 2 | AN | ID proveedor VTOL | |
3 | Símbolo moneda | 10 | AN | ||
4 | Condición de pago | 20 | AN | Información adicional del plan de pago. | |
5 | Plan | 4 | N | ||
6 | Cuotas | 4 | N | ||
7 | Numero de comercio | 30 | AN |
| |
8 | ID Lote | 6 | N |
| |
9 | Limite a superar. | 13 | N | Monto a superar para poder utilizar el plan de pagos. | |
10 | Limite intereses | 13 | N | Si el monto es superior a éste valor, entonces el interés es = 0 | |
11 | Interés | 5 | AN | Tasa de interés (%) para el plan de pago. En formato 00.00 | |
12 | Promocional | 1 | N | Activa con 1 o Desactiva con 0 Si aplica o no una promoción para el plan de pago. |
...
Pos. | Descripción | Longitud | Tipo de dato | Detalle | |
1 | DL | 2 | AN | Identificador de tipo de registro | |
2 | ID Lote | 6 | N | Identificador interno de Lote en VTOL | |
3 | Caja o Nodo | 10 | N |
| |
4 | Número de serie terminal | 200 | AN |
|
Ejemplo:
DL:5;0000000001;99990080
DL:5;0000000002;99990081
DL:5;0000000003;99990082
DL:5;0000000004;99990083
DL:5;0000000005;99990084
DL:5;0000000006;99990085
DL:5;0000000007;99990086
Tabla Bines de Excepción
...
Bloco de código |
---|
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using VtolClientLib; namespace VtolTestPinPad { public partial class Form1 : Form { //Cliente Vtol StaticVtolClient StaticVtolClient = new StaticVtolClient(); //Lista de transacciones a confirmar System.Collections.ArrayList trxToConfirm = new System.Collections.ArrayList(); public EjemploIntegracion() { InitializeComponent(); } private VtolNode IniciarSesion() { //Inciar Sesion contra la libreria VTOL Full //Seleccionar el Local StaticVtolClient.SetParameter(VtolClientLib.VtolParam.StoreId, "6"); //Setear Parámateros StaticVtolClient.SetParameter(VtolClientLib.VtolParam.HostIp, "127.0.0.1"); StaticVtolClient.SetParameter(VtolClientLib.VtolParam.HostPort, 3500); StaticVtolClient.SetParameter(VtolParam.TimeOutConnectionHost, 30000); StaticVtolClient.SetParameter(VtolParam.ResponseTimeout, 10000); StaticVtolClient.SetParameter(VtolParam.TimeOutExpirationNode, 10000); StaticVtolClient.SetParameter(VtolParam.TimeOutObtainNode, 10000); StaticVtolClient.SetParameter(VtolParam.UseVtolClientFinder, false); StaticVtolClient.SetParameter(VtolParam.VtolClientFinder, new DefaultVtolClientFinder()); StaticVtolClient.SetParameter(VtolParam.UseEncryptedData, false); StaticVtolClient.SetParameter(VtolParam.Encrypter, "DESede"); StaticVtolClient.SetParameter(VtolParam.EncrypterKey, "SynthesisSynthesisSynthe"); //Iniciar libreria StaticVtolClient.Init(); //Crear un nuevo Nodo (Caja Existente en VTOL) VtolNode vtolNode = StaticVtolClient.CreateNode("1"); //Limpiar lista de transacciones a Confirmar trxToConfirm.Clear(); textBox1.Clear(); textBox1.AppendText("Iniciando Sesion \r\n"); vtolNode.Status = NodeStatus.INUSE; vtolNode.CreateTransaction(); vtolNode.AddField(11, "createSession"); vtolNode.SendTransaction(); //Obtener Respuesta String responseCodeString = vtolNode.GetField(1027).ToString(); if ("000".Equals(responseCodeString)) { textBox1.AppendText("Sesion creada \r\n"); } else { textBox1.AppendText("Error: " + vtolNode.GetField(1028).ToString() + " \r\n"); } //Retornar el nodo creado return vtolNode; } private void CerrarSesion(VtolNode vtolNode, String SessionAction, System.Collections.ArrayList trxList) { //Cerrar sesion vtolNode.CreateTransaction(); vtolNode.AddField(11, "closeSession"); textBox1.AppendText("Cerrando Sesion \r\n"); switch (SessionAction) { case "Close": //Cerrar y confirmar las transacciones pendientes //{Debug textBox1.AppendText("Enviando Commit"); //Recorrer el array para indicar las trx a informar foreach (String element in trxToConfirm) { textBox1.AppendText("trxID : " + element + "\r\n"); } //}Debug vtolNode.AddField(1008, "CLOSE"); vtolNode.AddField(1009, trxList); break; default: //Cerrar y enviar RollBack de todas las transacciones vtolNode.AddField(1008, "CANCEL"); break; } vtolNode.SendTransaction(); String responseCodeString = vtolNode.GetField(1027); if ("000".Equals(responseCodeString)) { textBox1.AppendText("Sesion Cerrada \r\n"); } else { textBox1.AppendText("Error al cerrar session [" + responseCodeString + "] "+ vtolNode.GetField(1028) +"\r\n"); } vtolNode.Status = NodeStatus.AVAILABLE; } private void btnSend_Click(object sender, EventArgs e) { textBox1.Clear(); //============================================================================================== //Iniciar sesion VtolNode vtolNode = IniciarSesion(); //============================================================================================== textBox1.AppendText("Enviando Compra \r\n"); vtolNode.CreateTransaction(); vtolNode.AddField(6, "5432219380000102"); //Tarjeta vtolNode.AddField(7, "1612"); //Vto vtolNode.AddField(8, "123"); //CVC vtolNode.AddField(10, "Manual"); //Mod. Ingreso vtolNode.AddField(11, "Sale"); //Operacion vtolNode.AddField(12, "100"); //Monto vtolNode.AddField(13, "$"); //Moneda vtolNode.AddField(14, "2"); //Cuotas vtolNode.AddField(15, "0"); //Plan //envia la trnsaccion. Es bloqueante hasta recibir la repsuesta o darse un timeout con el server vtolNode.SendTransaction(); string responseCodeString = vtolNode.GetField(FieldId.ResponseCodeFieldId); if (String.Compare(responseCodeString, "ISO8583", true) == 0) { String isoResponseCodeString = vtolNode.GetField(FieldId.ISOResponseCodeFieldId); if ("00".Equals(isoResponseCodeString)) { String transactionIdString = vtolNode.GetField(FieldId.TrxIdFieldId); trxToConfirm.Add(vtolNode.GetField(FieldId.TrxIdFieldId)); textBox1.AppendText("Aprobada trxID: "+ transactionIdString +"\r\n"); } else { textBox1.AppendText("Rechazada \r\n"); } } else { textBox1.AppendText("Error :"+ responseCodeString +" \r\n"); } //============================================================================================== textBox1.AppendText("Enviando Compra 2 \r\n"); vtolNode.CreateTransaction(); vtolNode.AddField(6, "5432219380000102"); //Tarjeta vtolNode.AddField(7, "1612"); //Vto vtolNode.AddField(8, "123"); //CVC vtolNode.AddField(10, "Manual"); //Mod. Ingreso vtolNode.AddField(11, "Sale"); //Operacion vtolNode.AddField(12, "200"); //Monto vtolNode.AddField(13, "$"); //Moneda vtolNode.AddField(14, "2"); //Cuotas vtolNode.AddField(15, "0"); //Plan //envia la trnsaccion. Es bloqueante hasta recibir la repsuesta o darse un timeout con el server vtolNode.SendTransaction(); responseCodeString = vtolNode.GetField(FieldId.ResponseCodeFieldId); if (String.Compare(responseCodeString, "ISO8583", true) == 0) { String isoResponseCodeString = vtolNode.GetField(FieldId.ISOResponseCodeFieldId); if ("00".Equals(isoResponseCodeString)) { String transactionIdString2 = vtolNode.GetField(FieldId.TrxIdFieldId); trxToConfirm.Add(vtolNode.GetField(FieldId.TrxIdFieldId)); textBox1.AppendText("Aprobada trxID: "+ transactionIdString2 +"\r\n"); } else { textBox1.AppendText("Rechazada \r\n"); } } else { textBox1.AppendText("Error :" + responseCodeString + " \r\n"); } //============================================================================================== //Cerrarr sesion CerrarSesion(vtolNode, "Close", trxToConfirm); } private void button1_Click(object sender, EventArgs e) { // ************** Prueba utilizando el pinpad ************************************** //****** Iniciar sesion ************ VtolNode vtolNode = IniciarSesion(); //****************************************************************************************************** //****************************************************************************************************** //Solicitar Lectura de Tarjeta textBox1.AppendText("Pase la Tarjeta por el PinPad \r\n"); vtolNode.CreateTransaction(); vtolNode.AddField(11, "Sale"); vtolNode.SendTransaction(); String responseCodeString = vtolNode.GetField(1027); //****************************************************************************************************** if ("000".Equals(responseCodeString)) { //Mostrar detalle de tarjeta Leida textBox1.AppendText("Lectura de Tarjeta "+ vtolNode.GetField(1028)+ " [" + vtolNode.GetField(1107) +"]\r\n"); //obtener datos necesarios String cardContextId = vtolNode.GetField(1103); vtolNode.CreateTransaction(); vtolNode.AddField(11, "Sale"); vtolNode.AddField(12, "100"); vtolNode.AddField(13, "$"); vtolNode.AddField(14, "2"); vtolNode.AddField(15, "0"); vtolNode.AddField(1103, cardContextId); vtolNode.SendTransaction(); responseCodeString = vtolNode.GetField(1027); if ("000".Equals(responseCodeString)) { //Obtener Respuesta responseCodeString = vtolNode.GetField(27); textBox1.AppendText("Respuesta: " + responseCodeString + "\r\n"); if (responseCodeString.Equals("ISO8583")) { //Obtener codigo ISO String ISOresponseCodeString = vtolNode.GetField(27); if ("00".Equals(ISOresponseCodeString)) { //Aprobada, guardar trxID trxToConfirm.Add(vtolNode.GetField(FieldId.TrxIdFieldId)); textBox1.AppendText("Aprobada trxID: " + vtolNode.GetField(FieldId.TrxIdFieldId) + "\r\n"); } } else { textBox1.AppendText("Error " + vtolNode.GetField(28) + "\r\n"); } } else { textBox1.AppendText("Error " + vtolNode.GetField(1028) + "\r\n"); } } //****** Cerrar sesion ************* CerrarSesion(vtolNode, "CLOSE", trxToConfirm); //********************************** } } } |
7. Compatibilidad con VTOL Server
La versión 1.5.X de EMVKit 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.