Versões comparadas

Chave

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

...

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

totDiscountNuméricoImporte total de descuento que calcula el POS. Será la sumatoria de descuentos que se apliquen a los artículos.No0
totTaxesNuméricoImporte total de impuesto que calcula el POS. Será la sumatoria de impuestos que se apliquen sobre la compra.No0


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

"-"

descriptionAlfanuméricoDescripción del ítemSi
currencyAlfanumé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
measureAlfanuméricoUnidad de medida del ítem. Valores posibles: unit - packNo"unit"

...

OOOO

Nro

Campo

Tipo

Sale

Capture

PreAuth

VoidPreAuth

Descripción

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

1

store

Alfanumérico

XXXX

Identificador del sitio originador de la transacción

3

server

Alfanumérico

XXXX

Identificador del Server que procesará la transacción. ('VTOL')

4

messageType

Alfanumérico

XXXX

Tipo de Mensaje:

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

6

cardNumber

Numérico

X-X-

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

XXXX

Modo de Ingreso de la tarjeta:

3 - E-Commerce

11

trxType

Alfanumérico

XXXX

Tipo de Transacción:

  • Sale = Compra online en 1 fase.
  • Sale = Captura offline en 2 fases.
  • PreAuthorization = Pre autorización online en 2 fases.
  • VoidPreAuthorization = Anulación de Pre autorización. Offline.

12

amount

Importe

XXXX

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

XXXX

Tipos de Moneda:

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

14

payments

Numérico

XXXX

Cantidad de cuotas. 2 dígitos como máximo.

15

plan

Alfanumérico

XXXX

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

XXXX

Modo de Autorización:

  • Online = Para Pre-autorización y Sale (de 1 fase).
  • Offline = Para Captura (de 2 fases) y Anulación de Pre-autorización.

25

dateTime

Numérico

XXXX

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.

118terminalCapabilityAlfanuméricoXXXX

Capacidad de captura. Valor a enviar:

  • 1 = Manual

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.

167originalTrxReferenceNumberAlfanuméricoOXOX

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

201additionalMessageDataAlfanuméricoOOOOEste 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.
264posChannelOriginNuméricoXXXX

Indica el canal de origen de la transacción. Es un código con los siguientes valores posibles:

  • 0: Presencial
  • 1: E-Commerce
  • 2: Reservado para uso futuro
  • 3: IVR
266cardHolderNameAlfanuméricoXOXONombre del tarjetahabiente
270posTicketAlfanuméricoOOOOInformación del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket
265customerIdAlfanuméricoOOOONombre de usuario que realizó la transacción. Este campo se utiliza para validar posibles fraudes, por parte del módulo Antifraude de VTOL.
290customerIpAlfanuméricoOOOOIP 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.
291customerDocTypeAlfanuméricoOOOOTipo 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.
157customerDocAlfanuméricoOOOONú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.
292customerFirstNameAlfanuméricoOOOONombre 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.
293customerLastNameAlfanuméricoOOOOApellido 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.
294cardHolderBirthdayAlfanuméricoXXXXFecha de nacimiento del titular de la tarjeta. Formato YYYYMMDD. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor.
295cardHolderDocTypeAlfanuméricoXXXXTipo de documento del titular de la tarjeta. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor.
296cardHolderDocNumberAlfanuméricoXXXXNúmero de documento del titular de la tarjeta. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor.
297cardHolderAddressStreetAlfanuméricoOOOOCalle de entrega del resumen del titular de la tarjeta. Este dato se envía a Prisma para validar posibles fraudes por parte del emisor.
298cardHolderAddressNumberAlfanuméricoXXXONú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.
299cardHolderZipCodeAlfanuméricoOOOOCó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.
305cardHolderAddressComplementAlfanuméricoOOOOComplemento 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.
306cardIssuingBankAlfanuméricoOOOOBanco 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.
307cardBrandAlfanuméricoOOOOMarca 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.
403afApplicationConditionAlfanuméricoOOO-

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

0companyNuméricoIdentificador de la compañía donde se generó la transacción.
1storeAlfanuméricoIdentificador del sitio originador de la transacción
10inputModeAlfanumérico

Modo de Ingreso de la tarjeta:

  • E-Commerce

11

trxType

Alfanumérico

Tipo de Transacción:

  • Refund = devolució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
Nota: valor de la venta original

13

currencyPosCode

Alfanumérico

Tipos de Moneda:

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

14

payments

Numérico

Cantidad de cuotas. 2 dígitos como máximo.
Nota: valor de la venta original

15

plan

Alfanumérico

Código de plan. Largo 1.
Nota: valor de la venta original

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.

167originalTrxReferenceNumberNuméricoIdentificador de la transacción original generado VTOL Server.
25dateTimeNuméricoFecha 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.
Nota: valor de la venta original

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.

264posChannelOriginNumérico

Indica el canal de origen de la transacción.

  • E-Commerce


1.4.20.2 Respuesta

