Ipn
Conceptos Generales
IPN: Instant payment notification (Notificacion instantanea de pago).
Cada vez que se intente procesar un pago, Zenrise enviará una notificación del evento para poder recibirla y registrar del lado de su servidor el pago como exitoso o como fallido.
Actualmente enviamos las notificaciones instantaneas de pagos ante los siguientes eventos:
- Se realiza un pago desde el checkout externo y el mismo es exitoso o falla.
- Se intenta procesar un pago recurrente de una suscripción y el mismo es exitoso o falla.
- Se realiza un pago desde una implementacion con nuestro sdk-js y el mismo es exitoso o falla.
- Se autoriza una solicitud de DEBIN.
Importante! Para cualquiera de los 3 casos, esperamos desde su servidor una respuesta 200 o 201. En caso de recibir cualquier otro código HTTP distinto de 200 o 201, marcaremos esa notificación como errónea y la re intentaremos cada 15 minutos hasta recibir un 200 o 201 con un máximo 50 intentos, de nuestro lado.
Funcionamiento del IPN
Nuestra IPN envía un payload muy simple con los ids del evento a investigar. La idea es que cuando nuestra IPN llega desde su servidor dispare otra consulta a nuestra API para obtener mas información del evento.
Este es un ejemplo de payload que recibirá de nuestra IPN
transactionId Identficador de la transacción que produzco este pago
invoiceId Identificador del Cupon/Factura que fue pagada (Recordar que las solicitudes de cobros generan Invoice a pagar)
externalReference El id de externo de su sistema que fue enviado para esta transacción
Consulta de datos una vez recibido el IPN
Una vez que su servidor recibe nuestra notificación usted sabe que algo paso con esa transacción le pero le falta información del detalle de la misma. Es por eso que de la mano de los IDS que le propiciamos usted podrá realizar la consulta en ese momento o si de su lado tiene un proceso mas largo puede generar un sistema de colas con nuestras IPN para ir procesando las transacción en los momentos que a usted le convengan.
El endpoint para realizar la consulta es el siguiente, donde en invoiceId se envia el invoiceId recibido por nuestro IPN
URL : /v1/invoices/transaction/{invoiceId}
Método : GET
Requiere autorización : Si, ver Autenticación
Respuesta
El dato mas relevante a revisar es el objeto transactionResponse
Analizando el mismo tendremos el resultado de la transacción con su status.
Los distintos status que nuestra API maneja para las notificaciones de pago son los siguientes:
Status | Descripción |
---|---|
approved | Transacción aprobada exitosamente. |
pending | Transacción pendiente de pago. |
rejected | Transacción fallida, el pago no se pudo procesar. |
refunded | Transacción reembolsada al cliente. |
chargeback | Transacción revocada, el cliente ha disputado el cargo. |
Configuración de URLs a ser notificadas por nuestro IPN
Para configurar tu URL para ser notificada por nuestra IPN, simplemente enviar estos datos:
URL : /v1/ipn
Metodo : POST
Requiere autorización : SI