1
Add an endpoint
Open Webhooks in the dashboard, enter an HTTPS URL and choose the event types you want, or leave the filter empty for every event. Or call
POST /v1/webhooks with scope webhooks:write.2
Store the secret
Each endpoint gets a signing secret (
whsec_…), shown once. Put it in an environment variable on the server that receives the events.3
Verify and handle events
Check the
Sendbaze-Signature header against the raw body before parsing, then act on type. See verify the signature.4
Send a test event
Press Send test event or call
POST /v1/webhooks/{id}/test. A webhook.test event is delivered regardless of the filter, and the delivery log shows the attempt, your response status and the time it took.Payload
data is the message object that GET /v1/emails/{id} or GET /v1/sms/{id} returns, without the events array.
Requirements for your endpoint
- HTTPS on a public host. Private and local network addresses are refused, and redirects are not followed.
- Answer with any
2xxwithin 10 seconds. Do the real work after responding, for example by putting the event on a queue. - Expect duplicates and out-of-order delivery. De-duplicate with
Sendbaze-Event-Id, order withoccurredAt.
Managing endpoints
Everything on the dashboard page is also in the API:
The Node.js SDK covers all of this as
sendbaze.webhooks.* and exports verifyWebhookSignature.