Receive webhooks
Send signed Developer API events to your own HTTPS endpoint.
Scale · BetaKnow what is delivered
Add an endpoint
In Channels / Developer API, open Webhooks and add your public HTTPS receiver. Save the one-time whsec_ signing secret on your server. Localhost, private-network addresses, credentials and URL fragments are rejected.
POST /api/v1/developer/webhooks
Authorization: Bearer DASHBOARD_SESSION_TOKEN
Content-Type: application/json
{
"name": "Support sync",
"url": "https://example.com/pingback/events"
}Accept a delivery
Verify the signature against the raw request body, deduplicate X-Pingback-Delivery in durable storage, then return a 2xx response. Queue slow work after validation so the receiver responds promptly.
| Header | Value |
|---|---|
| X-Pingback-Event | conversation.created or message.created |
| X-Pingback-Delivery | Unique delivery identifier |
| X-Pingback-Signature | t=<unix_timestamp>,v1=<hex_hmac> |
{
"id": "dev_evt_example",
"type": "conversation.created",
"created_at": 1793707200,
"data": {
"resource_id": "conv_example",
"external_id": "order-123-support",
"metadata": {}
}
}Inspect delivery results
Pingback makes up to two attempts with an eight-second timeout per attempt. Failed delivery does not undo an accepted event. Open Deliveries on the endpoint to inspect the latest 20 records. Disabling an endpoint preserves its history.