Getting started
1
Configure your endpoint
Log in to your Appstle dashboard, go to Settings → Webhooks, add your webhook endpoint URL, and select which events you want to receive.
2
Return 2xx quickly
Your endpoint must return a
2xx status code (e.g. 200 OK) to acknowledge receipt. Process the event asynchronously in a background job — slow responses will time out and trigger retries.3
Verify signatures
Every webhook request includes Svix signature headers. Always verify the signature before processing to ensure the request is authentic. See Signature verification below.
Event types
Payload structure
All webhooks use this envelope:Subscription contract payloads
The following events carry a full subscription contract indata:
subscription.created, subscription.updated, subscription.activated, subscription.paused, subscription.cancelled, subscription.next-order-date-changed, subscription.billing-interval-changed
Complete subscription contract payload example
Complete subscription contract payload example
Subscription contract fields
Billing attempt payloads
The following events carry billing attempt data:subscription.billing-success, subscription.billing-failure, subscription.billing-skipped, subscription.upcoming-order-notification
- billing-success
- billing-failure
- billing-skipped
- upcoming-order-notification
Billing attempt fields
Signature verification
Every webhook request is signed by Svix. You must verify the signature before processing to ensure the request is authentic and has not been tampered with. Svix adds three headers to every request:
Find your webhook signing secret in Settings → Webhooks in the Appstle dashboard.
Testing webhooks
Using Svix Play
- Go to Settings → Webhooks in your Appstle dashboard.
- Click on your endpoint.
- Use the Send Example feature to send a sample event.
- Verify your endpoint receives and processes the webhook correctly.
Local development
Use ngrok or localtunnel to expose your local server:https://abc123.ngrok.io/webhooks/appstle) as a webhook endpoint in your Appstle dashboard.
Retry schedule
If your endpoint does not return a2xx status code, Svix retries automatically using exponential backoff over 5 attempts across 3 days. Endpoints that fail consistently are automatically disabled to prevent wasted resources.
You can manually retry failed deliveries from the Svix dashboard, and view all delivery attempts in Settings → Webhooks → Message Logs.
Troubleshooting
Need help? Email support@appstle.com with your endpoint URL and the
svix-id of any failing message.