Lista de notificaciones y configuración de respuesta
EL webhook de notificación para órdenes de venta envía notificaciones a los desarrolladores cuando ciertas acciones ocurren, estas notificaciones se envían tanto en el ambiente PRODUCCION como en el ambiente SANDBOX DE PRUEBAS, las notificaciones enviadas son las siguientes:
- Notificación 1: cuando se recibe un pago en una orden de venta
- Notificación 2: cuando una orden ha sido pagada en su totalidad
Así mismo, es importante saber que responder ante una notificación, esto debido al sistema de reintentos que emplea la plataforma, pero no te preocupes, a continuación se detallara más a fondo cada uno de estos puntos.
Algunos puntos importantes para tener en cuanta de la url que utilizaras como webhook:
- Asegúrate de que la url que vas a dar de alta contenga el protocolo https, no se admitirá otro protocolo como por ejemplo: http, smtp, pop, etc.
- La url debe de ser publica, de lo contrario no podrás recibir las notificaciones que AceptaBits te envié.
Notificación 1: cuando se recibe un pago en una orden de venta
Una de las notificaciones que AceptaBits te enviara es cuando una orden de venta ha recibido un pago, no importa si es un pago parcial o es el pago completo por el total de la orden, cuando se reciba un pago se enviara esta notificación al webhook que tengas dado de alta, tanto en el ambiente PRODUCCION como en el ambiente SANDBOX DE PRUEBAS, esta notificación se envía por medio de una llamada a tu url usando el método de petición HTTP POST, así mismo se incluirán algunos parámetros dentro de la petición con información referente al pago de la orden (todos estos parametros se enviaran dentro del body de la peticion).
Por lo tanto, con lo acabado de mencionar la notificación se estructurara de la siguiente manera:
URL destino
el webhook ingresado en el ambiente PRODUCCION o SANDBOX DE PRUEBAS
ejemplo: https://misitio.com/api/miwebhook
Método de petición HTTP
POST
Parámetros enviados
Parámetro | Descripción | Ejemplo |
---|---|---|
code_order | Indica el código de la orden de venta a la que se efectuó el pago | pgbord109388282219476314 |
notification_type | Indica el tipo de notificación enviada | para esta notificacion siempre se enviara el valor: 1 |
notification_name | Indica el nombre de notificación enviada | para esta notificacion siempre se enviara el valor: payment |
amount | Indica el monto del pago recibido | 1.00000000 |
code_currency | Indica el código de la criptomoneda del pago recibido | PBT |
name_currency | Indica el nombre de la criptomoneda del pago recibido | PesoBits |
Ejemplo de datos enviados en formato json
{
"code_order": "pgbord109388282219476314",
"notification_type": "1",
"notification_name": "payment",
"amount": "2.00000000",
"code_currency": "PBT",
"name_currency": "PesoBits"
}
Toda la información se enviará en formato JSON dentro del body de la petición, es decir, los parámetros no se enviarán de manera individual, por lo que será importante que el desarrollador capture dicho body dentro de la petición que le llegue a su backend, y posteriormente, realizar la decodificación necesaria del JSON obtenido para poder obtener los valores individuales de cada uno de los parámetros que contiene la notificación
- Los pagos que requieren confirmaciones de red se notificaran hasta que los fondos sean acreditados, es decir, hasta que hayan transcurrido las confirmaciones de red requeridas para que el monto se vea reflejado en el campo amount_filled y deje de mostrarse en el campo amount_unconfirmed de la orden de venta.
- Los pagos que provienen de usuarios de MercadoBits se procesan de manera inmediata, por lo tanto, esta notificación también se enviara de manera inmediata al procesarse este tipo de pagos.
- Se deberá de retornar una respuesta HTTP 200 al momento de entregarse la notificación al webhook, de lo contrario se implementara el sistema de reintentos
Notificación 2: cuando una orden ha sido pagada en su totalidad
Otra de las notificaciones que AceptaBits te enviara es cuando una orden de venta ha sido paga en su totalidad, cuando esto suceda se enviara esta notificación al webhook que tengas dado de alta, tanto en el ambiente PRODUCCION como en el ambiente SANDBOX DE PRUEBAS, esta notificación se envía por medio de una llamada a tu url usando el método de petición HTTP POST, así mismo se incluirán algunos parámetros dentro de la petición con información referente de la orden (todos estos parametros se enviaran dentro del body de la peticion).
Por lo tanto, con lo acabado de mencionar la notificación se estructurara de la siguiente manera:
URL destino
el webhook ingresado en el ambiente PRODUCCION o SANDBOX DE PRUEBAS
ejemplo: https://misitio.com/api/miwebhook
Método de petición HTTP
POST
Parámetros enviados
Parámetro | Descripción | Ejemplo |
---|---|---|
code_order | Indica el código de la orden de venta que se ha pagado en su totalidada | pgbord109388282219476314 |
notification_type | Indica el tipo de notificación enviada | para esta notificacion siempre se enviara el valor: 2 |
notification_name | Indica el nombre de notificación enviada | para esta notificacion siempre se enviara el valor: complete |
Ejemplo de datos enviados en formato json
{
"code_order": "pgbord109388282219476314",
"notification_type": "2",
"notification_name": "complete"
}
Toda la información se enviará en formato JSON dentro del body de la petición, es decir, los parámetros no se enviarán de manera individual, por lo que será importante que el desarrollador capture dicho body dentro de la petición que le llegue a su backend, y posteriormente, realizar la decodificación necesaria del JSON obtenido para poder obtener los valores individuales de cada uno de los parámetros que contiene la notificación
- Únicamente se enviará esta notificación cuando una orden de venta sea pagada completamente, se puede identificar una orden pagada en su totalidad identificando el campo isPaid con valor -1.
- Se deberá de retornar una respuesta HTTP 200 al momento de entregarse la notificación al webhook, de lo contrario se implementara el sistema de reintentos.
- Esta notificación llegara juntos después de la última notificación de pago registrado en la orden de venta, sobre todo, si se pagan regularmente las órdenes en una sola exhibición veras estas dos notificaciones una inmediatamente después de la otra.
Configuración de respuesta
La respuesta que AceptaBits solicitara al webhook no será necesariamente compleja, el desarrollador podrá retornar un true, recibido, ok o cualquier otra palabra, incluso no retornar nada, lo verdaderamente importante es que se retorne el código de estatus de respuesta HTTP 200, si retorna otro estado como por ejemplo HTTP 400, 401, 202 o 201 por mencionar algunos ejemplos, se tomara como fallido el envió de la notificación y entrara en el sistema de reintentos.
Código HTTP 200
La notificación será catalogada con enviada y recibida
Código HTTP 400, Código HTTP 401, Código HTTP 201, etc...
La notificación será catalogada como fallida y entrara el sistema de reintentos
Sistema de reintentos
Las notificaciones enviadas y que presenten un fallo de recepción se ingresaran al sistema de reintentos de AceptaBits, este sistema realizara 2 intentos más para su entrega (siendo manejados en un periodo máximo de 10 minutos aproximadamente), generando así un total final de 3 intentos:
- Intento 1: se genera la notificación y se envía al webhook receptor
- Intento 2: la notificación fallo y no se entregó en el intento 1, por lo tanto se volverá a enviar
- Intento 3: la notificación fallo y no se entregó en el intento 2, por lo tanto se volverá a enviar
Si una notificación ha fallado en los 3 intentos, será catalogada como terminada y no se volverá a enviar al webhook receptor, es por eso que se debe de tener debidamente configurado el webhook para evitar en lo posible este sistema de reintentos, recordando que el webhook debe de ser publico, tener el protocolo https y retornar el código de respuesta HTTP 200.
Notas importantes a tener en cuenta
El sistema de notificaciones por webhook es muy útil, pero no se debe de dejar el chequeo de las órdenes al 100% en este sistema, es importante que el desarrollador implemente también otras estrategias para el chequeo de órdenes usando los servicios de consumo de la API web de AceptaBits, y así crear en conjunto con el webhook una implementación más robusta para los proyectos.
Así mismo, procura no realizar procesos demasiado complejos dentro de tu webhook y aprovecha la información que se envía para almacenarla en tu base de datos o alguna otra opción de almacenamiento, teniéndola almacenada podrás disponer de ella cuando la necesites y la respuesta de tu webhook será más rápida, evitando que puedas caer en el sistema de reintentos por algún fallo o alguna situación que se le parezca por mencionar un par de ejemplos.
- Asegúrate de hacer uso de la herramienta de pruebas de notificación para probar tu webhook, para más información ingresa en la sección: Enviar prueba de notificación del webhook para órdenes.
- Intenta no realizar procesos demasiado complejos dentro de tu webhook, mientras más limpio y rápida sea la respuesta mejor.
- Aprovecha la información que se envía al webhook para almacenarla en tu base de datos o alguna otra opción de almacenamiento y así poder disponer de ella para lo que necesites.
Si tienes alguna duda recuerda que siempre puedes contactar con el equipo de soporte para desarrolladores ingresando en el siguiente enlace: Soporte para desarrolladores.