Nota: Tomar como referencia la respuesta del tipo de mensaje Sale.

...

Informações
titleReferencias

X = Obligatorio
O = Opcional
- = No requerido


NroNombre del campoTipo de datoSalePEIRefundPEIQueryPEIDescripción
0companyNuméricoXXXIdentificador de la compañía donde se generó la transacción.
1storeAlfanuméricoXXXIdentificador del sitio originador de la transacción
2nodeNuméricoXXXIdentificación del nodo, en el sitio originador, donde se generó la transacción
3serverAlfanuméricoXXXIdentificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')
4messageTypeAlfanuméricoXXX

Tipo de Mensaje:

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

10

inputMode

Alfanumérico

X

XX

Forma de ingreso:

  • BarCode
  • SoftToken

11

trxType

Alfanumérico

X

XX

Tipo de Transacción:

  • SalePEI = Compra Cuenta DNI PEI
  • RefundPEI = Devolución Cuenta DNI PEI
  • QueryPEI = Consulta de transacción Cuenta DNI PEI

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:

  • En la venta: que el importe sea mayor a 0.
  • En la devolución: que el importe sea mayor a 0 y menor al importe original de venta. Si el POS informa un importe igual que el original de venta, o no lo informa, corresponde a una devolución Total. Si el POS informa un importe menor que el original de venta, corresponde a una devolución Parcial.

13

currencyPosCode

Alfanumérico

X

X-

Tipos de Moneda:

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

25

dateTime

Numérico

X

XX

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

153idOperationPEIAlfanumérico-XO

Identificador de operación Cuenta DNI PEI de pago que se desea devolver o consultar.

157customerDocAlfanumérico

O

--

Número de documento del titular de la cuenta.

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

173dateTimeOriginalTrxNumérico--XFecha 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.
279softTokenAlfanuméricoO--

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éricoO--

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

NroCampoTipo de datoSalePEIRefundPEIQueryPEIDescripción
0companyNuméricoXXXIdentificador de la compañía donde se generó la transacción.
1storeAlfanuméricoXXXIdentificador del sitio originador de la transacción
2nodeNuméricoXXXIdentificación del nodo, en el sitio originador, donde se generó la transacción
25dateTimeNuméricoXXXFecha 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

XXX

Puede contener uno de los siguientes valores:

  • Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
  • Error = ver sección Códigos_de_Errores_del_CORE_de_VTOLServer
  • TrxIsPending: indica si existen transacciones pendientes de confirmar. En este caso, el ID de transacción a confirmar está en el campo 24

27

isoCode

Numérico

XXX

Código de Respuesta 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

XXX

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

35

errorDescription

Alfanumérico

XXX

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

153

idOperationPEI

Alfanumérico

XXX

Identificador de la operación PEI de pago o de devolución

154idOperationOrigenPEIAlfanumérico-XOIdentificador de la operación original de pago.
170idCommercePEIAlfanuméricoXXXIdentificador PEI de compañía
171idBranchPEIAlfanuméricoXXXIdentificador PEI de local
172idTerminalPEIAlfanuméricoXXXIdentificador PEI de terminal
174originalTrxStatusNumé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:

    • 0: Aprobada
    • 1: Rechazada
    • 2: En proceso
278bankingRefNumAlfanuméricoXXXNúmero de referencia de la transacción de pago.


Âncora
promopei
promopei
1.4.22 Promociones PEI para Cuenta DNI

...

Informações
titleReferencias

X = Obligatorio
O = Opcional
- = No requerido


NroCampoTipo de datoPromoPeiDescripción
0companyNuméricoXIdentificador de la compañía donde se generó la transacción.
1storeAlfanuméricoXIdentificador del sitio originador de la transacción
2nodeNuméricoXIdentificación del nodo, en el sitio originador, donde se generó la transacción
3serverAlfanuméricoXIdentificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')
4messageTypeAlfanuméricoX

Tipo de Mensaje:

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

11

trxType

Alfanumérico

X

Tipo de Transacción:

  • PromoPEI
301originalTrxTypeAlfanuméricoXIdentificador 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.

13currencyPosCodeAlfanuméricoX

Tipos de Moneda:

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

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

153idOperationPEIAlfanuméricoX

Identificador de operación PEI de pago que devuelve Link en la respuesta del pago.

278bankingRefNumAlfanuméricoXNú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

NroCampoTipo de datoPromoPeiDescripción
0companyNuméricoXIdentificador de la compañía donde se generó la transacción.
1storeAlfanuméricoXIdentificador del sitio originador de la transacción
2nodeNuméricoXIdentificación del nodo, en el sitio originador, donde se generó la transacción

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:

  • Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
  • Error = ver sección Códigos de error del CORE
  • TrxIsPending: indica si existen transacciones pendientes de confirmar. En este caso, el ID de transacción a confirmar está en el campo 24

27

isoCode

Numérico

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
titleReferencias

X = Obligatorio
O = Opcional
- = No requerido


