Webhooks

An email was accepted for delivery (one event per recipient)

We POST this event to every active endpoint subscribed to it (webhook.test only to the endpoint you test). Respond with any 2xx within ten seconds; anything else is retried with backoff for up to 24 hours, in eight attempts. The event id stays the same on retries, so you can skip duplicates.

postWebhookemail.sent

Headers

Hypamoon-Signaturestring required

t=<unix seconds>,v1=<hex>, where v1 is the HMAC-SHA256 of "<t>.<raw body>" with the full secret (including whsec_) as the key. Check it on the raw body before you parse the JSON, and reject a t more than five minutes from your clock.

Payload

idstring required

The event id, evt_ plus 32 hex characters. The same on retries.

type'email.sent' required
created_atstring required

Response

Received. Any 2xx counts.

Changes

Webhooks have no change history: a webhook is keyed by its event name rather than a path and method, so no recorded change can name it.