Retiro de Efectivo

Reitra efectivo de tu caja como adicional al monto de la compra al momento de realizar un pago en una terminal

Que es Retiro de Efectivo

El retiro de efectivo es una funcionalidad que permite que, al momento de realizar una compra en una terminal de pago, el cliente pueda retirar una cantidad adicional de efectivo en la misma transacción.

Esto significa que, además de pagar por sus productos o servicios, el tarjetahabiente tiene la opción de solicitar un monto extra en efectivo, el cual se carga directamente a su tarjeta de débito, sumándose al total de la compra.

Condiciones de Uso

  • El comercio debe tener habilitada la funcionalidad en su terminal.
  • El comercio puede ofrecer transacciones de retiro de efectivo de acuerdo a la disponibilidad de efectivo existente.
  • La transacción es realizado por chip ( no aplica para contactless) y usando un NIP
  • No aplica para transacciones con operativa QPS.
  • Solo aplica pagando con tarjeta de débito que tengan la funcionalidad de retiro de efectivo.
  • Solo aplica para operativas de venta directa sin propina y sin meses sin intereses
  • Solo aplica para las transacciones que se envian con la bandera de cashbackEnabled en 1
  • El monto máximo a retirar depende de la configuración establecida por el adquirente o la red emisora.
  • No hay cancelación de esta transacción, las devoluciones solo aplica para el monto de compra y no el efectivo.
  • Compatibles solo con terminales a910s y integración vía COMM/DLL

Beneficios

Para el cliente:

  • Evita desplazarse a un cajero automático o sucursal bancaria para disponer de efectivo.
  • Mayor conveniencia y rapidez al realizar compras y obtener efectivo en un solo movimiento.

Para el comercio:

  • Brinda un valor agregado a sus clientes, mejorando la experiencia de compra.
  • Fortalece la relación con los clientes, aumentando la lealtad y satisfacción.
  • Puede generar mayor afluencia de clientes al ofrecer un servicio adicional.

Flujo de Transacción


  1. El punto de venta del comercio envía una petición de venta normal con monto y el indicador de que permite cashback.
  2. La terminal inicia el proceso de cobro.
    1. El cliente inserta su tarjeta.
    2. Cliente Ingresa NIP.
    3. La terminal valida las condiciones necesarias para habilitar el retiro de efectivo
  3. Si todas las condiciones se cumplen, la terminal notifica al punto de venta que puede ofrecer el retiro de efectivo.
    1. Si alguna condición no se cumple, se procesa como venta normal.
    2. Si la venta incluye propina > 0, se procesa como venta normal con propina, sin opción de retiro de efectivo.
  4. Punto de venta del comercio
    1. pregunta al cliente si desea retirar efectivo.
    2. Cliente confirma monto a retirar.
    3. Punto de venta del comercio envía a la terminal el monto de retiro y la comisión (si aplica).
    4. Si el cliente no desea retiro, la transacción se procesa como venta normal sin retiro y continúa con el paso 12.
    5. Si no se confirma en 120 segundos, la terminal cancela automáticamente la transacción y notifica al punto de venta.
  5. Terminal recibe confirmación con monto de retiro y comisión (si aplica).
  6. Terminal envía autorización al adquirente por el total = venta + comisión + retiro.
  7. Terminal recibe respuesta de la transacción (aprobada o rechazada).
    1. Si el monto de retiro está fuera de límites, se declina la transacción y muestra el mensaje “El monto del retiro de efectivo está fuera de los límites permitidos.”
    2. Si el monto de retiro = 0, se declina la transacción y se muestra el mensaje “Monto de cashback inválido.”

Actualización Venta con Retiro de Efectivo

Para esta parte se realizó una actualización en la DLL (v1.8), en la cual se agregó un nuevo método para que se pueda evaluar la transacción si es que el comercio tiene habilitada la opción de retiro de efectivo.

Una vez instanciado el objeto podemos acceder a los siguientes métodos:

MétodoDescripción
SetAmountSe asigna el monto a cobrar. Recibe valor de tipo Double (solo acepta 2 decimales).
setMSISe asigna el número de meses sin intereses al momento de procesar la transacción. Por default se envía el valor 0 (Sin meses). Posibles valores que acepta: 3, 6, 9, 12, 18.
setFolioSe asigna el folio personalizado a utilizar en el Ticket.
sendDataUna vez asignado el monto como mínimo se manda a llamar este método para procesar la transacción en la PinPad.
ReceiveData (versión 1.5 .dll)Recibe información por parte de la PinPad y la almacena en un objeto "response" dentro de la clase Connector.
getResponsePuedes recuperar la información almacenada en el objeto "response" llamando a este método.
setTipSe asigna un monto designado a propina. Recibe valores de tipo Double (solo acepta 2 decimales). Actualmente tiene un límite del 25%.
findPortByDescriptionDevuelve el puerto al que está conectada la PinPad.
Version()Devuelve la versión implementada de la dll.
SetCustomeCOMM (versión 1.6 dll)Asigna un puerto COMM específico al que se debe conectar la PinPad.
SetEnableCashbackSe debe asignar valor 1 para poder habilitar la opción de retiro de efectivo cuando se mande una venta con esta funcionalidad.

