Guides

Webhooks

Webhooks push real-time events to your server. Subscribe in the dashboard → Developers → Webhooks, choosing events like email.sent, email.delivered, email.opened, email.clicked, email.bounced, email.complained, and email.unsubscribed.

Event firesdelivered / open / clickHMAC-SHA256secret + ts + bodyPOST + signatureX-ESP-SignatureYou verifytrust the payloadFailed deliveries retry with backoff, then dead-letter.

Payload & headers

Each delivery is a JSON POST with these headers:

X-ESP-EventThe event type
X-ESP-TimestampUnix timestamp of the delivery
X-ESP-Signaturesha256=<hmac> signature

Verify the signature

Compute HMAC-SHA256 over "{timestamp}.{raw_body}" with your signing secret and compare:

from relayly import Client
ok = Client.verify_webhook(secret, sig_header, ts_header, raw_body)   # Python

const { Relayly } = require("@relayly/sdk");                          // Node
Relayly.verifyWebhook(secret, sigHeader, tsHeader, rawBody);

Failed deliveries are retried with exponential backoff and moved to a dead-letter state after repeated failures; you can replay any event from the dashboard.