Webhooks
Orbit webhooks deliver real-time HTTP POST notifications to your server whenever events occur — message delivered, call completed, agent conversation ended, and more. Use webhooks to keep your systems in sync without polling.How It Works
- You register a webhook endpoint URL in the Orbit dashboard or via the API
- When an event occurs, Orbit sends an HTTP POST with the event payload to your URL
- Your server responds with a
2xxstatus code to acknowledge receipt - If delivery fails, Orbit retries on a fixed schedule (see Retry Schedule)
Register a Webhook
Event Payload Format
Every webhook delivery follows a consistent envelope:message.failed) additionally include optional error_code and error_message fields carrying the provider’s failure reason. They appear only when the message has a captured provider error and are absent otherwise. See the webhook events reference for the full per-event payload shapes.
Delivery Guarantees
- At-least-once delivery — events may be delivered more than once; use
idfor deduplication - Ordered by event time — events are sent in chronological order, but network conditions may cause out-of-order delivery
- 30-second timeout — your endpoint must respond within 30 seconds
Retry Schedule
If your endpoint returns a non-2xx response or times out, Orbit retries on a fixed schedule. Each event gets one initial delivery plus 6 retries (7 attempts total). Each retry delay carries +0–20% jitter (delays run up to 20% longer than the nominal schedule, never shorter):
After the 7th attempt fails, the event is moved to a dead letter queue — roughly 34.6 hours after the first attempt. Size your delivery-expiry, replay, and idempotency-key retention windows accordingly: a failing endpoint receives retries for around a day and a half before the event is dead-lettered, so persist seen event
id values for at least 3 days to cover the full retry window plus the dead-letter replay window. You can replay failed events from the dashboard under Webhooks > Failed Deliveries.
Managing Webhooks
List your registered webhooks:Next Steps
- Event Types — full list of available events
- Security — verify webhook signatures