Referencia de webhooks
Esquemas de payload de los eventos y configuración de webhooks
Referencia de webhooks
Los webhooks envían solicitudes HTTP POST a tu endpoint cuando ocurren eventos en Umbrella, así no necesitas consultar la API periódicamente para detectar cambios.
Configuración
- Ve a Panel > Configuración > Integraciones > Webhooks
- Haz clic en Agregar endpoint de Webhook
- Ingresa la URL HTTPS de tu endpoint
- Selecciona los eventos que quieres recibir
- Guarda y almacena el secreto de firma (solo se muestra una vez)
Tu endpoint debe aceptar solicitudes POST, devolver un estado 2xx en menos de 30 segundos y aceptar application/json.
Tipos de eventos
Eventos de pólizas
| Evento | Descripción |
|---|---|
policy.created | El cliente compró una garantía |
policy.activated | El estado de la póliza cambió a activa |
policy.expired | La póliza llegó a su fecha de finalización |
policy.cancelled | Póliza cancelada (por reembolso o acción del comerciante) |
policy.voided | Póliza anulada (por cancelación del pedido o contracargo) |
Eventos de reclamos
| Evento | Descripción |
|---|---|
claim.submitted | El cliente presentó un reclamo |
claim.approved | El comerciante aprobó un reclamo |
claim.denied | El comerciante rechazó un reclamo |
claim.resolved | Reclamo resuelto por completo |
claim.evidence_uploaded | Se adjuntó evidencia a un reclamo |
Eventos de registro
| Evento | Descripción |
|---|---|
registration.submitted | Se envió un registro de producto |
registration.approved | Registro aprobado |
registration.denied | Registro rechazado |
Eventos de garantías
| Evento | Descripción |
|---|---|
warranty.created | Se creó un nuevo plan de garantía |
warranty.updated | Se modificó un plan de garantía |
warranty.activated | Se activó un plan de garantía |
warranty.deactivated | Se desactivó un plan de garantía |
Estructura del payload
Todos los webhooks siguen este formato de envoltorio:
{
"id": "evt_a1b2c3d4e5f6",
"type": "claim.submitted",
"timestamp": "2025-03-15T14:30:00.000Z",
"apiVersion": "1.3.9",
"orgId": "org_xyz789",
"data": { ... }
}
id— ID único del evento (úsalo para eliminar duplicados)type— tipo de eventotimestamp— cuándo ocurrió el eventodata— payload específico del evento con los detalles del recurso correspondiente (póliza, reclamo, registro, etc.)
Verificación de la firma
Cada solicitud incluye un encabezado X-Umbrella-Signature con un hash HMAC-SHA256 del cuerpo de la solicitud. Verifícalo antes de procesar los eventos.
const crypto = require('crypto');
function verifyWebhookSignature(payload, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(payload, 'utf8')
.digest('hex');
return crypto.timingSafeEqual(
Buffer.from(signature),
Buffer.from(expected)
);
}
Estrategia de reintentos
Las entregas fallidas (respuesta distinta de 2xx, tiempo de espera agotado o error de conexión) se reintentan con espera exponencial:
| Intento | Espera |
|---|---|
| 2.º | 1 minuto |
| 3.º | 5 minutos |
| 4.º | 30 minutos |
| 5.º | 2 horas |
| 6.º | 6 horas |
| 7.º (último) | 12 horas |
Después de 7 intentos fallidos, la entrega se marca como fallida. Una respuesta 410 Gone desactiva el endpoint de forma permanente.
Pruebas
- Ve a Panel > Configuración > Integraciones > Webhooks
- Haz clic en tu endpoint y luego en Enviar evento de prueba
- Selecciona un tipo de evento y revisa el resultado de la entrega
La página de detalle del webhook también muestra un registro de las entregas recientes con los códigos de estado y los tiempos.
id del evento para eliminar duplicados, ya que los reintentos pueden entregar el mismo evento más de una vez.
Relacionado
- Autenticación — Seguridad y credenciales de la API
- API de reclamos — Endpoints para gestionar reclamos
- API de pólizas — Endpoints para gestionar pólizas


