Skip to main content
Affixo can POST an event to your server whenever something happens in your program — a new affiliate, a conversion, a confirmed commission, a paid payout. Create endpoints from the dashboard (Webhooks) or via POST /v1/webhooks; each endpoint carries its own signing secret, returned once at creation.

Events

Subscribe to specific events or ["*"] for everything (including any events added in the future). Unknown event names are rejected at creation time. The dashboard’s Send test button delivers a ping event. It bypasses your subscription filter — accept ping in your handler even if you validate the event name against the list above.

Delivery format

Each delivery is a POST with a JSON body:
Headers: Your endpoint must be https on a public host and should respond with a 2xx within 10 seconds. Redirects are treated as failures — respond at the subscribed URL directly.

Verifying signatures

The signature is an HMAC-SHA256 over "{timestamp}.{raw_body}" using your endpoint’s secret, hex-encoded, sent as X-Affixo-Signature: sha256=<hex>. Always verify against the raw request body (before any JSON parsing).
Node.js / Express
Rotating an endpoint’s secret (dashboard → Rotate) takes effect on the next delivery — deliveries are signed with the secret read at send time, so update your server first, then rotate.

Retries

Failed deliveries (non-2xx, timeout, or redirect) are retried with exponential backoff — 4^attempt seconds, capped at 8 hours — until the attempt limit is reached, after which the delivery is marked failed. Because retries can arrive minutes to hours later, make your handler idempotent on X-Affixo-Delivery. Deliveries already queued keep their signing secret and URL resolution at send time, so a rotated secret or edited URL applies to every future attempt.