...
Painel | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
...
Aviso | ||
---|---|---|
| ||
En caso de ser un pago con Tarjeta de Débito, el POS deberá enviar en el mensaje SaleWallet el campo payments (14) 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 |
Flujo y Diagrama de secuencia del "Pago con Tarjeta" (una interacción). Finaliza el flujo con un cerrar sesión (CLOSE)
Informações | ||
---|---|---|
| ||
El proceso se puede realizar en una interacción únicamente si el POS envía en el SaleWallet el campo 147 "provider", luego VTOL deberá validar el BIN y el provider enviado desde el POS. Si la validación es correcta, se finaliza el flujo enviando el cerrar sesión (CLOSE) por el POS. |
A continuación, se define el flujo de la operación:
- El POS envía un SaleWallet con el
...
- ammount (campo 12), paymments (campo 14) y el provider (campo 147).
- VTOL le envía a Fiserv la solicitud de compra con billetera digital, enviado el message Code 0200 y el processing code 0060031.
- Fiserv responde con la información del código QR mediante el message code 9600 y el processing code 940400 y VTOL confirma la recepción del QR con el código de mensaje 9610.
- VTOL envía el código QR en el campo 410 "QRCode" y luego se despliega en el pinpad el QR dinámico para ser escaneado por la billetera virtual del cliente.
- El cliente escanea el QR y selecciona la Tarjeta para confirmar el pago.
- VTOL responde al POS el código 657
...
- "QR recibido, consulte el procesamiento del pago".
- VTOL valida el BIN y compara con el provider (campo 147) enviado por el POS, luego le envía a Fiserv la respuesta con los datos para autorizar el pago.
- Fiserv autoriza el pago y le envía a VTOL la respuesta con los datos de la solicitud (message code 0210).
- El POS envía un QueryWallet para obtener los datos del pago.
- Si el pago está aprobado, VTOL le responde al POS el código 00 "Aprobado"
- El POS confirma la operación enviando un Cierre de sesión en estado CLOSE.
- VTOL envía la confirmación de la compra (message code 0202) y Fiserv responde con el código 0212.
- Finaliza el flujo.
Flujo y Diagrama de secuencia del "Pago con Tarjeta" (una interacción). Finaliza el flujo con un cerrar sesión (CANCEL)
En este flujo se presenta un error en VTOL al validar el BIN y al comparar el provider (campo 147) enviado por el POS. Por este motivo, el flujo finaliza con un cerrar sesión (CANCEL). A continuación, se define el flujo de la operación:
- El POS envía un SaleWallet con el ammount (campo 12), paymments (campo 14) y el provider (campo 147).
- VTOL le envía a Fiserv la solicitud de compra con billetera digital, enviado el message Code 0200 y el processing code 0060031.
- Fiserv responde con la información del código QR mediante el message code 9600 y el processing code 940400 y VTOL confirma la recepción del QR con el código de mensaje 9610.
- VTOL envía el código QR en el campo 410 "QRCode" y luego se despliega en el pinpad el QR dinámico para ser escaneado por la billetera virtual del cliente.
- El cliente escanea el QR y selecciona la Tarjeta para confirmar el pago.
- VTOL responde al POS el código 657 "QR recibido, consulte el procesamiento del pago".
- Error en VTOL al validar el BIN y comparar con el provider (campo 147) enviado por el POS, luego VTOL le envía a Fiserv la solicitud de Cancel (message code 0420).
- Fiserv responde la solicitud del cancel (message code 0430)
- El POS envía un QueryWallet para obtener los datos del pago. VTOL responde el código 553 "Pago rechazado".
- El POS cancela la operación enviando un cierre de sesión en estado CANCEL.
- Finaliza el flujo.
Aviso | ||
---|---|---|
| ||
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. |
Flujo del "Pago con Tarjeta" (dos interacciones)
- El POS envía un SaleWallet con el monto y las cuotas de la operación.
- Se despliega en el pinpad el QR dinámico para ser escaneado por la billetera virtual del cliente.
- El cliente escanea el QR y selecciona la Tarjeta para confirmar el pago.
- VTOL responde al POS el código 657 (QR recibido, consulte el procesamiento del pago)
- El POS envía un QueryWallet para obtener los datos del pago.
- 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.
- El POS envía un nuevo QueryWallet, enviando los campos de monto y cuotas, pudiendo modificar ambos datos.
- 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)
- Si el pago aún no se ha realizado, VTOL le responde al POS con el código 516 "Pago aún no realizado".
- El POS envía un nuevo QueryWallet para consultar el estado del pago. Si el pago está autorizado, VTOL responde con los datos del pago
...
- y le envía al POS el código 00 "Aprobado".
- El POS confirma la operación enviando un Cierre de sesión en estado CLOSE.
- VTOL envía la confirmación de la compra (message code 0202) y Fiserv responde con el código 0212.
- Finaliza el flujo.
Diagrama de secuencia del "Pago con Tarjeta" (dos interacciones)
Flujo del Pago con saldo dinero en cuenta:
- El POS envía un SaleWallet con el monto y las cuotas de la operación.
- Se despliega en el pinpad el QR dinámico para ser escaneado por la billetera virtual del cliente.
- El cliente escanea el QR y selecciona la Cuenta para confirmar el pago.
- VTOL responde al POS el código 657 (TQR QR recibido, consulte el procesamiento del pago)
- El POS envía un QueryWallet para obtener los datos del pago. Se pueden presentar los siguientes flujos:
- Si el pago
aún no - se
ha realizado, VTOL responde con el código 516 “Pago aún no realizado, Consulte o Cancele el pago”.Si el pago se - realizó, VTOL le responde al POS los datos del pago y el código 00 “Aprobado”.
- El POS confirma la operación enviando un Cierre de sesión en estado CLOSE.
- VTOL envía a Fiserv la confirmación y Fiserv responde el código 0212.
- Finaliza el flujo.
Diagrama de secuencia del "Pago con saldo dinero en cuenta"
A continuación, se detallan 3 flujos alternativos del Diagrama Pago con saldo dinero en cuenta:
a._ La caja desea cancelar el pago con saldo en cuenta y NO es permitido:
Si la caja desea enviar un reverso de un pago con saldo dinero en cuenta, la caja le deberá enviar primero a VTOL un QueryWallet con el campo 420 "precancel" en valor true, el cual indica que es una consulta previa para ejecutar un cancel. Es , es decir, no se puede enviar un reverso directamente.
Si la respuesta de la QueryWallet que tiene el precancel activado en true informa el pago Aprobado (00), entonces se le informa el POS que NO se puede cancelar el pago y luego el POS envía el cerrar sesión (CLOSE). Nota: en este escenario se puede proceder con la devolución del pago ya que se encuentra aprobado.
En el diagrama de secuencia se encuentra resaltado en rojo el resumen del flujo de este escenario:
b._ La caja desea cancelar el pago con saldo en cuenta y SI es permitido
Si la caja desea enviar un reverso de un pago con saldo dinero en cuenta, la caja le deberá enviar primero a VTOL un QueryWallet con el campo 420 "precancel" en valor true, el cual indica que es una consulta previa para ejecutar un cancel. Es , es decir, no se puede enviar un reverso directamente.
Si la respuesta de la QueryWallet que tiene el precancel activado en true se le informa al POS que el pago aún no está Aprobado (código 516) le permite al POS realizar la acción de cerrar sesión (CANCEL)
En el diagrama de secuencia se encuentra resaltado en azul el resumen del flujo de este escenario:
c._ Error en la comunicación entre Fiserv y VTOL.
Si VTOL no recibe información de Fiserv acerca del pago en el tiempo definido, por este motivo, VTOL le envía un reverso a Fiserv el al cual le responde con el código B6 "No se puede realizar el reverso del pago porque está autorizado".
...
- El POS envía un SaleWallet con el monto y las cuotas de la operación.
- Se despliega en el pinpad el QR dinámico para ser escaneado por la billetera virtual del cliente.
- El cliente escanea el QR y selecciona la Cuenta y confirma el pago.
- VTOL responde al POS el código 657 (TQR recibido, consulte el procesamiento del pago).
- El POS envía un QueryWallet para obtener los datos del pago. El pago aún no se ha realizado, por lo cual, VTOL responde con el código 516 “Pago aún no realizado, Consulte o Cancele el pago”.
- Fiserv autoriza el pago, pero hay un error en la comunicación, por este motivo, Fiserv no le puede enviar a VTOL la información del pago.
- VTOL le envía la solicitud de reverso a Fiserv, debido a que se excede el tiempo establecido para recibir los datos del pago.
- VTOL recibe la respuesta de Fiserv con el código B6 “No se puede realizar el reverso del pago porque está autorizado", por este motivo, Fiserv no le puede enviar a VTOL la respuesta del pago.
- VTOL le envía la solicitud de reverso a Fiserv, debido a que se excede el tiempo establecido para recibir los datos del pago.
- VTOL recibe la respuesta de Fiserv con el código B6 “No se puede realizar el reverso del pago porque está autorizado".
- El POS envía un QueryWallet y VTOL le consulta a Fiserv por el pago pendiente. Fiserv le responde a VTOL los datos del pago Aprobado.
- El POS confirma la operación enviando un Cierre de sesión en estado CLOSE.
- VTOL envía un commit con la confirmación y Fiserv responde el código 0212 con la confirmación.
Diagrama de secuencia
En el diagrama se encuentra resaltado en verde el resumen de este proceso:
Flujo de la Devolución (RefundWallet):
El flujo consiste en:
- El POS envía a VTOL un RefundWallet con el número de operación de la compra y el monto original para solicitar la devolución.
- VTOL envía la solicitud de la devolución a Fiserv con el código de mensaje 0400 y el código de procesamiento correspondiente a la transacción original.
- Fiserv responde con la información del código QR y VTOL confirma la recepción del QR.
- VTOL envía los datos del código QR para que el usuario pueda seleccionar desde la aplicación la opción de “Devolución”.
- Se despliega en el pinpad el QR dinámico para ser escaneado por la billetera virtual del cliente y luego confirmar la Devolución de la transacción en la aplicación.
- Fiserv le envía la respuesta a VTOL para confirmar la devolución con el código 0410.
- El POS envía un QueryWallet y VTOL le consulta a Fiserv por el pago pendiente. Fiserv le responde a VTOL los datos del pago Aprobadoa VTOL para obtener los datos de la devolución.
- VTOL responde los datos de la devolución.
- El POS confirma la operación enviando un Cierre de sesión en estado CLOSECerrar sesión (Commit) a VTOL.
- VTOL envía un commit con la confirmación y Fiserv responde el código 0212 con la confirmaciónmensaje a Fiserv para confirmar la Devolución mediante el código de mensaje 0202.
- Fiserv responde la confirmación de la Devolución a VTOL mediante el código de mensaje 0212.
- Finaliza el flujo.
Diagrama de secuencia:
- Requerimiento
Informações | ||
---|---|---|
| ||
X = Obligatorio |
...
Número | Nombre del campo | Tipo de dato | SaleWallet | RefundWallet | QueryWallet | Descripción |
---|---|---|---|---|---|---|
11 | trxType | Alfanumérico | X | X | X | Tipo de Transacción:
|
12 | amount | Numérico | X | X | O | Monto de la transacción. 12 dígitos como máximo. Valor entero. Los dos últimos dígitos representan los decimales. Ej: "1000" equivale a "10.00". |
13 | currencyPosCode | Alfanumérico | X | X | O | Tipos de moneda:
|
14 | payments | Numérico | O | - | O | Cantidad de cuotas. 2 dígitos como máximo. Para operar con Tarjeta de Débito, enviar 1. |
16 | originalDate | Numérico | - | X | X | Fecha de realización de la compra con billetera electrónica en formato YYYYMMDD |
24 | lastTrxId | Numérico | O | O | O | Utilizado cuando está activo el control transaccional. En este campo el POS debe enviar la última transacción procesada correctamente. |
25 | dateTime | Numérico | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS |
147 | providerPosCode | Alfanumérico | O | - | - | Proveedor/tarjeta seleccionada por el cliente en su billetera virtual al momento de efectuar el pago. |
268 | walletPosTrxId | Alfanumérico | X | X | O | Identificador único de la transacción de billetera para la compañía. Es originado por el POS para realizar una compra con billetera. Formato: Opcional en QueryWallet: Se informa este campo o el campo walletPaymentId para localizar una transacción de compra. |
269 | walletType | Numérico | X | X | X | Tipo de billetera por la cual se cursará la transacción en el POS. Opciones: 7: QR Adquiriente Fiserv |
270 | posTicket | Alfanumérico | X | - | - | Información del ticket en formato xml y posteriormente transformado en Base 64. Ver sección Estructura del campo posTicket |
271 | walletPaymentId | Alfanumérico | - | X | O | Identificador del número de pago informado por el Autorizador en el campo 271 de la respuesta de la operación SaleWallet. Opcional en QueryWallet: Se informa este campo o el campo walletPosTrxId para localizar una transacción de compra. |
1410 | QRCode | Booleano | O | O | - | El POS enviará si desea recibir el código QR para imprimirlo en la caja. Valores posibles: True: indica que se recibirá el código QR y se inyectará en el pinpad. False: indica que se recibirá el código QR pero no se inyectará en el pinpad. No se envía el campo: indica que no se recibirá el código QR |
420 | precancel | Alfanumérico | - | - | O | El POS enviará si desea ejecutar un cancel. Valores posibles: True: indica que es una consulta previa a ejecutar un cancel No se envía el campo: Es una consulta que no es parte de un flujo de cancel (Consulta normal) Importante: solo aplica para el caso de pago con dinero en cuenta y se requiera cancelar la operación. |
...
Número | Nombre del campo | Tipo de dato | SaleWallet | RefundWallet | QueryWallet | Descripción |
---|---|---|---|---|---|---|
0 | company | Numérico | X | X | X | Identificador de la compañía donde se generó la transacción |
1 | store | Alfanumérico | X | X | X | Identificador del sitio originador de la transacción |
2 | node | Numérico | X | X | X | Identificación del nodo, en el sitio originador, donde se generó la transacción. |
12 | amount | Importe | X | - | X | Contiene el importe que pagó el cliente, el cual puede variar si pagó con intereses o se aplicó algún descuento. Valor entero. Los últimos 2 dígitos corresponden a los decimales. |
13 | currencyPosCode | Alfanumérico | X | - | X | Tipos de moneda:
|
14 | payments | Numérico | X | - | O | Cantidad de cuotas seleccionadas al momento de realizar el pago QR. |
22 | authorizationCode | Alfanumérico | - | - | X | Código de autorización informado por el Autorizador |
24 | trxId | Numérico | X | X | X | Identificador de la transacción. |
25 | dateTime | Numérico | X | X | X | Fecha y hora de realización de la transacción en formato YYYYMMDDHHMMSS. El valor en este campo debe ser el mismo que el valor de la fecha y hora del requerimiento. El POS utiliza este dato para validar que se trate de la misma transacción |
26 | responseCode | Alfanumérico | X | X | X | Puede contener uno de los siguientes valores:
|
27 | isoCode | Numérico | X | X | X | Código de Respuesta emitido por el centro autorizador. 2 dígitos como máximo. Ver sección Códigos de Respuesta de VTOL Server para Billeteras Electrónicas |
28 | responseMessage | Alfanumérico | X | X | X | Mensaje de la Respuesta relacionado con el código del campo 27 |
140 | paymentType | Numérico | - | - | X | Tipo de pago. Valores posibles: 0: Tarjeta |
147 | providerPosCode | Alfanumérico | - | - | O | Proveedor/tarjeta seleccionada por el cliente en su billetera virtual al momento de efectuar el pago. |
166 | trxReferenceNumber | Numérico | X | X | - | Identificador único de la transacción en VTOL Server. Longitud entre 19 y 20 dígitos, debido a que utiliza el día como parte de formato |
271 | walletPaymentId | Alfanumérico | - | - | X | Identificador del número de pago informado por el Autorizador |
273 | paymentStatus | Alfanumérico | - | - | X | Estado de la transacción de pago informado por el Autorizador. Estados posibles: 0: Aprobado |
275 | cardType | Numérico | - | - | O | Tipo de tarjeta seleccionada al momento de efectuar el pago QR. Valores posibles: 0: Débito |
410 | QRCode | Alfanumérico | OXO | X | - | Se envía la cadena de texto (string del QR dinámico) que retorna desde Fiserv. Este string se utiliza para imprimir el QR en el POS. |
1010 | currentSessionId | Numérico | X | X | X | Identificador de la sesión |
1027 | libResponseCode | Numérico | X | X | X | Código de respuesta de la librería. |
1028 | libResponseMessage | Alfanumérico | X | X | X | Mensaje descriptivo del código de respuesta de la librería |
...
Ejemplo:
PP:AM;$;;0;1;98765432;1016075;0000000000.00;0000000000.00;12.30;1;Normal;1;;;
PP:VI;$;;0;10;98765432;1016085;0000000100.00;0000000000.00;15.00;0;Normal;1;;;
PP:VI;$;;0;13;21345678;10525;0000000000.00;0000000000.00;10.00;0;Normal;0;01.10;02.20;03.30
...
Pos. | Descripción | Longitud | Tipo de dato | Detalle | |
1 | DL | 2 | AN | Identificador de tipo de registro | |
2 | ID Lote | 6 | N | Identificador interno de Lote en VTOL | |
3 | Caja o Nodo | 10 | N | ||
4 | Número de serie terminal | 200 | AN20 | AN | |
5 | PIN Master Key position | 1 | N | Posición de la master key PIN | |
6 | Data Master Key position | 1 | N | Posición de la master key Data | |
7 | Channel Id | 1 | N | ID del Canal |
Ejemplo:
DL:5;0000000001;99990080;0;0;24
DL:5;0000000002;99990081;1;0;1
DL:5;0000000003;99990082;0;0;24
DL:5;0000000004;99990083;1;0;1
DL:5;0000000005;99990084;0;0;24
DL:5;0000000006;99990085;0;0;24
DL:5;0000000007;99990086;0;0;24
Tabla Bines de Excepción
Pos. | Descripción | Longitud | Tipo de dato | Detalle |
1 | BE | 2 | AN | Identificador de tipo de registro |
2 | Desde | 9 | N | Rango Desde |
3 | Hasta | 9 | N | Rango Hasta |
4 | Nombre tarjeta | 25 | AN | Nombre de tarjeta de Excepción |
5 | Información Adicional | 500 | AN | Informacion adicional de la tarjeta de excepción |
...