Skip to main content
Los webhooks notifican a una URL tuya cuando ocurre un evento de la empresa. El catálogo de eventos y los JSON de ejemplo están en Eventos. Esquema del payload: 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.
  • 410 desactiva la suscripción.
  • 4xx (excepto 410) reintenta hasta 3 veces con backoff exponencial desde 60 segundos y luego desactiva.
  • 5xx y 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.updated
  • geofence.updated
  • schedule.deleted