Versões comparadas

Chave

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

...

VTOL EMVKIT AR 1.11.X - Prisma QR Grandes Cuentas

...


Painel
borderColor#E4E3E3
titleColor#ffffff
borderWidth1
titleBGColor#704581
titleCONTENIDO

Índice


Revisiones

Fecha

Versión

Descripción

01/07/20241.0Creación del documento
2/10/20251.1Se especifica que se debe agregar el plan de pago Transferencia "TR" obligatoriamente en el campo 401 en el mensaje de QueryWallet de "Intención de compra completa"


1.    Introducción

1.1.  Propósito

...

  1. El POS le envía a VTOL la intención de compra completa (en un QueryWallet) con los Providers en el campo 401 "walletPaymentMethod", es decir, le envía los planes de pago que el usuario podrá elegir desde la billetera. Nota: si hay algún beneficio adicional de una tarjeta, la información se enviará en el campo 402 "walletBenefit". Esta queryWallet indica que se debe enviar el mensaje a Prisma Importante: En este requerimiento de QueryWallet el POS debe agregar obligatoriamente la opción de pago "TR" Transferencia dentro del campo 401, ya que es un dato que espera recibir siempre Payway. Con esta QueryWallet se debe envía el mensaje a Payway para completar la intención de compra.
  2. VTOL envía a PRISMA QR la intención de compra completa con los medios de pago al endpoint [PUT] /largeaccounts/intentions/complete?cuit={value}&branch={value}&checkout={value}
  3. PRISMA responde a VTOL con el código HTTP 204 "Intención recibida correctamente" y le envía a la billetera la información de las opciones de pago según las tarjetas que tiene el usuario en su billetera.
  4. El usuario visualizará el detalle de la compra con las opciones de pago disponibles enviadas por la caja y efectuará el pago seleccionando la tarjeta y las cuotas, de esta forma se confirma el pago. 
  5. PRISMA autoriza la compra. 
  6. VTOL consulta el estado de la compra mediante el endpoint [GET] /payments/qr?intention_id={value} y recibe la respuesta de PRISMA QR.  Se pueden presentar los siguientes escenarios:
    1. Si el pago se realizó correctamente, entonces PRISMA le envía a VTOL la respuesta del estado de la orden "Approved", entonces se incrementa el ticket y trace de la caja en la cual se realizó la operación. Por lo tanto, VTOL actualiza el estado de la orden en la tabla WalletFinancial y le responde al POS con el estado de la transacción aprobada (isoCode "00" y responseMessage "Aprobada"). El paso siguiente del POS es confirmar o cancelar la transacción, con un tercer mensaje.
    2. Si se presenta algún problema para efectuar el pago y VTOL no recibe de PRISMA la respuesta/notificación del pago, entonces desde el POS se consulta por el pago. 
  7. Fin del flujo.

...

Número

Nombre del campo

Tipo de dato

SaleWallet

Descripción

0companyNuméricoM

Identificador de la compañía donde se generó la transacción. Exclusivo para mensajería POS-VTOL.

1storeAlfanuméricoM

Identificador del local donde se generó la transacción. Exclusivo para mensajería POS-VTOL.

2nodeNuméricoM

Identificador de la caja donde se generó la transacción. Exclusivo para mensajería POS-VTOL.

3serverAlfanuméricoM

Identificador del Server que procesará la transacción, en el caso de VTOL será "VTOL". Exclusivo para mensajería POS-VTOL.

4messageTypeAlfanuméricoM

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

Exclusivo para mensajería POS-VTOL.

11trxTypeAlfanuméricoM

Indica el tipo de transacción:

  • SaleWallet = Compra con billetera electrónica.
12amountNuméricoMMonto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ejemplo: "1000" equivale a "10.00".
13currencyPosCodeAlfanuméricoM

Tipos de moneda: $ = Pesos

24

lastTrxId

NuméricoOEn este campo el POS debe enviar la última transacción procesada correctamente. Se utiliza si está activo el control transaccional.
25dateTimeNuméricoMFecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS
268walletPosTrxIdAlfanuméricoM

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 QuerySaleWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra.

269walletTypeNuméricoM

Tipo de billetera por la cual se realizará la transacción en el POS. La opción corresponde a 3: MODO. 

270walletPosTicketAlfanuméricoM