NroCampoTipoSalePEIRefundPEIQueryPEI
0companyNuméricoXXXIdentificador de la compañía donde se generó la transacción

1

store

Alfanumérico

XXX

Identificador del sitio originador de la transacción

3

server

Alfanumérico

XXX

Identificador del Server que procesará la transacción.

Enviar: VTOL

4

messageType

Alfanumérico

XXX

Tipo de Mensaje:

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

6

cardNumber

Numérico

X--

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

XXX

Modo de Ingreso de la tarjeta:

  • Manual

11

trxType

Alfanumérico

XXX

Tipo de Transacción:

  • SalePEI = Compra con débito PEI.
  • RefundPEI = Devolución de una compra con PEI.
  • QueryPEI = Consulta de transacción PEI.

12

amount

Importe

XX-

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

XX-

Tipos de Moneda:

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

14

payments

Numérico

XX-

Cantidad de cuotas.

Enviar siempre: 1

15

plan

Alfanumérico

X--

Plan.

Enviar siempre: 0

16originalDateFecha-X-Fecha de la transacción original en el formato YYYYMMDD.

25

dateTime

Numérico

XXX

Fecha de generación de la trx en el POS. Formato YYYYMMDDHHmmss

118terminalCapabilityAlfanuméricoXXX

Capacidad de captura. Valor a enviar:

  • 1 = Manual

147

providerPosCode

Alfanumérico

O--

Código del Provider. Ejemplo: VI (Visa). Longitud 20.

153idOperationPEIAlfanumérico-X-Identificador de la operación PEI de pago original que se desea devolver.
167originalTrxReferenceNumberAlfanumé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.

201additionalMessageDataAlfanuméricoOO-

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.

264posChannelOriginNuméricoXXX

Indica el canal de origen de la transacción. Es un código con los siguientes valores posibles:

  • 3 = IVR
266cardHolderNameAlfanuméricoXX-Nombre del tarjetahabiente
270posTicketAlfanuméricoOO-Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket
139customerRefAlfanumé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.

265customerIdAlfanuméricoOO-Nombre de usuario que realizó la transacción
157customerDocAlfanuméricoOO-Número de documento del cliente que realizó la transacción.
161operationConceptAlfanuméricoX--

Concepto por el cual se realiza la operación, valores posibles:

  • 1 = COMPRA_DE_BIENES
173dateTimeOriginalTrxNumérico--XFecha 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.
290customerIpAlfanuméricoOO-IP de origen de donde se efectuó la transacción
291customerDocTypeAlfanuméricoOO-Tipo de documento del cliente que realizó la transacción.
292customerFirstNameAlfanuméricoOO-Nombre del cliente registrado en el e-commerce que realizó la transacción.
293customerLastNameAlfanuméricoOO-Apellido del cliente registrado en el e-commmerce que realizó la transacción.
295cardHolderDocTypeAlfanuméricoX--Tipo de documento del titular de la tarjeta.
296cardHolderDocNumberAlfanuméricoX--Número de documento del titular de la tarjeta.
306cardIssuingBankAlfanuméricoOO-Banco emisor de la tarjeta. Longitud máxima 20.
307cardBrandAlfanuméricoOO-Marca de la tarjeta. Longitud máxima 20.
403afApplicationConditionAlfanuméricoO--

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

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

1

store

Alfanumérico

XXX

Identificador del sitio originador de la transacción

2

node

Numérico

XXX

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

6cardNumberAlfanuméricoXXONúmero de tarjeta enmascarado con la cual se realizó el pago. Ejemplo: 450799xxxxxx0010

25

dateTime

Numérico

XXX

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

26

responseCode

Alfanumérico

XXX

Puede contener uno de los siguientes valores:

  • Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
  • Error = ver sección Código de errores del CORE
  • TrxIsPending: indica si existen transacciones pendientes de confirmar. En este caso, el ID de transacción a confirmar está en el campo 24.

27

isoCode

Numérico

XXX

Código de Respuesta ISO-8583 emitido por el centro autorizador. 2 dígitos como máximo

28

responseMessage

Alfanumérico

XXX

Mensaje de la Respuesta ISO-8583

33

creditCardIssuerName

Alfanumérico

XXX

Nombre del emisor de la tarjeta

35

errorDescription

Alfanumérico

XXX

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

166

trxReferenceNumber

Numérico

XXX

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.

153idOperationPEIAlfanuméricoXXXIdentificador de la operación PEI de pago o de devolución
154idOperationOrigenPEIAlfanumérico-XOIdentificador de la operación PEI de origen con la cual se solicitó la devolución.
170idCommercePEIAlfanuméricoXXXIdentificador PEI de compañía
171idBranchPEIAlfanuméricoXXXIdentificador PEI de local
174originalTrxStatusAlfanumé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:

    • 0: Aprobada
    • 1: Rechazada
    • 2: En proceso
278bankingRefNumAlfanuméricoX-XNumero 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
titleReferencias

