Webhooks
Webhooks let Breezy notify your systems when service request and interaction events happen. Webhook endpoint management requires a user token. Service API keys cannot create, update, rotate, delete, or list webhook endpoints. Open the Webhooks tab in Breezy to manage endpoint configuration from the dashboard.Supported events
| Event type | When it fires |
|---|---|
service_request.created | A new service request is created. |
service_request.status_changed | A service request status changes. |
service_request.booked | A service request is booked through instant booking. |
interaction.completed | A voice or chat interaction is finalized. |
Management flow
- Authenticate with a user JWT.
POST /integrations/webhookswith a name, HTTPS URL, and event types.- Store the returned
signingSecretimmediately. It is shown only once. - Verify every delivery using the
breezy-signatureheader. - Rotate a signing secret when needed. Rotation immediately invalidates the old secret.
localhost, 127.0.0.1, or ::1. Production
webhook URLs must use HTTPS.
Delivery format
Breezy sendsPOST requests with a JSON envelope:
| Header | Description |
|---|---|
breezy-event-id | Event id. |
breezy-event-type | Event type. |
breezy-delivery-id | Stable delivery id for idempotency and support. |
breezy-timestamp | ISO 8601 timestamp used in signature verification. |
breezy-signature | HMAC signature in v1=<hex> format. |
Event data
service_request.created data can include:
service_request.status_changed data:
service_request.booked data:
interaction.completed data:
data.
Signature verification
Compute the expected signature with HMAC-SHA256:breezy-signature using a constant-time
comparison. Reject requests with missing headers, invalid signatures, or stale
timestamps according to your integration’s tolerance.
Retries and history
Breezy treats any non-2xx response as a failed delivery. Failed deliveries are retried up to 3 total attempts, then marked abandoned. Deliveries are at least once. Usebreezy-delivery-id as your idempotency key
because a delivery can be retried after network or persistence uncertainty.
Use GET /integrations/webhooks/deliveries to inspect recent delivery status.
Pass endpointId to filter history for one endpoint.