Este nuevo metodo de SetEnableCashback es para asignar el valor de la bandera de enableCashback que el comercio despues de evaluar si cuenta con suficiente efectivo para procesar la venta con retiro de efectivo decide si lo quiere habilitar en ese momento y envia el valor en 1 para habilitar la funcion para el cliente. En caso de que no se cuente con efectivo en caja y no se pueda enviar la venta con retiro de efectivo, el punto de venta debe enviar un valor de 0 en el método setEnableCashback.

📘

Nota: Puede omitir enviar el campo enableCashback y el valor predeterminado es 0


Proceso de autorización de Retiro de Efectivo

Cuando se manda una venta con retiro de efectivo la terminal va a evaluar la configuración que se tiene del comercio logueado y va evaluar el campo enableCashback, si la validación es aceptada, se puede comenzar el proceso de retiro de efectivo, el cual inicia con el envío de un mensaje al POS desde la terminal, en el cual se envía la configuración establecida para el comercio, utilizando el metodo GetResponse, se va enviar estos campos:

{
	"amount":1000.0,
	"applyCashback":true,
	"minAmount":1000.0,
	"minAvailable":100.0,
	"maxAvailable":1000.0,
}

El POS debe evaluar la información enviada por la terminal y debe aceptar o rechazar el monto a retirar que se esté solicitando.

El metodo a utilizar es SendCashback con los siguientes parametros

{
  "cashbackFee":15.0,
	"confirmCashback":1,
  "cashbackAmount":500.0
}

📘

NOTA: Se tiene un timer de 120 segundos para poder responder la confirmación de retiro de efectivo a la terminal, en caso de que se llegue al límite del tiempo, la terminal declinara la transacción. Se debe ajustar el timer de espera de respuesta del POS a 300 segundos ya que se tienen procesos donde interviene usuario final y puede agregar tiempo adicional que no se tiene considerado actualmente.

Actualización en mensaje de respuesta en venta con Retiro de Efectivo

En la respuesta que se manda en formato Json se están agregando dos campos adicionales

cashbackAmount: es el monto del retiro

cashbackFee: Comision que se cobra

{
  "data": {
    "affiliation": "7389108",
    "applicationLabel": "Debit MasterCard",
    "arqc": "44F30DA9ED36D1D3",
    "aid": "A0000000032010",
    "amount": "100.0",
    "authCode": "TEST00",
    "bankName": "SANTANDER",
    "cardExpDate": "01/26",
    "cardType": "D",
    "cardTypeName": "MASTERCARD",
    "cityName": "Guadalupe NUEVO LEON",
    "responseCode": "00",
    "folioNumber": "",
    "hasPin": true,
    "hexSign": "",
    "isQPS": 0,
    "message": "Transacción exitosa",
    "moduleCharge": "1",
    "moduleLote": "1",
    "customerName": "NOMBRE CLIENTE        /",
    "terminalId": "1310000001",
    "orderId": "211018115515-1490293212",
    "preAuth": "0",
    "preStatus": 0,
    "promotion": "00",
    "rePrintDate": "1.3.1_20211018",
    "rePrintMark": "MASTER",
    "reprintModule": "C",
    "cardNumber": "1234",
    "storeId": "9194",
    "storeName": "CICAP",
    "streetName": "AVE PABLO LIVAS 7200",
    "ticketDate": "OCT. 18, 21 11:55:18 ",
    "tipAmount": "0.0",
    "tipLessAmount": "100.0",
    "transDate": "2021-10-18 11:55:16.CDT",
    "transType": "A",
    "transactionCertificate": "411D6DCB7F34B45C"
    "cashbackAmount": "500.0"
    "cashbackFee": "15.0"
  },
  "idReport": 1
}

Actualización en impresion de ticket para venta con Retiro de Efectivo

La terminal al imprimir el ticket de venta al terminar la transacción, al ser una venta con retiro de efectivo, el ticket se imprime con el titulo de "Venta con Retiro" y adicionalmente agrega 2 datos nuevos en el detalle de la transaccion, los campos son el de "comisión" y el de "Retiro de efectivo"

📘

Nota: En caso de contar con ticket personalizado se tendrian que agregar estos datos al ticket


Que sigue...

Implementa la funcionalidad de Retiro de Efectivo

Did this page help you?