X = Obligatorio
O = Opcional
- = No requerido


Número

Nombre del campo

Tipo de dato

SaleWallet

RefundWallet

QueryWallet

Descripción

0companyNuméricoXXXIdentificador de la compañía donde se generó la transacción.
1storeAlfanuméricoXXXIdentificador del local donde se generó la transacción.
2nodeNuméricoXXXIdentificador de la caja donde se generó la transacción.
3serverAlfanuméricoXXXIdentificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')
4messageTypeAlfanuméricoXXX

Tipo de Mensaje:

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

Tipo de Transacción:

  • SaleWallet = Compra con billetera electrónica
  • RefundWallet = Devolución de compra realizada con billetera electrónica
  • QueryWallet = Consulta de transacción de compra realizada con billetera electrónica
12amountNuméricoXX-

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.

13currencyPosCodeAlfanuméricoXX-

Tipos de moneda:

  • $ = Pesos
16originalDateNumérico-XXFecha de realización de la compra con billetera electrónica en formato YYYYMMDD
24

lastTrxId

NuméricoOOOUtilizado cuando está activo el control transaccional. En este campo el POS debe enviar la última transacción procesada correctamente.
25dateTimeNuméricoXXXFecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS
268walletPosTrxIdAlfanuméricoXXO

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

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

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

269walletTypeNuméricoXXX

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

2: Billetera Bimo
3: Billetera Modo
4: Billetera Todo Pago

270posTicketAlfanuméricoX--Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket
271walletPaymentIdAlfanumérico-XO

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.

401paymentMethodsDataJsonX--Información de los planes de pago, en formato json
402

walletBenefits

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



Âncora
posTicket
posTicket
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.


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

"-"

descriptionAlfanuméricoDescripción del ítemSi
currencyAlfanumé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
measureAlfanuméricoUnidad de medida del ítem. Valores posibles: unit - packNo"unit"


Ejemplo

Bloco de código
languagexml
<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ámetroTipo de datoRequeridoDescripción
providerPosCodeAlfanuméricoSi

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.

bankCodeNuméricoNo

Identificador del banco asociado a la tarjeta. Debe corresponder al ID de banco dispuesto por el BCRA.

Ver códigos de bancos.

installmentsArraySiInformación de las cuotas.

paymentOptionIdAlfanuméricoSi

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.


quantityNuméricoSiCantidad de cuotas. Número entero. Máximo 2 dígitos.

paymentConditionAlfanuméricoNo

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.


amountPerInstallmentImporteSiMonto por cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales.

totalAmountImporteSiMonto total. Incluye los recargos. Valor entero. Los 2 últimos dígitos corresponden a los decimales.

surchargeNuméricoSi

C.F.T. (Costo Financiero Total). Porcentaje de recargo sobre las cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales.


nominalAnnualRateNuméricoSi

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ámetroTipo de datoRequeridoDescripción
benefitCardIdAlfanuméricoSi

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.

providerPosCodeAlfanuméricoSiCódigo de la tarjeta de beneficio configurada en VTOL. Por ejemplo para Clarin 365 el código es "CC".

discountPercentage

NuméricoSiPorcentaje de descuento a aplicar sobre la compra. Valor entero. Los 2 últimos dígitos corresponden a los decimales.

maximumDiscountAmount

NuméricoSiImporte 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
titleReferencias

X = Obligatorio
O = Opcional
- = No requerido


Número

Nombre del campo

Tipo de dato

SaleWallet

RefundWallet

QueryWallet

Descripción

0companyNuméricoXXXIdentificador de la compañía donde se generó la transacción
1storeAlfanuméricoXXXIdentificador del sitio originador de la transacción
2nodeNuméricoXXXIdentificación del nodo, en el sitio originador, donde se generó la transacción.
6cardNumberAlfanuméricoX-OTarjeta enmascarada seleccionada por el cliente al momento de efectuar el pago QR.
12amountImporteX-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.

13currencyPosCodeAlfanuméricoX-X

Tipos de moneda:

  • $ = Pesos
14paymentsNuméricoX-OCantidad de cuotas seleccionadas al momento de realizar el pago QR.
22authorizationCodeAlfanuméricoX-X

Código de autorización informado por el Autorizador

24trxIdNuméricoXXXIdentificador de la transacción.
25dateTimeNuméricoXXX

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

26responseCodeAlfanuméricoXXX

Puede contener uno de los siguientes valores:

  • Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
  • Error = ver sección Códigos de error del CORE
  • TrxIsPending: indica si existen transacciones pendientes de confirmar. En este caso, el ID de transacción a confirmar está en el campo 24
27isoCodeNuméricoXXX

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

28responseMessageAlfanuméricoXXX

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

29

serialNumber

Numérico

OOO

Número identificatorio de la terminal en la que se procesó la transacción.

Retorna en operaciones aprobadas.

30

businessNumber

Numérico

OOO

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

