Saltar al contenido principal

Webhooks para Pagos diferidos

Debido a su naturaleza, los pagos a través de Zelle y Pago Móvil se hacen de forma diferida, es decir, el cliente paga directamente en su banco y luego registra el código de autorización en nuestra plataforma.

Luka tiene la capacidad de validar en línea la referencia registrada por el usuario, sin embargo, es posible que se equivoque al momento de escribirla, lo cual podría ocasionar que no la encuentre de forma automática. En este caso, Luka marca la transacción con el estado Pending (pendiente).

Cuando la transacción queda con estado pendiente, se vuelve a revisar automáticamente cada 2 minutos hasta reflejarse la transacción en la cuenta, pero, si de todas formas no se encuentra, se hace una revisión manual. En esta revisión manual, se aprueba o rechaza la transacción indicando el motivo del rechazo. En ambos casos, el cliente recibirá un email con el resultado de la operación.

A efectos de la integración, en la respuesta, el campo Exitoso tendrá el valor true pero también se debe revisar la propiedad InfoProceso.EstatusProcesamiento, la cual indica el estatus real del pago. Las 2 posibilidades son: success (exitoso) o pending (pendiente):

{
"Monto":16.03,
"MontoUsd":0,
"InfoProceso":{
"EstatusProcesamiento":"pending"
},
"TarjetaHabiente":{
"Nombre":"",
"Apellido":""
},
"Moneda":"USD",
"InfoTarjeta":{
"Id":0,
"UltimosCuatroDigitos":"",
"SubTipoTarjeta":"",
"TipoTarjeta":"",
"CategoriaTarjeta":"",
"Bin":"",
"FechaVencimiento":"",
"Pais":"",
"Direccion":"",
"CodigoPostal":"",
"Descripcion":""
},
"InfoUsuarioPagador":{
"Nombre":"Dennis",
"Apellido":"Castillo",
"Email":"demo@payco.net.ve"
},
"TransaccionId":11339,
"TransaccionMerchantId":0,
"Descripcion":"Tx Pendiente",
"TrazaId":"d225cd97-f3bd-40ad-a92f-ae05f72eb042",
"Exitoso":true,
"MedioDePago":"Zelle",
"Canal":"API",
"MontoOriginal":{
"Monto":16.03,
"Moneda":"USD",
"ComisionMerchant":0.76487
},
"MerchantId": null,
"FechaOperacion": null,
"CargosAdicionales": null,
"Cuotas": null
}

En caso de que la transacción quede en estatus Pendiente, se debe mostrar un mensaje al usuario indicando que su pago será revisado y recibirá la respuesta vía correo.

Para recibir el estatus final de la transacción, se envía la respuesta a través de un webhook.

En este caso, el integrador debe crear una función en su API que reciba la respuesta de Lukapay y actualice el estatus de la transacción en su sistema.

El objeto con la respuesta que se envía a través del método POST y tiene el siguiente formato:

Nombre del campoDescripciónTipoObligatorio
MontoMonto de la operaciónnumber
IdIdentificador de la transacción en Lukanumber
IdTrazaIdentificador único de trazabilidad en la base de datos del comerciostring
CodigoAutorizacionCódigo de autorización del Zellestring
EstatusObjeto con el detalle del estado de la transacciónobject
Estatus.IdID del estado de la operación devuelto por Lukapay. Valores posibles: 6 (exitoso), 7 (fallido)number
Estatus.DescripcionNombre del estado de la operación devuelto por Lukapay. Valores posibles: Tx Exitosa, Tx Fallidastring
FechaFecha de la operaciónstring
FechaCreacionFecha de la operaciónstring
[
{
"Monto":16.03,
"Id":8357,
"IdTraza":"1234567890",
"CodigoAutorizacion":"kjfkgds874k",
"Estatus":{
"Id":6,
"Descripcion":"Tx Exitosa"
},
"Fecha":"2022-02-23T18:27:47.0170155Z",
"FechaCreacion":"2022-02-23T18:27:47.1959116Z"
},
{
"Monto":1.0,
"Id":3547,
"IdTraza":"1234567890",
"CodigoAutorizacion":"kljghdfjg45646",
"Estatus":{
"Id":7,
"Descripcion":"Tx Fallida"
},
"Fecha":"2021-04-23T22:10:29.4103Z",
"FechaCreacion":"2021-04-23T22:10:29.4519723Z"
}
]

Nota: Una vez creado el endpoint del webhook, se debe enviar esta información al equipo de desarrollo de Luka para proceder a configurarlo en el servicio.