Obtención de webhooks
Puedes configurar las direcciones para el envío de notificaciones sobre la acreditación de pagos en la página de configuración del proyecto.
Tenga en cuenta que al enviar un webhook, debe devolver la siguiente respuesta:
{
"success": true
}
De lo contrario, el servicio seguirá intentando enviar el webhook. El número máximo de intentos es 30.
Ejemplo de un webhook sobre la acreditación:
{
"amount": "2.395", - Monto del pago en USD
"created_at": "2025-03-17T12:57:52.449795Z", - Hora de creación del pago
"paid_at": "2025-03-17T12:57:19Z",- Hora de realización del pago
"status": "completed", - Estado del pago
"transactions": {
"amount": "0.02552778", - Monto del pago en criptomoneda
"amount_usd": "2.395", - Monto del pago en USD
"bc_uniq_key": "0", - Número de orden en la transacción, importante en redes tipo BTC; bc_uniq_key + tx_hash da unicidad
"blockchain": "litecoin", - Nombre de la cadena de bloques
"created_at": "2025-03-17T12:57:52.449795Z",- Hora de creación del pago
"currency": "LTC", - Tipo de criptomoneda
"currency_id": "LTC.Litecoin", - Identificador de criptomoneda
"tx_hash": "2be41b0cad76bc5699c3da5d5a1d390f9fb4038e5bfe49aec3b675f9dd4515fd", - Hash de la transacción
"tx_id": "4bbc91fd-a950-4fd0-83f3-9f1c09a6b54f" - ID de transacción en el comerciante
},
"type": "PaymentReceived", - Tipo de webhook
"wallet": {
"id": "9a07b545-f99e-4f51-bf37-a84fcbe4df4d", - ID interno del usuario
"store_external_id": "1" - ID externo del usuario
}
}
Verificación de idempotencia al recibir un webhook
Al procesar webhooks entrantes, se debe garantizar la idempotencia para evitar el procesamiento duplicado del mismo evento. Para ello, se deben usar dos campos:
tx_hash — el hash del contenido de la solicitud o evento;
bc_uniq_key — un identificador único del evento proporcionado por el remitente del webhook.
Antes de procesar el webhook, se debe verificar que la combinación de hash y uniq_key no haya sido procesada previamente. Si ya se registró tal evento, debe ser ignorado como duplicado.