Retorna en operaciones aprobadas.

31lotNumberNuméricoOOONúmero de lote en el que se registró la transacción
32ticketNuméricoOOONúmero de Ticket correspondiente a la transacción. 4 dígitos como máximo.
81responseAuthAlfanuméricoOOOMensaje de repuesta para imprimir en el ticket del POS. Retorna en operaciones aprobadas. Contiene información generada por el Autorizador.
140paymentTypeNumérico--X

Tipo de pago. Valores posibles:

0: Tarjeta
1: Efectivo

142providerNameAlfanumérico--OProveedor de la tarjeta seleccionada al momento de efectuar el pago QR.
147providerPosCodeAlfanuméricoO-OCódigo del Provider. Retornará cuando la transacción fue aprobada por el Autorizador.
166trxReferenceNumberNuméricoXX-Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato
271walletPaymentIdAlfanuméricoX-XIdentificador del número de pago informado por el Autorizador
272amountRefundedImporte--XMonto devuelto en la transacción
273paymentStatusAlfanumérico--O

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

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

275cardTypeNumérico--O

Tipo de tarjeta seleccionada al momento de efectuar el pago QR por parte del cliente.

Valores posibles:
0: Débito
1: Crédito

306cardIssuingBankAlfanuméricoO-OBanco emisor de la tarjeta. Retornará cuando la transacción fue aprobada por el Autorizador.
404paymentOptionIdAlfanuméricoX-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.

405benefitCardIdAlfanuméricoX-OIdentificador de la tarjeta de beneficio aplicada en el pago por estar vinculada en la billetera virtual del cliente.
406originalAmountImporteX-O

Monto original de la transacción: de venta o de devolución.

407amountDiscountedImporteX-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
titleReferencias

X = Obligatorio
O = Opcional
- = No requerido


Número

Nombre del campo

Tipo de dato

CardQuery

Descripción

0companyNuméricoX

Identificador de la compañía donde se generó la transacción.

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

Tipo de Mensaje:

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

11

trxType

Alfanumérico

X

Tipo de Transacción:

  • CardQuery = Consulta de transacción de compra realizada con billetera electrónica

25

dateTime

Numérico

X

Fecha y hora de realización de la transacción en formato: YYYYMMDDHHMMSS
269walletTypeNuméricoX

Tipo de billetera por la cual se realizará la consulta. Opciones:

2: Adquiriente Prisma

408loyaltyCardNuméricoX

Tipo de tarjeta de fidelidad que se quiere consultar. Opciones:

1: Clarín 365

157customerDocNuméricoX

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
titleReferencias

X = Obligatorio
O = Opcional
- = No requerido


Número

Nombre del campo

Tipo de dato

CardQuery

Descripción

0companyNuméricoXIdentificador de la compañía donde se generó la transacción
1storeAlfanuméricoXIdentificador del sitio originador de la transacción
2nodeNuméricoXIdentificación del nodo, en el sitio originador, donde se generó la transacción.
6cardNumberAlfanuméricoXNúmero de Tarjeta del cliente. Si es una tarjeta de fidelidad, retornará en plano.
25dateTimeNuméricoXFecha 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
26responseCodeAlfanuméricoX

Puede contener uno de los siguientes valores:

  • Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
  • Error = ver sección Códigos de error del CORE
27isoCodeNuméricoXCó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
28responseMessageAlfanuméricoXMensaje de la Respuesta relacionado con el código del campo 27
292customerFirstNameAlfanuméricoXNombre del tarjetahabiente.
293customerLastNameAlfanuméricoXApellido del tarjetahabiente.
409loyaltyCardCategoryAlfanuméricoX

Categoría de la tarjeta de fidelidad. Puede retornar los siguientes valores:

  • Classic
  • Plus


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
titleManejo de cuotas

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 

paymentMethodsData

