Configuración
Configure el webhook en su organización:
| Campo | Descripción |
|---|---|
webhookUrl | URL HTTPS que recibirá los eventos |
webhookSecret | Clave secreta para validación de firma |
Ejemplo de configuración
Ejemplo — reemplace con sus credenciales reales:Tipos de evento
El plugin emite cuatro tipos de evento:
| Evento | Disparado cuando |
|---|---|
transfer.completed | Transferencia TED OUT o P2P completada |
transfer.failed | Transferencia falló o fue rechazada |
transfer.incoming | Transferencia TED IN recibida y acreditada |
transfer.cancelled | Transferencia cancelada por el usuario |
Estructura del payload
Todos los webhooks siguen la misma estructura base:
| Campo | Tipo | Descripción |
|---|---|---|
event | String | Tipo del evento |
timestamp | ISO 8601 | Momento en que el evento ocurrió |
organizationId | UUID | Organización a la que pertenece el evento |
data | Object | Datos específicos del evento |
Eventos detallados
transfer.completed
Enviado cuando una transferencia TED OUT o P2P es completada.transfer.failed
Enviado cuando una transferencia falla o es rechazada.failureCode contiene el código de error del SPB cuando aplica.
transfer.incoming
Enviado cuando una transferencia TED IN es recibida y acreditada.transfer.cancelled
Enviado cuando una transferencia es cancelada por el usuario.Validación de firma
Todos los webhooks incluyen una firma HMAC-SHA256 en el header
X-Signature. Valide esta firma para garantizar que el webhook es auténtico.
Header de firma
Validación en código
JavaScript
JavaScript
Python
Python
Go
Go
Política de retry
Si su endpoint no responde con estado 2xx, el plugin reenvía el webhook con backoff exponencial:
| Intento | Intervalo |
|---|---|
| 1 | Inmediato |
| 2 | 5 segundos |
| 3 | 25 segundos |
| 4 | 60 segundos |
| 5 | 120 segundos |
Requisitos del endpoint
Para garantizar entrega confiable:- Responda con estado 2xx en hasta 30 segundos
- Use HTTPS con certificado válido
- Evite procesamiento pesado en el handler (use colas)
Idempotencia
Los webhooks pueden ser entregados más de una vez en escenarios de retry. Implemente idempotencia usando el
transferId:
Monitoreo
El plugin expone métricas sobre entrega de webhooks:
Probando webhooks
Durante el desarrollo, puede usar herramientas como:
- webhook.site — endpoint temporal para pruebas
- ngrok — expone localhost a internet
- RequestBin — inspecciona requests recibidos
Buenas prácticas
| Práctica | Descripción |
|---|---|
| Valide la firma | Siempre verifique el header X-Signature |
| Responda rápido | Retorne 200 antes de procesar; use colas |
| Implemente idempotencia | El mismo webhook puede llegar más de una vez |
| Monitoree la DLQ | Configure alertas para webhooks no entregados |
| Use HTTPS | Los webhooks solo son enviados a endpoints seguros |
| Trate todos los eventos | Aunque ignore algunos, retorne 200 |

