Skip to main content
When a message is sent, delivered, bounces, gets a complaint, fails, or a recipient unsubscribes or opts out, Sendbaze POSTs a signed JSON event to your endpoint. Set one up in minutes:
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 2xx within 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 with occurredAt.

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.