Webhooks
Webhooks
How to receive signed events when a settlement happens.
Integrations
Webhooks
Recibe eventos firmados en tu backend cuando ocurre una liquidación. La configuración vive en tu cuenta, pero la guía completa está aquí para que no tengas que saltar entre pantallas.
What webhooks do
1. Configura una URL públicaDefine el endpoint que recibirá eventos como /webhooks/sports.
2. Guarda un secretEse secret se usa para validar la firma HMAC y evitar eventos falsos.
3. ActívaloCuando esté en on, el sistema enviará eventos con cada liquidación relevante.
4. Responde 2xxSi tu backend responde bien, el evento queda confirmado; si no, se registra el fallo.
Headers que debes validar
X-Sport-Webhook-Id
Identifica el cliente que recibió el evento.
X-Sport-Webhook-Timestamp
Evita replays con timestamps antiguos.
X-Sport-Webhook-Signature
HMAC calculado con el body y el secret.
Content-Type: application/json
El payload llega como JSON firmado.
Example payload
POST /webhooks/sports
Headers:
X-Sport-Webhook-Id: client_id
X-Sport-Webhook-Timestamp: unix_timestamp
X-Sport-Webhook-Signature: hmac_sha256(timestamp.body, webhook_secret)
{
"type": "bet.settlement",
"label": "Ganada",
"result": "win",
"scoreline": "2-1",
"bet": {
"selection_label": "Local gana",
"wager": 50,
"win_amount": 92.5
}
}
Quick test
Usa este `curl` para validar tu endpoint antes de ponerlo en producción.
curl -X POST "https://tu-dominio.com/webhooks/sports" \
-H "Content-Type: application/json" \
-H "X-Sport-Webhook-Id: client_id" \
-H "X-Sport-Webhook-Timestamp: unix_timestamp" \
-H "X-Sport-Webhook-Signature: hmac_sha256(timestamp.body, webhook_secret)" \
-d '{"type":"bet.settlement","result":"win"}'
How to wire it up
Open the config pageEntra a /partner/webhooks para guardar la URL y el secret.
Listen on HTTPSTu backend debe responder por HTTPS público, no por localhost.
Confirm 2xxSi el endpoint falla, revisa logs, firma y formato JSON.
Retry strategyCuando tu servidor no responde, la entrega se considera fallida y debes revisarla.