API reference
Outbound webhooks
Subscribe a URL to delivered / bounced / complained / failed message events. Stripe-style HMAC signing. Durable retry with backoff.
Subscribe to events
POST /v1/webhooks
Authorization: Bearer mnx_live_…
Content-Type: application/json
{
"name": "billing-receipts",
"target_url": "https://api.yourapp.com/mailnix",
"event_types": ["delivered", "bounced", "complained"]
}
# response (the hmac_secret is shown once)
{
"id": "wh_7c2d…",
"hmac_secret": "whsec_…",
"target_url": "https://api.yourapp.com/mailnix"
}Omit event_types (or pass an empty array) to subscribe to every event. The HMAC secret is exposed once and never re-displayed; rotate via POST /v1/webhooks/{id}/rotate-secret.
Verifying signatures
Every webhook mailnix POSTs is signed:
X-Mailnix-Signature: sha256=<hex(hmac_sha256(body, route_secret))>Verify before processing. Replays are deduped via the X-Mailnix-Delivery header (a UUID).
Retries
Schedule: 1m → 5m → 25m → 2h → 12h → 24h, then parked (no further retries). Inspect attempts at GET /v1/webhooks/{id}/attempts: per-row attempt_count, last_status_code, last_error.
Event types
deliveredbouncedcomplainedfailedauto_suppressed(post-delivery suppression annotation)