...
VTOL Server expone únicamente una comunicación SSL del tipo servidor, por defecto en el puerto 3003. Esta comunicación utiliza Protocolo TLSv1.2 e intercambio de certificado de seguridad.
Para poder conectarse al servidor, la implementación de la comunicación Cliente debe crear un Socket SSL con el puerto 3003, teniendo en cuenta las siguientes propiedades de conexión:
Parámetro | Descripción |
---|---|
IP de VTOL Server | IP donde se encuentra VTOL Server. |
Puerto SSL de VTOL Server | Es el puerto SSL sonde escucha VTOL Server. Valor por defecto: 3003 |
Almacén de certificados del servidor | Ruta donde se encuentra el almacén de certificados con los certificados del servidor. |
Contraseña para acceder al almacén de certificados | Contraseña para acceder al almacén de certificados. |
Algoritmo del almacén de certificados | Algoritmo del manejador del almacén de certificados. Valor por defecto: SunX509 |
Tipo de almacén de certificados | Indica el tipo de almacén de certificados. Valor por defecto: JKS |
...
Synthesis establece un protocolo de comunicación para la interacción POS - VTOL, el cual se denomina "Protocolo VTOL". Dicho protocolo se basa en un esquema recursivo compuesto por campos y separadores. A continuación se provee una especificación detallada de su estructura junto con los consecuentes diagramas para un mejor entendimiento.
Para implementar esta mensajería, VTOL provee una librería en el cual se encuentra la declaración de funciones y las definiciones de constantes y tipos necesarias. La librería es en realidad un módulo cliente que se comunica vía TCP/IP con el servidor de transacciones VTOL. El cliente podrá implementar esta mensajería sin utilizar la librería, pero deberá respetar el formato de la misma.
El formato del protocolo VTOL se basa en la siguiente estructura:
Header | Mensaje | |
---|---|---|
Longitud del mensaje (4 bytes) | Indica si el mensaje requiere respuesta o no (2 bytes) | Ejemplo: {25:20020426172836;1:5;2:1;27:00;26:ISO8583;28:Aprobado} |
...
Dentro del Header viaja información específica del mensaje que se encuentra a continuación del mismo, como ser su longitud y si requiere o no una respuesta. Para ello fueron destinados 6 bytes que se distribuyen de la siguiente manera: los primeros 4 bytes son destinados a la longitud (expresado en hexadecimal, con el último byte como el más significativo) y los últimos 2 indican la necesidad de recibir o no una respuesta (expresado en hexadecimal, con el último byte como el más significativo)
Longitud máxima representable por medio de este protocolo: 2047 MB (Mega Bytes) (cantidad máxima representable por un entero: 2147483647 bytes)
Un ejemplo de lo explicado anteriormente podría ser el siguiente:
...
Los campos dentro del encabezado son: totDiscount y totTaxes
Detalle de los campos:
Elemento | Tipo de dato | Descripción | Requerido | Valor ante ausencia |
---|---|---|---|---|
totDiscount | Numérico | Importe total de descuento que calcula el POS. Será la sumatoria de descuentos que se apliquen a los artículos. | No | 0 |
totTaxes | Numérico | Importe total de impuesto que calcula el POS. Será la sumatoria de impuestos que se apliquen sobre la compra. | No | 0 |
La manera de ejecutar un comando es utilizando una etiqueta con la forma <elemento-comando>. El elemento "item" identifica a los artículos. De esta manera, si se desea, por ejemplo, agregar un nuevo artículo el comando a utilizar será <item-add>. En el cuerpo del mensaje podrá contener uno, ninguno o varios de estos comandos.
...
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 | |||
measure | Alfanumérico | Unidad de medida del ítem. Valores posibles: unit - pack | No | "unit" |
...
Nro | Campo | Tipo | Sale | Capture | PreAuth | VoidPreAuth | Descripción |
---|---|---|---|---|---|---|---|
0 | company | Numérico | X | X | X | X | Identificador de la compañía donde se generó la transacción |
1 | store | Alfanumérico | X | X | X | X | Identificador del sitio originador de la transacción |
3 | server | Alfanumérico | X | X | X | X | Identificador del Server que procesará la transacción. ('VTOL') |
4 | messageType | Alfanumérico | X | X | X | X | Tipo de Mensaje:
|
6 | cardNumber | Numérico | X | - | X | - | Número de tarjeta. Sólo presente si el modo de ingreso fue Manual. |
7 | expirationDate | Numérico | X | - | X | - | Formato YYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | cvc | Numérico | X | - | X | - | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
10 | inputMode | Alfanumérico | X | X | X | X | Modo de Ingreso de la tarjeta: 3 - E-Commerce |
11 | trxType | Alfanumérico | X | X | X | X | Tipo de Transacción:
|
12 | amount | Importe | 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 | Tipos de Moneda:
|
14 | payments | Numérico | X | X | X | X | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | X | X | X | X | Plan. 1 caracter de longitud. |
17 | originalTrxTicketNr | Numérico | - | - | - | X | Campo Opcional. Si viaja se debe precisar el número de ticket de la venta original para poder distinguir la transacción a anular. 4 dígitos como máximo. Obligatorio para devoluciones. |
22 | authorizationCode | Alfanumérico | - | X | - | - | Código de autorización retornado en la pre autorización. 6 dígitos como máximo. Obligatorio para Captura. |
23 | authorizationMode | Alfanumérico | X | X | X | X | Modo de Autorización:
|
25 | dateTime | Numérico | X | X | X | X | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
53 | paymentCondition | Alfanumérico | O | - | O | - | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción. |
73 | interestAmount | Alfanumérico | 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. |
118 | terminalCapability | Alfanumérico | X | X | X | X | Capacidad de captura. Valor a enviar:
|
147 | providerPosCode | Alfanumérico | O | - | O | - | Código del Provider. Se utiliza en los casos donde VTOL Server no puede obtener unívocamente el Proveedor utilizando los prefijos (debido enmascaramiento de la tarjeta). Ejemplo VI (Visa). Longitud 20. |
167 | originalTrxReferenceNumber | Alfanumérico | O | X | O | X | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos. Dato enviado por VTOL Server en el campo 166, en la respuesta de un Sale o una PreAuthorization. Obligatorio para los trxType: Anulación de autorización (VoidPreAuthorization) y Captura (Sale offline). |
201 | additionalMessageData | Alfanumérico | O | O | O | O | Este campo tiene como finalidad que el cliente VTOL, pueda enviar un dato X y que el mismo esté presente en la respuesta. Cada módulo según implementación puede decidir qué hacer con dicho dato. |
264 | posChannelOrigin | Numérico | OX | OX | OX | OX | Indica el canal de origen de la transacción. Es un código con los siguientes valores posibles:
|
266 | cardHolderName | Alfanumérico | X | O | X | O | Nombre del tarjetahabiente |
270 | posTicket | Alfanumérico | O | O | O | O | Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket |
265 | customerId | Alfanumérico | O | O | O | O | Nombre de usuario que realizó la transacción. Este campo se utiliza para validar posibles fraudes, por parte del módulo Antifraude de VTOL. |
290 | customerIp | Alfanumérico | O | O | O | O | IP de origen de donde se efectuó la transacción. Este campo se utiliza para validar posibles fraudes, por parte del módulo Antifraude de VTOL. |
291 | customerDocType | Alfanumérico | O | O | O | O | Tipo de documento del cliente que realizó la transacción. Este campo se utiliza para validar posibles fraudes, por parte del módulo Antifraude de VTOL. |
157 | customerDoc | Alfanumérico | O | O | O | O | Número de documento del cliente que realizó la transacción. Este campo se utiliza para validar posibles fraudes, por parte del módulo Antifraude de VTOL. |
292 | customerFirstName | Alfanumérico | O | O | O | O | Nombre del cliente registrado en el e-commerce que realizó la transacción. Este campo se utiliza para validar posibles fraudes, por parte del módulo Antifraude de VTOL. |
293 | customerLastName | Alfanumérico | O | O | O | O | Apellido del cliente registrado en el e-commmerce que realizó la transacción. Este campo se utiliza para validar posibles fraudes, por parte del módulo Antifraude de VTOL. |
294 | cardHolderBirthday | Alfanumérico | X | X | X | X | Fecha de nacimiento del titular de la tarjeta. Formato YYYYMMDD. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor. |
295 | cardHolderDocType | Alfanumérico | X | X | X | X | Tipo de documento del titular de la tarjeta. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor. |
296 | cardHolderDocNumber | Alfanumérico | X | X | X | X | Número de documento del titular de la tarjeta. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor. |
297 | cardHolderAddressStreet | Alfanumérico | O | O | O | O | Calle de entrega del resumen del titular de la tarjeta. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor. |
298 | cardHolderAddressNumber | Alfanumérico | X | X | X | O | Número de Puerta de entrega del resumen del titular de la tarjeta. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor. |
299 | cardHolderZipCode | Alfanumérico | O | O | O | O | Código postal de entrega del resumen del titular de la tarjeta. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor. |
305 | cardHolderAddressComplement | Alfanumérico | O | O | O | O | Complemento de la dirección. Piso / departamento de entrega de resumen del titular de la tarjeta. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor. |
306 | cardIssuingBank | Alfanumérico | O | O | O | O | Banco emisor de la tarjeta. Longitud máxima 20. Si se envía este campo, VTOL validará que el número de tarjeta enviado esté asociado a un prefijo con el banco de la tarjeta. |
307 | cardBrand | Alfanumérico | O | O | O | O | Marca de la tarjeta. Longitud máxima 20. Si se envía este campo, VTOL validará que el número de tarjeta enviado esté asociado a un prefijo con la marca de la tarjeta. |
403 | afApplicationCondition | Alfanumérico | O | O | O | - | Condición de aplicación antifraude. Este dato será utilizado por el módulo antifraude de VTOL para ejecutar o ignorar validaciones de fraude. Longitud máxima: 50 caracteres. Si el POS envía una Condición en este campo, se validará si la compañía está suscripta a alguna regla con dicha Condición. Si está suscripta, se ejecutará la regla AF, pero si no está suscripta, no se ejecutará. Si el POS envía este campo vacío, o no lo envía, se validará si la compañía está suscripta a alguna regla "Sin condición". Si está suscripta, se ejecutará la regla que no tiene condición, y si no está suscripta, no se ejecutará. Si el POS envía una Condición, pero no está creada en antifraude de VTOL, no se ejecutará ninguna regla AF. |
...
La estructura del mensaje de devolución es similar al mensaje de venta, con la diferencia que se agregan campos que identifican a la transacción original sobre la que se hace la devolución: (16) originalDate, (17) originalTrxTicketNr y (167) originalTrxReferenceNumber.
1.4.20.1 Requerimiento
Nro | Campo | Tipo | Descripción |
---|---|---|---|
0 | company | Numérico | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | Identificador del sitio originador de la transacción |
10 | inputMode | Alfanumérico | Modo de Ingreso de la tarjeta:
|
11 | trxType | Alfanumérico | Tipo de Transacción:
|
12 | amount | Importe | 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 | Tipos de Moneda:
|
14 | payments | Numérico | Cantidad de cuotas. 2 dígitos como máximo. |
15 | plan | Alfanumérico | Código de plan. Largo 1. |
16 | originalDate | Fecha | Fecha de la transacción original en el formato YYYYMMDD. |
17 | originalTrxTicketNr | Numérico | Número de ticket de la transacción original. 4 dígitos como máximo. |
167 | originalTrxReferenceNumber | Numérico | Identificador de la transacción original generado VTOL Server. |
25 | dateTime | Numérico | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
53 | paymentCondition | Alfanumérico | Condición de pago. Sólo se encuentra presente si existe una condición de pago vinculada con la transacción. |
201 | additionalMessageData | Alfanumérico | Este campo tiene como finalidad que el cliente VTOL, pueda enviar un dato X y que el mismo esté presente en la respuesta. Cada módulo según implementación puede decidir qué hacer con dicho dato. |
264 | posChannelOrigin | Numérico | Indica el canal de origen de la transacción.
|
1.4.20.2 Respuesta
Nota: Tomar como referencia la respuesta del tipo de mensaje Sale.
...
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Nro | 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 |
3 | server | Alfanumérico | X | X | X | Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL') |
4 | messageType | Alfanumérico | X | X | X | Tipo de Mensaje:
|
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. |
1.4.21.2 Respuesta
Nro | 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. |
Âncora | ||||
---|---|---|---|---|
|
...
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Nro | 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 |
3 | server | Alfanumérico | X | Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL') |
4 | messageType | Alfanumérico | X | Tipo de Mensaje:
|
11 | trxType | Alfanumérico | X | Tipo de Transacción:
|
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. |
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:
|
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. |
1.4.22.2 Respuesta
Nro | 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” |
1.4.23 Operaciones PEI No Presencial
...
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Nro | Campo | Tipo | SalePEI | RefundPEI | QueryPEI | |
---|---|---|---|---|---|---|
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 |
3 | server | Alfanumérico | X | X | X | Identificador del Server que procesará la transacción. Enviar: VTOL |
4 | messageType | Alfanumérico | X | X | X | Tipo de Mensaje:
|
6 | cardNumber | Numérico | X | - | - | Número de tarjeta. |
7 | expirationDate | Numérico | X | - | - | Formato YYMM Fecha de vencimiento de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
8 | cvc | Numérico | X | - | - | Código de seguridad de la tarjeta. Sólo presente si el modo de ingreso fue Manual. |
10 | inputMode | Alfanumérico | X | X | X | Modo de Ingreso de la tarjeta:
|
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 |
13 | currencyPosCode | Alfanumérico | X | X | - | Tipos de Moneda:
|
14 | payments | Numérico | X | X | - | Cantidad de cuotas. Enviar siempre: 1 |
15 | plan | Alfanumérico | X | - | - | Plan. Enviar siempre: 0 |
16 | originalDate | Fecha | - | X | - | Fecha de la transacción original en el formato YYYYMMDD. |
25 | dateTime | Numérico | X | X | X | Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss |
118 | terminalCapability | Alfanumérico | X | X | X | Capacidad de captura. Valor a enviar:
|
147 | providerPosCode | Alfanumérico | O | - | - | Código del Provider. Ejemplo: VI (Visa). Longitud 20. |
153 | idOperationPEI | Alfanumérico | - | X | - | Identificador de la operación PEI de pago original que se desea devolver. |
167 | originalTrxReferenceNumber | Alfanumérico | - | X | - | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos. Dato enviado por VTOL Server en el campo 166, en la respuesta de un SalePEI. |
201 | additionalMessageData | Alfanumérico | O | O | - | Este es un campo que VPB obtiene del eCommerce y que el mismo esté presente en la respuesta para trazabilidad. En VPB es el campo ecommerceCustomField. |
264 | posChannelOrigin | Numérico | X | X | X | Indica el canal de origen de la transacción. Es un código con los siguientes valores posibles:
|
266 | cardHolderName | Alfanumérico | X | X | - | Nombre del tarjetahabiente |
270 | posTicket | Alfanumérico | O | O | - | Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket |
139 | customerRef | Alfanumérico | O | O | O | Número de referencia de comercio para trazabilidad de transacción. 20 caracteres como máximo. Se recomienda su utilización en Ventas y Devoluciones para poder consultar en caso de error de conexión con VTOL. |
265 | customerId | Alfanumérico | O | O | - | Nombre de usuario que realizó la transacción |
157 | customerDoc | Alfanumérico | O | O | - | Número de documento del cliente que realizó la transacción. |
161 | operationConcept | Alfanumérico | X | - | - | 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. |
290 | customerIp | Alfanumérico | O | O | - | IP de origen de donde se efectuó la transacción |
291 | customerDocType | Alfanumérico | O | O | - | Tipo de documento del cliente que realizó la transacción. |
292 | customerFirstName | Alfanumérico | O | O | - | Nombre del cliente registrado en el e-commerce que realizó la transacción. |
293 | customerLastName | Alfanumérico | O | O | - | Apellido del cliente registrado en el e-commmerce que realizó la transacción. |
295 | cardHolderDocType | Alfanumérico | X | - | - | Tipo de documento del titular de la tarjeta. |
296 | cardHolderDocNumber | Alfanumérico | X | - | - | Número de documento del titular de la tarjeta. |
306 | cardIssuingBank | Alfanumérico | O | O | - | Banco emisor de la tarjeta. Longitud máxima 20. |
307 | cardBrand | Alfanumérico | O | O | - | Marca de la tarjeta. Longitud máxima 20. |
403 | afApplicationCondition | Alfanumérico | O | - | - | Condición de aplicación antifraude. Este dato será utilizado por el módulo antifraude de VTOL para ejecutar o ignorar validaciones de fraude. Longitud máxima: 50 caracteres. Si el POS envía una Condición en este campo, se validará si la compañía está suscripta a alguna regla con dicha Condición. Si está suscripta, se ejecutará la regla AF, pero si no está suscripta, no se ejecutará. Si el POS envía este campo vacío, o no lo envía, se validará si la compañía está suscripta a alguna regla "Sin condición". Si está suscripta, se ejecutará la regla que no tiene condición, y si no está suscripta, no se ejecutará. Si el POS envía una Condición, pero no está creada en antifraude de VTOL, no se ejecutará ninguna regla AF. |
1.4.23.2 Respuesta
Nro | Campo | Tipo | 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 |
6 | cardNumber | Alfanumérico | X | X | O | Número de tarjeta enmascarado con la cual se realizó el pago. Ejemplo: 450799xxxxxx0010 |
25 | dateTime | Numérico | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. |
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 |
28 | responseMessage | Alfanumérico | X | X | X | Mensaje de la Respuesta ISO-8583 |
33 | creditCardIssuerName | Alfanumérico | X | X | X | Nombre del emisor de la tarjeta |
35 | errorDescription | Alfanumérico | X | X | X | Descripción de error. Sólo se encuentra presente si el valor del campo 26 es "Error". |
166 | trxReferenceNumber | Numérico | 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. |
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 |
174 | originalTrxStatus | Alfanumé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. |
1.4.24 Operaciones QR Adquiriente Prisma
...
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SaleWallet | RefundWallet | QueryWallet | 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 local donde se generó la transacción. |
2 | node | Numérico | X | X | X | Identificador de la caja donde se generó la transacción. |
3 | server | Alfanumérico | X | X | X | Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL') |
4 | messageType | Alfanumérico | X | X | X | Tipo de Mensaje:
|
11 | trxType | Alfanumérico | X | X | X | Tipo de Transacción:
|
12 | amount | Numérico | X | X | - | Monto de la transacción. 12 dígitos como máximo. Valor entero. Los dos últimos dígitos representan los decimales. Ej: "1000" equivale a "10.00". Para devoluciones, se debe enviar el monto total de la venta original, ya que no están permitidas las devoluciones parciales. |
13 | currencyPosCode | Alfanumérico | X | X | - | Tipos de moneda:
|
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 | 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 QueryWallet: 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: 2: Billetera Bimo |
270 | posTicket | Alfanumérico | 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 QueryWallet: Se informa este campo o el campo walletPosTrxId para localizar una transacción de compra. |
401 | paymentMethodsData | Json | X | - | - | Información de los planes de pago, en formato json |
402 | walletBenefits | Json | X | - | - | Información de las tarjetas de beneficio, en formato json |
Estructura del campo posTicket (270) Âncora posTicket 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 | |
measure | Alfanumérico | Unidad de medida del ítem. Valores posibles: unit - pack | No | "unit" |
Ejemplo
Bloco de código | ||
---|---|---|
| ||
<message> <item-add seq="1" code="0001" discountable="true" unitprice="25.0" qty="1.0" level1="MEN" level2="CASUAL" supplier="" brand="LEVIS" xprice="25.0" magnitude="1" description="Jean casual" currency="$" /> <item-add seq="2" code="0002" discountable="true" unitprice="28.0" qty="2.0" level1="MEN" level2="CASUAL" supplier="" brand="LEVIS" xprice="48.0" magnitude="1" description="Jean casual" currency="$" /> </message> |
...
El mensaje con la estructura de los medios de pago será en JSON. Estará conformado por los siguientes campos:
Parámetro | Tipo de dato | Requerido | Descripción | |
---|---|---|---|---|
providerPosCode | Alfanumérico | Si | Código del Proveedor de la tarjeta configurado en VTOL. Por ejemplo para Visa el código es "VI". El código se obtiene de la Configuración de POS. | |
bankCode | Numérico | No | Identificador del banco asociado a la tarjeta. Debe corresponder al ID de banco dispuesto por el BCRA. Ver códigos de bancos. | |
installments | Array | Si | Información de las cuotas. | |
paymentOptionId | Alfanumérico | Si | Identificador de la opción de pago. Máximo 10 caracteres. Debe ser único dentro del campo "paymentMethodsData". Permite trazabilidad con la opción que elija el cliente en el momento de pagar. La opción de pago seleccionada por el cliente en su billetera virtual es retornada por VTOL en el mensaje de respuesta de la venta, en el campo 404. | |
quantity | Numérico | Si | Cantidad de cuotas. Número entero. Máximo 2 dígitos. | |
paymentCondition | Alfanumérico | No | Condición de la opción de pago. Sólo se informará si existe en VTOL una opción de pago con una condición. Máximo 20 caracteres. | |
amountPerInstallment | Importe | Si | Monto por cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales. | |
totalAmount | Importe | Si | Monto total. Incluye los recargos. Valor entero. Los 2 últimos dígitos corresponden a los decimales. | |
surcharge | Numérico | Si | C.F.T. (Costo Financiero Total). Porcentaje de recargo sobre las cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales. | |
nominalAnnualRate | Numérico | Si | T.N.A. (Tasa Nominal Anual). Valor entero. Los 2 últimos dígitos corresponden a los decimales. |
Ejemplo del campo paymentMethodsData (401)
...
El mensaje con la estructura de los beneficios estará en JSON. Estará conformado por los siguientes campos:
Parámetro | Tipo de dato | Requerido | Descripción | |
---|---|---|---|---|
benefitCardId | Alfanumérico | Si | Identificador de la opción de pago creada por el POS. Máximo 10 caracteres. Debe ser único dentro del campo "walletBenefits". Permite trazabilidad con la tarjeta de beneficio aplicada en el pago por estar vinculada en la billetera virtual del cliente. El ID del beneficio aplicado es retornado por VTOL en el mensaje de respuesta de la venta en el campo 405. | |
providerPosCode | Alfanumérico | Si | Código de la tarjeta de beneficio configurada en VTOL. Por ejemplo para Clarin 365 el código es "CC". | |
discountPercentage | Numérico | Si | Porcentaje de descuento a aplicar sobre la compra. Valor entero. Los 2 últimos dígitos corresponden a los decimales. | |
maximumDiscountAmount | Numérico | Si | Importe máximo de descuento a aplicar sobre la compra. Valor entero. Los 2 últimos dígitos corresponden a los decimales. |
Ejemplo del campo walletBenefits (402)
...
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SaleWallet | RefundWallet | QueryWallet | 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 | X | - | O | Tarjeta enmascarada seleccionada por el cliente al momento de efectuar el pago QR. |
12 | amount | Importe | X | - | X | Contiene el importe que pagó el cliente, el cual puede variar si pagó con intereses o se aplicó algún descuento. Valor entero. Los últimos 2 dígitos corresponden a los decimales. |
13 | currencyPosCode | Alfanumérico | X | - | X | Tipos de moneda:
|
14 | payments | Numérico | X | - | O | Cantidad de cuotas seleccionadas al momento de realizar el pago QR. |
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 |
29 | serialNumber | Numérico | O | O | O | Número identificatorio de la terminal en la que se procesó la transacción. Retorna en operaciones aprobadas. |
30 | businessNumber | Numérico | O | O | O | Número de comercio en el que se procesó la transacción. Retorna en operaciones aprobadas. |
31 | lotNumber | Numérico | O | O | O | Número de lote en el que se registró la transacción |
32 | ticket | Numérico | O | O | O | Número de Ticket correspondiente a la transacción. 4 dígitos como máximo. |
81 | responseAuth | Alfanumérico | O | O | O | Mensaje de repuesta para imprimir en el ticket del POS. Retorna en operaciones aprobadas. Contiene información generada por el Autorizador. |
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. |
147 | providerPosCode | Alfanumérico | O | - | O | Código del Provider. Retornará cuando la transacción fue aprobada por el Autorizador. |
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 | - | - | O | Estado de la transacción de pago informado por el Autorizador. Estados posibles: 0: Aprobado |
275 | cardType | Numérico | - | - | O | Tipo de tarjeta seleccionada al momento de efectuar el pago QR por parte del cliente. Valores posibles: |
306 | cardIssuingBank | Alfanumérico | O | - | O | Banco emisor de la tarjeta. Retornará cuando la transacción fue aprobada por el Autorizador. |
404 | paymentOptionId | Alfanumérico | X | - | O | Identificador de la opción de pago seleccionada por el cliente en su billetera virtual. Según la tarjeta, el banco, y las cuotas elegidas por el cliente, se vinculará con el paymentOptionId enviado por la caja en el requerimiento. |
405 | benefitCardId | Alfanumérico | X | - | O | Identificador de la tarjeta de beneficio aplicada en el pago por estar vinculada en la billetera virtual del cliente. |
406 | originalAmount | Importe | X | - | O | Monto original de la transacción: de venta o de devolución. |
407 | amountDiscounted | Importe | X | - | O | Contiene el importe que se descontó sobre el importe original. Debido a la aplicación de una tarjeta de beneficio vinculada en la billetera virtual del cliente. Sólo retorna cuando se aplicó un descuento. |
1.4.25 Consultar tarjetas de Fidelidad
...
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Número | Nombre del campo | Tipo de dato | CardQuery | 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 |
3 | server | Alfanumérico | X | Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL') |
4 | messageType | Alfanumérico | X | Tipo de Mensaje:
|
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 |
269 | walletType | Numérico | X | Tipo de billetera por la cual se realizará la consulta. Opciones: 2: Adquiriente Prisma |
408 | loyaltyCard | Numérico | X | Tipo de tarjeta de fidelidad que se quiere consultar. Opciones: 1: Clarín 365 |
157 | customerDoc | Numérico | X | Número de documento del cliente que realiza la consulta. |
Ejemplo
Request to VTOL: Request: {157:11111111;408:1;269:2;11:CardQuery;4:DATA;3:VTOL;2:1;25:20210503192959;71:True;1:1;0:1} |
1.4.25.2 Respuesta
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Número | Nombre del campo | Tipo de dato | CardQuery | 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. |
6 | cardNumber | Alfanumérico | X | Número de Tarjeta del cliente. Si es una tarjeta de fidelidad, retornará en plano. |
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 emitido por el centro autorizador. 3 dígitos como máximo. Ver sección: Códigos de Respuesta de VTOL Server para Consulta de Fidelidad |
28 | responseMessage | Alfanumérico | X | Mensaje de la Respuesta relacionado con el código del campo 27 |
292 | customerFirstName | Alfanumérico | X | Nombre del tarjetahabiente. |
293 | customerLastName | Alfanumérico | X | Apellido del tarjetahabiente. |
409 | loyaltyCardCategory | Alfanumérico | X | Categoría de la tarjeta de fidelidad. Puede retornar los siguientes valores:
|
Ejemplo de Respuesta
Response from VTOL: Response: {25:20210503193023;2:1;1:1;0:1;6:44123456789010;292:Juan;293:Perez;409:CLASSIC;26:ISO8583;27:00;28:APROBADA} |
1.4.26 Operaciones QR Adquiriente Fiserv
VTOL se integra con QR Adquiriente de Fiserv para permitir efectuar pagos en los puntos de venta con billeteras electrónicas. El En el pinpad se imprime el código QR en pantalla, el cual siempre es dinámico, es decir que se genera uno nuevo por cada transacción.
Las operaciones soportadas son:
...
Aviso | ||
---|---|---|
| ||
En caso de ser un pago con tarjeta (Crédito o Débito)Tarjeta de Débito, el POS podrádeberá enviar en el mensaje SaleWallet el campo paymentMethodsDatapayments ( 401Si el monto informado por Fiserv no es el mismo que el informado en el campo paymentMethodsData, se cancela la operación14) , con las posibles opciones de pago que servirán para validar lo elegido por el cliente en su billetera digital. En el campo paymentMethodsData puede existir un installments marcado con la propiedad "defaultPosWalletInstallment = true", que determina el método de pago por defecto que será enviado a Fiserv QR en el mensaje de pago.El proceso de validación de VTOL al recibir el mensaje desde Fiserv informando la opción de pago seleccionada por el cliente, es el siguiente: con valor = 1. En caso de ser un pago con Tarjeta de Crédito, el POS deberá enviar en el mensaje SaleWallet el campo payments (14) con valor mayor a 0. En caso de ser un pago con Dinero en cuenta, el POS deberá enviar en el mensaje SaleWallet el campo payments (14) con valor = 0, o directamente no enviar el campo 14. Operatoria de pago con Tarjetas: El Punto de Venta informará en el mensaje de SaleWallet el Monto y las Cuotas de la operación. VTOL responderá al POS el dato de la tarjeta seleccionada por el cliente en su Billetera Virtual, y el POS con esa información podrá modificar o no el monto original y las cuotas originales. Esto es para que el POS pueda aplicar algún beneficio, por ejemplo 12 cuotas sin interés, o para aplicar intereses, por ejemplo 12 con interés, con el cual el monto puede afectarse. Por lo tanto, el POS enviará en el mensaje de QueryWallet el monto y las cuotas, pudiendo modificar ambos datos. El flujo es el siguiente:
|
1.4.26.1 Requerimiento
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SaleWallet | QueryWallet | Descripción |
---|---|---|---|---|---|
0 | company | Numérico | X | X | Identificador de la compañía donde se generó la transacción. |
1 | store | Alfanumérico | X | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción |
3 | server | Alfanumérico | X | X | Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL') |
4 | messageType | Alfanumérico | X | X | Tipo de Mensaje:
|
11 | trxType | Alfanumérico | X | X | Tipo de Transacción:
|
12 | amount | Numérico | X | - | Monto de la transacción. 12 dígitos como máximo. Valor entero. Los dos últimos dígitos representan los decimales. Ej: "1000" equivale a "10.00". |
13 | currencyPosCode | Alfanumérico | X | - | Tipos de moneda:
|
16 | originalDate | Numérico | - | X | Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD |
24 | lastTrxId | Numérico | 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 | 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 QueryWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra. |
269 | walletType | Numérico | X | X | Tipo de billetera por la cual se cursará la transacción en el POS. Opciones: 7: QR Adquiriente Fiserv |
270 | posTicket | Alfanumérico | 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 | - | 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 QueryWallet: Se informa este campo o el campo walletPosTrxId para localizar una transacción de compra. |
401 | paymentMethodsData | Json | O | - | Información de los planes de pago, en formato json. Requerido únicamente cuando el pago se realiza con Tarjeta de crédito o débito. Si el POS no informa este campo, solamente se podrá pagar con Dinero en cuenta. |
410 | QRCode | Alfanumérico | O | - | El POS enviará si desea recibir el código QR para imprimirlo en la caja. Valores posibles: True: indica que se recibirá el código QR y se inyectará en el pinpad. False: indica que se recibirá el código QR pero no se inyectará en el pinpad. No se envía el campo: indica que no se recibirá el código QR |
Estructura del campo posTicket (270)
...
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 | |
measure | Alfanumérico | Unidad de medida del ítem. Valores posibles: unit - pack | No | "unit" |
Ejemplo
Bloco de código | ||
---|---|---|
| ||
<message> <item-add seq="1" code="0001" discountable="true" unitprice="25.0" qty="1.0" level1="MEN" level2="CASUAL" supplier="" brand="LEVIS" xprice="25.0" magnitude="1" description="Jean casual" currency="$" /> <item-add seq="2" code="0002" discountable="true" unitprice="28.0" qty="2.0" level1="MEN" level2="CASUAL" supplier="" brand="LEVIS" xprice="48.0" magnitude="1" description="Jean casual" currency="$" /> </message> |
...
El mensaje con la estructura de los medios de pago será en JSON. Estará conformado por los siguientes campos:
Parámetro | Tipo de dato | Requerido | Descripción | |
---|---|---|---|---|
providerPosCode | Alfanumérico | Si | Código del Proveedor de la tarjeta configurado en VTOL. Por ejemplo para Visa el código es "VI". El código se obtiene de la Configuración de POS. | |
bankCode | Numérico | No | Identificador del banco asociado a la tarjeta. Debe corresponder al ID de banco dispuesto por el BCRA. Ver códigos de bancos. | |
installments | Array | Si | Información de las cuotas. | |
paymentOptionId | Alfanumérico | Si | Identificador de la opción de pago. Máximo 10 caracteres. Debe ser único dentro del campo "paymentMethodsData". Permite trazabilidad con la opción que elija el cliente en el momento de pagar. La opción de pago seleccionada por el cliente en su billetera virtual es retornada por VTOL en el mensaje de respuesta de la venta, en el campo 404. | |
quantity | Numérico | Si | Cantidad de cuotas. Número entero. Máximo 2 dígitos. | |
paymentCondition | Alfanumérico | No | Condición de la opción de pago. Sólo se informará si existe en VTOL una opción de pago con una condición. Máximo 20 caracteres. | |
amountPerInstallment | Importe | Si | Monto por cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales. | |
totalAmount | Importe | Si | Monto total. Incluye los recargos. Valor entero. Los 2 últimos dígitos corresponden a los decimales. | |
surcharge | Numérico | Si | C.F.T. (Costo Financiero Total). Porcentaje de recargo sobre las cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales. | |
nominalAnnualRate | Numérico | Si | T.N.A. (Tasa Nominal Anual). Valor entero. Los 2 últimos dígitos corresponden a los decimales. | |
defaultPosWalletInstallment | Boolean | No | Marca que indica dentro de la colección el método de pago seleccionado por defecto para que VTOL lo informe al Autorizador. |
Ejemplo del campo paymentMethodsData (401)
...
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SaleWallet | QueryWallet | Descripción |
---|---|---|---|---|---|
0 | company | Numérico | X | X | Identificador de la compañía donde se generó la transacción |
1 | store | Alfanumérico | X | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción. |
12 | amount | Importe | X | X | Contiene el importe que pagó el cliente, el cual puede variar si pagó con intereses o se aplicó algún descuento. Valor entero. Los últimos 2 dígitos corresponden a los decimales. |
13 | currencyPosCode | Alfanumérico | X | X | Tipos de moneda:
|
14 | payments | Numérico | X | O | Cantidad de cuotas seleccionadas al momento de realizar el pago QR. |
22 | authorizationCode | Alfanumérico | - | X | Código de autorización informado por el Autorizador |
24 | trxId | Numérico | X | X | Identificador de la transacción. |
25 | dateTime | Numérico | 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 | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | 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 | Mensaje de la Respuesta relacionado con el código del campo 27 |
140 | paymentType | Numérico | - | X | Tipo de pago. Valores posibles: 0: Tarjeta |
166 | trxReferenceNumber | Numérico | X | - | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato |
271 | walletPaymentId | Alfanumérico | - | X | Identificador del número de pago informado por el Autorizador |
273 | paymentStatus | Alfanumérico | - | X | Estado de la transacción de pago informado por el Autorizador. Estados posibles: 0: Aprobado |
275 | cardType | Numérico | - | O | Tipo de tarjeta seleccionada al momento de efectuar el pago QR. Valores posibles: 0: Débito |
410 | QRCode | Alfanumérico | O | O | Se envía la cadena de texto (string del QR dinámico) que retorna desde Fiserv. Este string se utiliza para imprimir el QR en el POS. |
1010 | currentSessionId | Numérico | X | X | Identificador de la sesión |
1027 | libResponseCode | Numérico | X | X | Código de respuesta de la librería. |
1028 | libResponseMessage | Alfanumérico | X | X | Mensaje descriptivo del código de respuesta de la librería |
1.4.27 Operaciones PayStore
...
- SaleWallet = Permite realizar una compra presencial a través de PayStore.
- SaleWallet con cashback = Permite realizar una compra presencial y realizar retiro de efectivo.
- RefundWallet = Permite realizar una devolución (total) de una compra presencial a través de PayStore. No se permiten devoluciones parciales.
- QueryWallet = Permite realizar una consulta de una operación de compra con PayStore para conocer si la misma fue autorizada y así obtener los datos por parte del Autorizador.
...
La anulación o devolución, sí precisa de interacción por parte del comprador en la caja, en la terminal pinpad se debe capturar los mismos datos de la tarjeta o billetera virtual que se utilizó para el pago. El POS envía el identificador del número de pago del Autorizador en el mensaje RefundWallet.
Aviso | ||
---|---|---|
| ||
Si una Venta está Aprobada en el pinpad, no es posible reversarla. Cuando la caja intente reversar, se crea entrada en Resolución Administrativa para que sea tratada de forma manual. |
Procedimiento para Cashout con PayStore
Se podrán realizar las siguientes operaciones:
Ventas
- Ventas de productos y retiro de efectivo
- En estos casos, se aprueban ambas cosas. No es posible obtener aprobaciones parciales.
Devoluciones
- Realizar devoluciones de los productos y del cashout.
- Operación de venta con productos y cashout. Permite devolver:
- Devolución total de los productos y del cashout.
- Operación de venta sólo con productos. Permite devolver:
- Devolución total de los productos
- Operación de venta con productos y cashout. Permite devolver:
- La devolución de cashout siempre debe ser por el monto total.
1.4.27.1 Requerimiento
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SaleWallet | RefundWallet | QueryWallet | 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 |
3 | server | Alfanumérico | X | X | X | Identificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL') |
4 | messageType | Alfanumérico | X | X | X | Tipo de Mensaje:
|
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. Valor entero. Los dos últimos dígitos representan los decimales. Ej: 1000 equivale a 10.00 Para devoluciones, el importe debe ser siempre por el total de la venta y en la misma moneda informada. |
13 | currencyPosCode | Alfanumérico | X | X | - | Tipos de moneda:
|
14 | payments | Numérico | O | - | - | Cantidad de cuotas. 2 dígitos como máximo. Valor entero. Si no se informa este campo, se toma por defecto el valor 1. |
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 |
54 | additionalamount | Importe | O | O | - | Contiene el Importe del "Cashout". 12 dígitos como máximo. Valor entero. Los últimos 2 dígitos corresponden a los decimales. Para devoluciones, se debe enviar el monto total del cashout. |
268 | walletPosTrxId | Alfanumérico | X | X | O | Identificador único de la transacción de billetera para la compañía. Es originado por el POS para realizar una compra o una devolución. Formato: Longitud total de 32 Opcional en QueryWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción. |
269 | walletType | Numérico | X | X | X | Tipo de billetera por la cual se cursará la transacción en el POS. Opciones: 9: PayStore |
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 QueryWallet: Se informa este campo o el campo walletPosTrxId para localizar una transacción. |
311 | purchaseTitle | Alfanumérico | O | - | - | Título de la venta. Longitud máxima 100. Si el POS no lo envía, VTOL tomará un valor por defecto. El siguiente label: "Pago con Billetera virtual en" + "CompanyName". |
312 | purchaseDesc | Alfanumérico | O | - | - | Descripción de la venta. Longitud máxima 100. Si el POS no lo envía, VTOL tomará un valor por defecto. El siguiente label: "Pago realizado por un monto de $amount. |
413 | printCopiesVoucher | Numérico | O | O | - | Indica las copias del comprobante de pago debe imprimir el terminal. Valores posibles: 1. Solo copia comercio Si no se envía este campo, no se imprime ninguna copia |
414 | paymentOperationMethod | Numérico | O | - | - | Indica el medio de pago que se podrá utilizar para la operación. Valores posibles: 1. Tarjeta (pago con tarjeta física débito o crédito) Si no se envía este campo, se toma por defecto el valor 1. |
Estructura del campo posTicket
...
Los campos dentro del encabezado serán: totDiscount y totTaxes
Detalle de los campos:
Elemento | Tipo de dato | Descripción | Requerido | Valor ante ausencia |
---|---|---|---|---|
totDiscount | Numérico | Importe total de descuento que calcula el POS. Será la sumatoria de descuentos que se apliquen a los artículos. | No | 0 |
totTaxes | Numérico | Importe total de impuesto que calcula el POS. Será la sumatoria de impuestos que se apliquen sobre la compra. | No | 0 |
La manera de ejecutar un comando es utilizando una etiqueta con la forma <elemento-comando>. El elemento "item" identifica a los artículos. De esta manera, si se desea, por ejemplo, agregar un nuevo artículo el comando a utilizar será <item-add>. En el cuerpo del mensaje podrá contener uno, ninguno o varios de estos comandos.
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. Puede ser el sku o ean. | 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. | Si | |
measure | Alfanumérico | Unidad de medida del ítem. Valores posibles: unit - pack | No | "unit" |
Ejemplo
Bloco de código | ||
---|---|---|
| ||
<message totDiscount="100.00" totTaxes="50.00"> <item-add seq="1" code="0001" discountable="true" unitprice="100.0" qty="3.0" xprice="300.0" level1="MEN" level2="CASUAL" supplier="" brand="LEVIS" magnitude="1" description="Jean casual" currency="$" /> <item-add seq="2" code="0002" discountable="true" unitprice="28.0" qty="1.0" xprice="48.0" level1="MEN" level2="CASUAL" supplier="" brand="LEVIS" magnitude="1" description="Jean casual" currency="$" /> </message> |
...
Ejemplo de requerimiento:
SaleWallet: RefundWallet: QueryWallet: |
1.4.27.2 Respuesta
Informações | ||
---|---|---|
| ||
X = Obligatorio |
Número | Nombre del campo | Tipo de dato | SaleWallet | RefundWallet | QueryWallet | 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. |
12 | amount | Importe | X | - | X | Monto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales. |
13 | currencyPosCode | Alfanumérico | X | - | X | Tipos |
de moneda:
| ||||||
14 | payments | Numérico | O | - | - | Cantidad de cuotas. 2 dígitos como máximo. Valor entero. Si no se informa este campo, se toma por defecto el valor 1. |
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. 3 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 |
29 | serialNumber | Numérico | O | X | X | Número que identifica la terminal lógica en la que se procesó la transacción. |
30 | businessNumber | Numérico | O | X | X | Número de comercio en el que se procesó la transacción. |
31 | lotNumber | Numérico | O | X | X | Número de lote en el que se registró la transacción. |
32 | ticket | Numérico | O | X | X | Número de Ticket correspondiente a la transacción. |
54 | additionalamount | Importe | O | O | O | Contiene el Importe del "Cashout". 12 dígitos como máximo. Valor entero. Los últimos 2 dígitos corresponden a los decimales. Para devoluciones, se debe enviar el monto total del cashout. |
142 | providerName | Alfanumérico | - | - | O | Proveedor de la tarjeta seleccionada al momento de efectuar el pago. |
166 | trxReferenceNumber | Numérico | 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 |
271 | walletPaymentId | Alfanumérico | X | - | X | Identificador del número de pago informado por el Autorizador |
273 | paymentStatus | Alfanumérico | X | - | X | Estado de la transacción de pago informado por el Autorizador. Estados posibles: 0: Aprobado |
274 | paymentStatusDetail | Alfanumérico | X | - | X | Detalle del estado de la transacción de pago informado por el Autorizador |
275 | cardType | Numérico | O | - | O | Tipo de tarjeta seleccionada al momento de efectuar el pago. Valores posibles: 0: Débito |
Ejemplo de respuesta:
SaleWallet: RefundWallet: QueryWallet: |
Âncora_Toc485222740 _Toc485222740
1.5 Códigos de Respuesta al POS
_Toc485222740 | |
_Toc485222740 |
...
1.5.4.1 Códigos de respuesta de VTOL Server para Billetera Rappi Payless
Código | Descripción |
---|---|
00 | APROBADA |
57 | TRANSACCION NO PERMITIDA |
500 | Sucursal no configurada Billetera RappiPayless |
503 | Compañia no configurada Billetera RappiPayless |
509 | Estado trx original no acepta devolucion |
510 | Importe devolucion supero monto limite |
533 | Devolucion parcial no soportada |
537 | Se excedio el tiempo limite para devolver |
539 | Devuelto |
544 | Transaccion ya devuelta |
545 | Cancelado |
549 | No existe comunicación con RappiPayless |
553 | Pago rechazado por diferencias en la orden |
585 | Transacción con CashBack no permitido |
586 | Imposible identificar el comercio. Verifique datos |
595 | Intención de pago vencida en Billetera |
599 | Error de validacion |
601 | No se pudo realizar la operación, reintente |
602 | Devolucion rechazada |
605 | La transaccion no se puede anular |
606 | Identificador de transaccion incorrecto |
607 | No se pudo realizar la devolucion |
611 | Código de barras invalido |
619 | No se pudo realizar la cancelación |
620 | Reintente pago por modo offline con código PIN |
Âncora | ||||
---|---|---|---|---|
|
...
A continuación se detallan las respuestas posibles de VTOL Server, cuando se realizan consultas de tarjetas de fidelidad:
Código | Descripción | Observaciones |
---|---|---|
770 | Cliente no encontrado en servicio de fidelidad | El servicio de fidelidad respondió que el cliente no fue encontrado en su base de datos. |
771 | El cliente no está activo en servicio de fidelidad | El servicio de fidelidad respondió que el cliente no tiene ninguna tarjeta activa. |
772 | Error en el servicio de fidelidad | Cuando el servicio de fidelidad no está disponible o se vence el timeout. |
773 | Error de configuración en VTOL. | VTOL valida que se encuentre configurada la API Key del Comercio para consultar con Bimo, en las propiedades de configuración. Si no están configurados en VTOL Server, o si Bimo responde un error 400, VTOL retorna este mensaje al POS. |
774 | Es requerido el documento del cliente | El POS no envió el número de DNI del cliente. |
775 | Es requerido el tipo de tarjeta de fidelidad | El POS no envió el tipo de tarjeta de fidelidad del cliente. |
776 | El documento no es valido | El número de DNI enviado no tiene el formato correcto. |
777 | Tipo de tarjeta de fidelidad no válido. | El tipo de tarjeta de fidelidad enviado no está soportado. |
778 | Consulta no disponible para esta billetera | El tipo de consulta no es soportado por el tipo de billetera enviado por el POS en el campo WalletType. |
Âncora_Código_de_errores _Código_de_errores
Âncora_Toc485222741 _Toc485222741
1.6 Código de errores del CORE
_Código_de_errores | |
_Código_de_errores |
_Toc485222741 | |
_Toc485222741 |
...
Pos. | Descripción | Longitud | Tipo de dato | Detalle |
1 | PV | 2 | AN | Identificador de tipo de registro |
2 | ID Tarjeta | 2 | AN | ID proveedor VTOL |
3 | Nombre | 40 | AN | Nombre proveedor |
4 | Medio de Pago | 20 | AN | Código proveedor en POS. Campo de relación entre POS y VTOL (Opcional) |
5 | Código de banco | 10 | AN | Código del banco (Opcional |
6 | Descripción del banco | 40 | AN | Descripción del banco (Opcional) |
7 | Marca de Tarjeta | 10 | AN | Código de la Marca de la tarjeta (Opcional). Si la tarjeta no tiene marca, no se informa el campo. |
Ejemplo
PV:VI;Visa;;00;DEFAULT;VI
PV:VIG;Visa;;7;BANCO DE GALICIA Y BUENOS AIRES S.A.U.;VI
PV:MA;Maestro;;00;DEFAULT;MC
PV:MC;Master Card;;00;DEFAULT;MC
PV:AM;Amex;;00;DEFAULT;AM
PV:DI;Diners;;00;DEFAULT
...
Pos | Descripción | Longitud | Tipo de dato | Detalle |
1 | PF | 2 | AN | Identificador de tipo de registro |
2 | Hasta | 20 | AN | Rango DesdeHasta. |
3 | Desde | 20 | AN | Rango HastaDesde. |
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 |
...
A continuación se detallan los ID de los bancos dispuestos por el BCRA.
ID de Banco | Descripción |
---|---|
7 | BANCO DE GALICIA Y BUENOS AIRES S.A.U. |
11 | BANCO DE LA NACION ARGENTINA |
14 | BANCO DE LA PROVINCIA DE BUENOS AIRES |
15 | INDUSTRIAL AND COMMERCIAL BANK OF CHINA |
16 | CITIBANK N.A. |
17 | BANCO BBVA ARGENTINA S.A. |
20 | BANCO DE LA PROVINCIA DE CORDOBA S.A. |
27 | BANCO SUPERVIELLE S.A. |
29 | BANCO DE LA CIUDAD DE BUENOS AIRES |
34 | BANCO PATAGONIA S.A. |
44 | BANCO HIPOTECARIO S.A. |
45 | BANCO DE SAN JUAN S.A. |
65 | BANCO MUNICIPAL DE ROSARIO |
72 | BANCO SANTANDER RIO S.A. |
83 | BANCO DEL CHUBUT S.A. |
86 | BANCO DE SANTA CRUZ S.A. |
93 | BANCO DE LA PAMPA SOCIEDAD DE ECONOMÍA M |
94 | BANCO DE CORRIENTES S.A. |
97 | BANCO PROVINCIA DEL NEUQUÉN SOCIEDAD ANÓ |
143 | BRUBANK S.A.U. |
147 | BANCO INTERFINANZAS S.A. |
150 | HSBC BANK ARGENTINA S.A. |
165 | JPMORGAN CHASE BANK, NATIONAL ASSOCIATIO |
191 | BANCO CREDICOOP COOPERATIVO LIMITADO |
198 | BANCO DE VALORES S.A. |
247 | BANCO ROELA S.A. |
254 | BANCO MARIVA S.A. |
259 | BANCO ITAU ARGENTINA S.A. |
262 | BANK OF AMERICA, NATIONAL ASSOCIATION |
266 | BNP PARIBAS |
268 | BANCO PROVINCIA DE TIERRA DEL FUEGO |
269 | BANCO DE LA REPUBLICA ORIENTAL DEL URUGU |
277 | BANCO SAENZ S.A. |
281 | BANCO MERIDIAN S.A. |
285 | BANCO MACRO S.A. |
299 | BANCO COMAFI SOCIEDAD ANONIMA |
300 | BANCO DE INVERSION Y COMERCIO EXTERIOR S |
301 | BANCO PIANO S.A. |
305 | BANCO JULIO SOCIEDAD ANONIMA |
309 | BANCO RIOJA SOCIEDAD ANONIMA UNIPERSONAL |
310 | BANCO DEL SOL S.A. |
311 | NUEVO BANCO DEL CHACO S. A. |
312 | BANCO VOII S.A. |
315 | BANCO DE FORMOSA S.A. |
319 | BANCO CMF S.A. |
321 | BANCO DE SANTIAGO DEL ESTERO S.A. |
322 | BANCO INDUSTRIAL S.A. |
330 | NUEVO BANCO DE SANTA FE SOCIEDAD ANONIMA |
331 | BANCO CETELEM ARGENTINA S.A. |
332 | BANCO DE SERVICIOS FINANCIEROS S.A. |
336 | BANCO BRADESCO ARGENTINA S.A.U. |
338 | BANCO DE SERVICIOS Y TRANSACCIONES S.A. |
339 | RCI BANQUE S.A. |
340 | BACS BANCO DE CREDITO Y SECURITIZACION S |
341 | BANCO MASVENTAS S.A. |
384 | WILOBANK S.A. |
386 | NUEVO BANCO DE ENTRE RÍOS S.A. |
389 | BANCO COLUMBIA S.A. |
426 | BANCO BICA S.A. |
431 | BANCO COINAG S.A. |
432 | BANCO DE COMERCIO S.A. |
435 | BANCO SUCREDITO REGIONAL S.A.U. |