Skip to main content
A webhook receiver is the endpoint Dairo calls when something happens on your account. A production receiver does four things on every delivery: verify the signature, reject replays, deduplicate by event ID, and hand the work to a background job. This page is a complete, deployable endpoint in Node, Python, and Go. The samples verify and replay-protect each delivery the way the Webhooks reference describes.

Set up the subscription

Point a subscription at your endpoint and store the signing secret it returns.

The endpoint

The seen set above is in-memory, so it forgets across restarts and won’t deduplicate across multiple instances. In production, track processed X-Dairo-Event-Id values in a durable, shared store such as Redis or your database.

Test it

Send a message to trigger events, then watch your endpoint receive them.
A send fires message.sent, then message.delivered once the receiving server accepts it. Send to one of your own inbox addresses to also see message.received. A failed signature check returns 401; a duplicate event ID is a no-op 200.

Next steps