Configuración
Los webhooks se configuran en el panel de administración de Cobrix:- Ve a Configuración → Webhooks
- Crea un nuevo webhook con tu URL
- Guarda el signing secret (
whsec_...)
Headers
Cada webhook incluye estos headers:| Header | Descripción |
|---|---|
X-Cobrix-Signature | Firma HMAC-SHA256 |
X-Cobrix-Timestamp | Unix timestamp |
Content-Type | application/json |
Estructura del Payload
| Campo | Tipo | Descripción |
|---|---|---|
id | string | ID único del evento (para idempotencia) |
event | string | Tipo de evento |
created_at | string | Timestamp ISO 8601 |
api_version | string | Versión de la API |
data | object | Datos del evento |
Eventos
checkout.session.created
Se dispara cuando se crea una sesión de checkout.checkout.session.completed
Se dispara cuando el checkout se completa exitosamente.checkout.session.expired
Se dispara cuando una sesión expira sin completarse.payment.processing
Se dispara cuando un pago está siendo procesado.payment.succeeded
Se dispara cuando un pago se completa exitosamente.payment.failed
Se dispara cuando un pago falla.Verificación de Firma
Formato del Header
Algoritmo
- Extraer
t(timestamp) yv1(firma) - Construir:
{timestamp}.{raw_body} - Calcular:
HMAC-SHA256(mensaje, secret) - Comparar con
v1(timing-safe) - Verificar timestamp < 5 minutos
Reintentos
| Intento | Delay |
|---|---|
| 1 | Inmediato |
| 2 | 1 min |
| 3 | 5 min |
| 4 | 30 min |
| 5 | 2 horas |
| 6 | 24 horas |
Respuesta Esperada
Tu endpoint debe responder:- 200-299: Webhook procesado correctamente
- 4xx/5xx: Se reintentará