1.0.0 (2 de octubre de 2026).
Cómo se versiona
El cuerpo HTTP no trae un campo de versión. La versión vive en esta documentación.
Cada cambio se anota en la tabla de versiones del catálogo y en el changelog. El esquema
1.0.0 describe lo que envía SendWebhookJob hoy.
Sobre
GET /v1/webhooks/perform-list devuelve datos de muestra para Zapier. Esa forma es plana y no es el cuerpo que recibe tu URL.
Headers
Los headers que guardaste en la suscripción se agregan después y pueden reemplazar uno de estos.
Firma
La firma es HMAC-SHA256 del JSON{ "event", "timestamp", "data" } con el secret de la suscripción. Compara con hash_equals (o el equivalente de tiempo constante en tu lenguaje).
El job firma una copia codificada aparte del cuerpo que envía el cliente HTTP. Si la verificación contra los bytes crudos falla, revisa el orden de llaves y el escapado JSON antes de descartar la petición: las dos marcas de tiempo se generan por separado y pueden no coincidir.
Entrega
- Timeout de 30 segundos. La respuesta esperada es
2xx. 410desactiva la suscripción.4xx(excepto410) reintenta hasta 3 veces con backoff exponencial desde 60 segundos y luego desactiva.5xxy errores de red reintentan hasta 5 veces y luego desactivan.- Puedes suscribirte a un evento (
collaborator.created), a un namespace (collaborator.*) o a todos (*).
Eventos declarados que no se envían
El enum acepta estos nombres, pero ningún listener los dispara:device.updatedgeofence.updatedschedule.deleted