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.
Payload & headers
Each delivery is a JSON POST with these headers:
X-ESP-Event | The event type |
X-ESP-Timestamp | Unix timestamp of the delivery |
X-ESP-Signature | sha256=<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.