subscription.activated, revoke it on subscription.canceled, fulfil a purchase on checkout.session.completed. Delivery is through Svix, which signs every request and retries failed deliveries.
The objects these events describe are explained in How Alguna works. For the dashboard walkthrough, see the Webhooks quick start.
Webhook payloads are camelCase, unlike API request and response bodies, which are snake_case. Identifiers in payloads are the same IDs the API returns.
Webhook format
Every delivery has the same envelope:Supported events
Event payloads
Each event’sdata object is documented under Webhooks in the sidebar: every field, its type, whether it can be null, the values it accepts, and an example.
For the objects behind these events and what their statuses mean, see Payments, Refunds, Credits & wallets, and hosted and embedded checkout.
Setting up webhooks
- In the dashboard, go to Settings → Connections → Developers → Webhooks
- Add an endpoint with your URL
- Select the events to receive
- Copy the signing secret — you need it to verify deliveries
- Save
Responding to webhooks
Return a 2xx status code within 15 seconds to acknowledge receipt. Queue any real work and process it asynchronously — a slow handler is retried as a failure. If your framework applies CSRF protection, exempt the webhook route. Deliveries can arrive more than once and out of order. Key your handling on thesvix-id header (the delivery ID) or on the object ID plus timestamp, and treat every handler as idempotent.
Verifying signatures
Every delivery is signed following the Standard Webhooks specification and carriessvix-id, svix-timestamp and svix-signature headers. Verify with the Svix library for your language, using the raw request body:
Retry policy
Failed deliveries — a non-2xx response, a timeout, or a connection error — are retried with exponential backoff, starting seconds after the first failure and stretching to hours. If an endpoint fails every attempt for five days it is disabled; re-enable it from the dashboard once it is healthy again. Svix owns the delivery schedule and publishes the exact intervals in its retry documentation.IP allow list
If your endpoint sits behind a firewall, allow the source addresses Svix publishes for its EU cluster. The current list is in the Svix IP documentation — it changes, so read it there rather than copying it into long-lived firewall config.Best practices
Respond quickly
Acknowledge with a 2xx, then process asynchronously.
Handle duplicates
Deliveries can repeat. Make handlers idempotent on the delivery ID.
Verify every delivery
Reject anything that fails signature verification.
Re-fetch when it matters
Payloads are snapshots. For money-moving decisions, read the object from the API.
Next steps
Webhooks quick start
Set up an endpoint from the dashboard.
Developer quick start
Auth, first request, events and webhooks end to end.
Automations
React to events inside Alguna without an endpoint.
Svix documentation
Verification libraries and delivery details.