Developers & AI
Set up delivery webhooks
Receive delivery statuses in your own system, verify the signature, and never poll again.
your-app/webhooks.js
app.post("/webhooks/wezend", (req, res) => {
res.sendStatus(200); // ack fast
queue.add(req.body); // process async
});Step 1 / 4
Expose an endpoint
Create a POST route in your backend — it must respond 200 quickly (do the heavy work async). During local development, a tunnel like ngrok gives Meta-style services a reachable URL.
Every step in text
1Expose an endpoint
Create a POST route in your backend — it must respond 200 quickly (do the heavy work async). During local development, a tunnel like ngrok gives Meta-style services a reachable URL.
2Register the URL
Set it once account-wide under Settings → Webhooks, or per message with the webhook_url field in the send call. Per-send overrides account-wide.
3Verify the signature
Every delivery carries an X-WeZend-Signature header — an HMAC of the body with your webhook secret. Verify it, or anyone who finds your URL can fake delivery events.
4Replay & debug from the log
Every webhook attempt is logged with the response your server gave (GET /v1/webhooks/log). Failed deliveries retry with backoff — and you can replay any of them manually while debugging.
One platform. Every customer interaction.
Replace your patchwork of messaging APIs, CDP and automation tools with a single engagement platform built for scale.
No credit card required · EU data residency · 99.99% uptime SLA