payments (

401Si el monto informado por Fiserv no es el mismo que el informado en el campo paymentMethodsData, se cancela la operación

14)

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

  • Fiserv informa a VTOL la tarjeta y las cuotas seleccionadas por el cliente. Y también informa el monto de la operación. Puede darse el caso que el monto sea diferente al informado originalmente por el POS, debido a que el cliente seleccionó cuotas con interés o por la aplicación de algún descuento.
  • VTOL valida si la opción de pago existe dentro de la lista de paymentMethodsData - 401 (guardada desde la llegada del SaleWallet).
  • Si la opción de pago no existe, se cancela la operación.
  • Si la opción de pago existe, se obtiene de paymentMethodData el monto asociado a la cuota.
  • Si el monto informado por Fiserv es el mismo que el informado en el campo paymentMethodsData, se envía a Autorizar la transacción a Fiserv.
  •  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. El POS envía un SaleWallet con el monto y las cuotas de la operación.
    2. Se despliega en el pinpad el QR dinámico para ser escaneado por la billetera virtual del cliente.
    3. El cliente escanea el QR y selecciona la Tarjeta para confirmar el pago.
    4. VTOL responde al POS el código 514 (Tiempo expirado. Elija Consultar o Cancelar pago)
    5. El POS envía un QueryWallet para obtener los datos del pago.
    6. VTOL responde cuál fue la Tarjeta elegida por el cliente, con el código 654 (Valide monto y cuotas según tarjeta elegida) y hace un eco del monto y las cuotas originales enviadas por el POS.
    7. El POS envía un nuevo QueryWallet, enviando los campos de monto y cuotas, pudiendo modificar ambos datos.
      1. Si el POS no envía los campos de monto y cuotas, VTOL responderá nuevamente el código 654 (Valide monto y cuotas según tarjeta elegida)
    8. VTOL responde los datos del pago autorizado.
    9. El POS confirma la operación enviando un Cierre de sesión en estado CLOSE.
    10. VTOL responde OK.
    11. Finaliza el flujo.


    1.4.26.1 Requerimiento

    Informações
    titleReferencias

    X = Obligatorio
    O = Opcional
    - = No requerido


    Número

    Nombre del campo

    Tipo de dato

    SaleWallet

    QueryWallet

    Descripción

    0companyNuméricoXXIdentificador de la compañía donde se generó la transacción.
    1storeAlfanuméricoXXIdentificador del sitio originador de la transacción
    2nodeNuméricoXXIdentificación del nodo, en el sitio originador, donde se generó la transacción
    3serverAlfanuméricoXXIdentificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')
    4messageTypeAlfanuméricoX

    X

    Tipo de Mensaje:

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

    Tipo de Transacción:

    • SaleWallet = Compra con billetera electrónica
    • QueryWallet = Consulta de transacción de compra realizada con billetera electrónica
    12amountNuméricoX-

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

    13currencyPosCodeAlfanuméricoX-

    Tipos de moneda:

    • $ = Pesos
    16originalDateNumérico-XFecha de realización de la compra con billetera electrónica en formato YYYYMMDD
    24

    lastTrxId

    NuméricoOOUtilizado cuando está activo el control transaccional. En este campo el POS debe enviar la última transacción procesada correctamente.
    25dateTimeNuméricoXXFecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS
    268walletPosTrxIdAlfanuméricoXO

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

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

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

    269walletTypeNuméricoXX

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

    7: QR Adquiriente Fiserv

    270posTicketAlfanuméricoX-Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket
    271walletPaymentIdAlfanumé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.

    401paymentMethodsDataJsonO-

    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.

    410QRCodeAlfanuméricoO-

    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.


    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

    "-"

    descriptionAlfanuméricoDescripción del ítemSi
    currencyAlfanumé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
    measureAlfanuméricoUnidad de medida del ítem. Valores posibles: unit - packNo"unit"


    Ejemplo

    Bloco de código
    languagexml
    <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ámetroTipo de datoRequeridoDescripción
    providerPosCodeAlfanuméricoSi

    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.

    bankCodeNuméricoNo

    Identificador del banco asociado a la tarjeta. Debe corresponder al ID de banco dispuesto por el BCRA.

    Ver códigos de bancos.

    installmentsArraySiInformación de las cuotas.

    paymentOptionIdAlfanuméricoSi

    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.


    quantityNuméricoSiCantidad de cuotas. Número entero. Máximo 2 dígitos.

    paymentConditionAlfanuméricoNo

    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.


    amountPerInstallmentImporteSiMonto por cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales.

    totalAmountImporteSiMonto total. Incluye los recargos. Valor entero. Los 2 últimos dígitos corresponden a los decimales.

    surchargeNuméricoSi

    C.F.T. (Costo Financiero Total). Porcentaje de recargo sobre las cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales.


    nominalAnnualRateNuméricoSi

    T.N.A. (Tasa Nominal Anual). Valor entero. Los 2 últimos dígitos corresponden a los decimales.


    defaultPosWalletInstallmentBooleanNoMarca 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
    titleReferencias

    X = Obligatorio
    O = Opcional
    - = No requerido


    Número

    Nombre del campo

    Tipo de dato

    SaleWallet

    QueryWallet

    Descripción

    0companyNuméricoXXIdentificador de la compañía donde se generó la transacción
    1storeAlfanuméricoXXIdentificador del sitio originador de la transacción
    2nodeNuméricoXXIdentificación del nodo, en el sitio originador, donde se generó la transacción.
    12amountImporteXX

    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.

    13currencyPosCodeAlfanuméricoXX

    Tipos de moneda:

    • $ = Pesos
    14paymentsNuméricoXOCantidad de cuotas seleccionadas al momento de realizar el pago QR.
    22authorizationCodeAlfanumérico-X

    Código de autorización informado por el Autorizador

    24trxIdNuméricoXXIdentificador de la transacción.

    25

    dateTime

    Numérico

    XX

    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

    XX

    Puede contener uno de los siguientes valores:

    • Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
    • Error = ver sección Códigos de error del CORE
    • TrxIsPending: indica si existen transacciones pendientes de confirmar. En este caso, el ID de transacción a confirmar está en el campo 24

    27

    isoCode

    Numérico

    XX

    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

    XX

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

    140paymentTypeNumérico-X

    Tipo de pago. Valores posibles:

    0: Tarjeta
    1: Efectivo
    2: Transferencia

    166trxReferenceNumberNuméricoX-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
    271walletPaymentIdAlfanumérico-XIdentificador del número de pago informado por el Autorizador
    273paymentStatusAlfanumérico-X

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

    0: Aprobado
    2: Pendiente
    6: Rechazado
    7: Cancelado
    9: Reversado

    275cardTypeNumérico-O

    Tipo de tarjeta seleccionada al momento de efectuar el pago QR. Valores posibles:

    0: Débito
    1: Crédito

    410QRCodeAlfanuméricoOOSe 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.
    1010currentSessionIdNuméricoXXIdentificador de la sesión
    1027libResponseCodeNuméricoXX

    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

    1028libResponseMessageAlfanuméricoXXMensaje 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
    titleImportante

    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
    • La devolución de cashout siempre debe ser por el monto total.


    1.4.27.1 Requerimiento

    Informações
    titleReferencias

    X = Obligatorio
    O = Opcional
    - = No requerido
    C = Condicional


    Número

    Nombre del campo

    Tipo de dato

    SaleWallet

    RefundWallet

    QueryWallet

    Descripción

    0companyNuméricoX

    X

    XIdentificador de la compañía donde se generó la transacción.
    1storeAlfanuméricoXXXIdentificador del sitio originador de la transacción
    2nodeNuméricoXXXIdentificación del nodo, en el sitio originador, donde se generó la transacción
    3serverAlfanuméricoXXXIdentificador del Server que procesará la transacción. (en el caso de VTOL será 'VTOL')
    4messageTypeAlfanuméricoXXX

    Tipo de Mensaje:

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

    11

    trxType

    Alfanumérico

    X

    XX

    Tipo de Transacción:

    • SaleWallet = Compra con billetera electrónica

    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:

    • $ = Pesos
    14paymentsNuméricoO--

    Cantidad de cuotas. 2 dígitos como máximo. Valor entero.

    Si no se informa este campo, se toma por defecto el valor 1.

    16originalDateNumérico-XXFecha de realización de la compra con billetera electrónica en formato YYYYMMDD
    24lastTrxIdNuméricoOOOUtilizado cuando está activo el control transaccional. En este campo el POS debe enviar la última transacción procesada correctamente.

    25

    dateTime

    Numérico

    X

    XXFecha y hora de realización de la transacción en formato: YYYYMMDDHHMMSS
    54additionalamountImporteOO-

    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.

    268walletPosTrxIdAlfanuméricoXXO

    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:
    codigoTienda (longitud 10) + codigoCaja (longitud 10) + Fecha (AAMMDDHHmmss) (longitud 12)

    Longitud total de 32

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

    269walletTypeNuméricoXXX

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

    9: PayStore

    270posTicketBase 64X--Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket
    271walletPaymentIdAlfanumérico-XO

    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.

    311purchaseTitleAlfanuméricoO--

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

    312purchaseDescAlfanuméricoO--

    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.

    413printCopiesVoucherNuméricoOO-

    Indica las copias del comprobante de pago debe imprimir el terminal. Valores posibles:

    1. Solo copia comercio
    2. Solo copia cliente
    3. Ambas copias

    Si no se envía este campo, no se imprime ninguna copia

    414paymentOperationMethodNuméricoO--

    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)
    2. Código QR (pago con billeteras virtuales)

    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

    totDiscountNuméricoImporte total de descuento que calcula el POS. Será la sumatoria de descuentos que se apliquen a los artículos.No0
    totTaxesNuméricoImporte total de impuesto que calcula el POS. Será la sumatoria de impuestos que se apliquen sobre la compra.No0


    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.


    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

    "-"

    descriptionAlfanuméricoDescripción del ítemSi
    currencyAlfanumérico

    Moneda utilizada en el precio del ítem.

    Si
    measureAlfanuméricoUnidad de medida del ítem. Valores posibles: unit - packNo"unit"


    Ejemplo

    Bloco de código
    languagexml
    <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:
    {269:9;268:0000000001000000000120223603013649;25:20220303133649;71:True;14:1;13:$;12:8100;11:SaleWallet;4:DATA;270:PG1lc3NhZ2UgjYXN1YWwiIGN1cnJlbmN5PSIkIiAvPgo8L21lc3NhZ2U+Cg}

    RefundWallet:
    {271:03013659-d8ec-4e06-974c-e967f83e782e;16:20220303;269:9;268:0000000001000000000120223803013836;13:$;12:8100;11:RefundWallet;4:DATA;3:VTOL;2:1;25:20220303133836;71:True;1:1;0:1}

    QueryWallet:
    {0:1;1:1;2:1;3:VTOL;4:DATA;11:QueryWallet;16:20220303;25:20220303133921;71:False;268:0000000001000000000120223803013836;269:9}



    1.4.27.2 Respuesta

    Informações
    titleReferencias

    X = Obligatorio
    O = Opcional
    - = No requerido
    C = Condicional


    Número

    Nombre del campo

    Tipo de dato

    SaleWallet

    RefundWallet

    QueryWallet

    Descripción

    0companyNuméricoXXX

    Identificador de la compañía donde se generó la transacción.

    1storeAlfanuméricoXXXIdentificador del sitio originador de la transacción.
    2nodeNuméricoXXXIdentificación del nodo, en el sitio originador, donde se generó la transacción.
    12amountImporteX-XMonto de la transacción. Valor entero. Los últimos 2 dígitos corresponden a los decimales.
    13currencyPosCodeAlfanuméricoX-X

    Tipos

    de moneda:$ = Pesos

    de moneda:

    • $ = Pesos
     14paymentsNuméricoO--

    Cantidad de cuotas. 2 dígitos como máximo. Valor entero.

    Si no se informa este campo, se toma por defecto el valor 1.

    24trxIdNuméricoXXXIdentificador de la transacción
    25dateTimeNuméricoXXXFecha 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
    26responseCodeAlfanuméricoXXX

    Puede contener uno de los siguientes valores:

    • Iso8583 = la autorización fue procesada. Para evaluar si fue aprobada chequear el campo 27
    • Error = ver sección Códigos de error del CORE
    • TrxIsPending: indica si existen transacciones pendientes de confirmar. En este caso, el ID de transacción a confirmar está en el campo 24
    27isoCodeNuméricoXXXCó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
    28responseMessageAlfanuméricoXXXMensaje de la Respuesta relacionado con el código del campo 27
    29serialNumberNuméricoOXXNúmero que identifica la terminal lógica en la que se procesó la transacción.
    30businessNumberNuméricoOXXNúmero de comercio en el que se procesó la transacción.
    31lotNumberNuméricoOXXNúmero de lote en el que se registró la transacción.
    32ticketNuméricoOXXNúmero de Ticket correspondiente a la transacción.
    54additionalamountImporteOOO

    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.

    142providerNameAlfanumérico--O

    Proveedor de la tarjeta seleccionada al momento de efectuar el pago.

    166trxReferenceNumberNuméricoXXXIdentificador ú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
    271walletPaymentIdAlfanuméricoX-XIdentificador del número de pago informado por el Autorizador
    273paymentStatusAlfanuméricoX-X

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

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

    274paymentStatusDetailAlfanuméricoX-XDetalle del estado de la transacción de pago informado por el Autorizador
    275cardTypeNuméricoO-O

    Tipo de tarjeta seleccionada al momento de efectuar el pago.

    Valores posibles:

    0: Débito
    1: Crédito


    Ejemplo de respuesta:

    SaleWallet:
    {25:20220303133649;2:1;1:1;0:1;12:8100;275:0;13:$;27:514;273:0;140:0;14:0;26:ISO8583;28:Tiempo expirado. Elija Consultar o Cancelar;24:13;166:3032213365800000020;271:03013659-d8ec-4e06-974c-e967f83e782e}

    RefundWallet:
    {2:1;1:1;0:1;24:14;25:20220303133836;26:ISO8583;27:514;28:Tiempo expirado. Elija Consultar o Cancelar;166:3032213385800000021}

    QueryWallet:
    {0:1;1:1;2:1;12:8100;13:$;24:14;25:20220303133921;26:ISO8583;27:00;28:APROBADA;166:3032213385800000021;271:03013858-d8ec-4e06-974c-e967f83e782e;273:0;274:CONFIRMED}



    Âncora
    _Toc485222740
    _Toc485222740
    1.5 Códigos de Respuesta al POS

    ...

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

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



    Âncora
    codrespnopresencial
    codrespnopresencial
    1.5.5 Códigos de Respuesta de VTOL Server para operaciones no presenciales

    ...

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

    Código

    Descripción

    Observaciones

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

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

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

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



    Âncora
    _Código_de_errores
    _Código_de_errores
    Âncora
    _Toc485222741
    _Toc485222741
    1.6 Código de errores del CORE

    ...

    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

    6Descripción del banco40ANDescripción del banco (Opcional)
    7Marca de Tarjeta10AN

    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.
    (0/vacío ó 1)

    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.
    (0 ó 1)

    24

    Solicita número de cuenta

    1

    N

    Solicita al autorizador el número de cuenta.
    (0 ó 1)

    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.
    (0 ó 1)

    28

    Posición de la Master Key

    1

    N

    Indica la posición de la Master Key en los registros del Firmware. Valores posibles:
    0: Mastercard y Maestro
    1: Visa 1
    99: Indica que el Pinpad no tiene registro para la MK. Es el caso de tarjeta Amex.

    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

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