Información del ticket en formato xml y posteriormente transformado en Base 64.

401

walletPaymentMethod

Formato Json codificado en Base 64O

Información de los planes de pago. La estructura de este campo está definida en la siguiente sección del documento.

Importante: en este MENSAJE sólo se envía el valor "TR" que corresponde a pago con transferencia 3.0. Se envía solo si el comercio opera con Transferencia 3.0 sino no se envía.

...

[{"posCode":"VI","bank_id":7,"bin":459354}]

Ejemplo Response QueryWallet (log emvkitEstructura del campo 401 (walletPaymentMethod):

Response message:

...

Referencia de campos:

M = Mandatorio.

= Opcional.

ParámetroTipo de datoReferenciaDescripción
providerPosCodeAlfanuméricoM

Código del Proveedor de la tarjeta configurado en VTOL.

Por ejemplo: VI (Visa), MC (mastercard), MA (Maestro), entre otros.

bankCodeNuméricoO

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

Nota: para Transferencias 3.0 no se envía este campo.

installmentsArrayMInformación de las cuotas.

paymentOptionId


AlfanuméricoM

Identificador de la opción de pago creada por el POS. Máximo 10 caracteres. Debe ser único dentro del campo "paymentMethodsData".

Permite trazabilidad con la opción elegida por 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.

quantityNuméricoM

Cantidad de cuotas. Máximo 2 dígitos.

Nota: para transferencias 3.0 (pago con saldo en cuenta) es una cuota, por lo cual, el valor del campo es 1.

paymentCondition AlfanuméricoO

Condición de la opción de pago. Sólo se informará si existe configurada en VTOL una opción de pago con una condición. Máximo 20 caracteres.

amountPerInstallmentImporteM

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

Nota: para transferencias 3.0 el valor de este campo deberá ser igual al totalAmount.

totalAmountImporteM

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

Nota: para transferencias 3.0 el valor de este campo deberá ser igual al amountPerInstallment.

surcharge

(cft)

DecimalM

Porcentaje de recargo sobre las cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales.

  • Recargo (C.F.T. - costo financiero total): porcentaje.

Nota: para transferencias 3.0 el valor de este campo es 0, ya que no existe recargo.

nominalAnnualRate

(tna)

DecimalM

Tasa Nominal Anual. Valor entero. Los 2 últimos dígitos corresponden a los decimales.

  • T.N.A. (tasa nominal anual): porcentaje.

Ejemplo Response QueryWallet (log emvkit):

Response message:

{32:0;1:15;2:70486;1027:000;1028:Ok;421:17447444605040;140:0;12:140000;13:$;14:0;272:00;273:4;401:W3sicG9zQ29kZSI6IkFNUyIsImJhbmtfaWQiOjcyLCJiaW4iOjM3MTU5NX1d;402:W10=;1010:1744744445373;275:0;406:140000;24:10;25:20250415161432;26:ISO8583;27:543;28:Enviar medios de pagos;31:1}

...

Número

Nombre del campo

Tipo de dato

QueryWallet

Descripción

0companyNuméricoM

Identificador de la compañía donde se generó la transacción. Exclusivo para mensajería POS-VTOL.

1storeAlfanuméricoM

Identificador del local donde se generó la transacción. Exclusivo para mensajería POS-VTOL.

2nodeNuméricoM

Identificador de la caja donde se generó la transacción. Exclusivo para mensajería POS-VTOL.

3serverAlfanuméricoM

Identificador del Server que procesará la transacción, en el caso de VTOL será "VTOL". Exclusivo para mensajería POS-VTOL.

4messageTypeAlfanuméricoM

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

Exclusivo para mensajería POS-VTOL.

11trxTypeAlfanuméricoM

Indica el tipo de transacción:

  • QueryWallet.
12amountNuméricoOMonto de la transacción. 12 dígitos como máximo. Se envía sin coma. Los dos últimos dígitos representan los decimales. Ejemplo: "1000" equivale a "10.00".
13currencyPosCodeAlfanuméricoO

Tipos de moneda: $ = Pesos

16originalDateNuméricoMFecha de realización de la compra con billetera electrónica en formato YYYYMMDD
24

lastTrxId

NuméricoOEn este campo el POS debe enviar la última transacción procesada correctamente. Se utiliza si está activo el control transaccional.
25dateTimeNuméricoMFecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS
71checkPendingStringAlfanuméricoO

Indica si VTOL debe o no efectuar el chequeo de pendientes (se emplea para pagos parciales de tarjetas):

  • True: activa chequeo de pendientes.
  • False: desactiva chequeo de pendientes.
268walletPosTrxIdAlfanuméricoM

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 QuerySaleWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra.

269walletTypeNuméricoM

Tipo de billetera por la cual se realizará la transacción en el POS. La opción corresponde a 3: MODO. 

271walletPaymentIdAlfanuméricoO

Identificador del número de pago informado por el Autorizador en el campo 271 de la respuesta de la operación SaleWallet.

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

401

walletPaymentMethod

Formato Json codificado en Base 64M

Información de los planes de pago. La estructura de este campo está definida en la siguiente sección del documento.

Importante: en este campo VTOL envía el valor de los providers que tiene el cliente en su billetera.MENSAJE se debe agregar obligatoriamente el valor "TR" que corresponde a pago con transferencia 3.0. 

402

walletBenefit

Formato JsonOInformación de las tarjetas de beneficio aceptadas.

...

ParámetroTipo de datoReferenciaDescripción
providerPosCodeAlfanuméricoM

Código del Proveedor de la tarjeta configurado en VTOL.

Por ejemplo: VI (Visa), MC (mastercard), MA (Maestro), entre otros.

bankCodeNuméricoO

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

Nota: para Transferencias 3.0 no se envía este campo.

installmentsArrayMInformación de las cuotas.

paymentOptionId


AlfanuméricoM

Identificador de la opción de pago creada por el POS. Máximo 10 caracteres. Debe ser único dentro del campo "paymentMethodsData".

Permite trazabilidad con la opción elegida por 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.

quantityNuméricoM

Cantidad de cuotas. Máximo 2 dígitos.

Nota: para transferencias 3.0 (pago con saldo en cuenta) es una cuota, por lo cual, el valor del campo es 1.

paymentCondition AlfanuméricoO

Condición de la opción de pago. Sólo se informará si existe configurada en VTOL una opción de pago con una condición. Máximo 20 caracteres.

amountPerInstallmentImporteM

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

Nota: para transferencias 3.0 el valor de este campo deberá ser igual al totalAmount.

totalAmountImporteM

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

Nota: para transferencias 3.0 el valor de este campo deberá ser igual al amountPerInstallment.

surcharge

(cft)

DecimalM

Porcentaje de recargo sobre las cuotas. Valor entero. Los 2 últimos dígitos corresponden a los decimales.

  • Recargo (C.F.T. - costo financiero total): porcentaje.

Nota: para transferencias 3.0 el valor de este campo es 0, ya que no existe recargo.

nominalAnnualRate

(tna)

DecimalM

Tasa Nominal Anual. Valor entero. Los 2 últimos dígitos corresponden a los decimales.

  • T.N.A. (tasa nominal anual): porcentaje.

...

ParámetroTipo de datoRequeridoDescripción

benefitCardId

Alfanumé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".
card_numberNuméricoSI (solo si se envía el campo benefits_methods_data.bene
fits_card.code) 

Número de la tarjeta de beneficios.

Importante:  el campo “card_number” se agregó en el objeto “benefits_methods_data” del request de "Reenviar bines al integrador", por lo cual se envía en este request.

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.

...

Request: 


{269:3;16:20250415;268:0000000015000007048620251415041408;12:140000;11:QueryWallet;401:[
    {
;401:[
    {
        "installments"\: [
            {
                "amountPerInstallment"\: 600000\,
                "nominalAnnualRate"\: 0\,
                "quantity"\: "1"\,
                "surcharge"\: 0\,
                "installmentstotalAmount"\: [600000
            {}
        ]\,
        "amountPerInstallmentproviderPosCode"\: 140000"MCGA"
    }\,
    {
        "providerPosCode"\: "TR"\,
        "nominalAnnualRateinstallments"\: 0\,[
            {
                "quantity"\: "1"\,
                "surchargeamountPerInstallment"\: 060000\,
                "totalAmount"\: 14000060000\,
                }"surcharge"\: 0\,
        ]\,
        "providerPosCodenominalAnnualRate"\: "AM0"
            }
        ]
    }
];6:4905;2:70486;25:20250415161446;24:10;1:15}

...