Overview
Your subscription platform sends real-time webhooks for all subscription events. This allows you to automate workflows, update your database, send notifications, and more.Setting Up Webhooks
1
Add an Endpoint
Navigate to the Webhooks tab of your merchant dashboard
2
Copy your signing secret
Save the secret shown during creation (displayed only once)
3
Verify webhook signatures
Implement signature verification in your endpoint handler
Available Events
subscription.created
Triggered when a user subscribes to one of your plans
subscription.payment_succeeded
Triggered when a recurring payment is successfully processed
subscription.payment_failed
Triggered when a recurring payment fails
subscription.cancelled
Triggered when a user cancels their subscription
subscription.created
Triggered when a user subscribes to one of your plans.subscription.payment_succeeded
Triggered when a recurring payment is successfully processed.subscription.payment_failed
Triggered when a recurring payment fails (insufficient balance, etc).subscription.cancelled
Triggered when a user cancels their subscription.Verifying Webhook Signatures
Best Practices
Always verify signatures
Always verify signatures
Never trust unverified webhooks. Always implement signature verification.
Process webhooks asynchronously
Process webhooks asynchronously
Respond quickly (< 10s) and process in background to avoid timeouts.
Handle duplicates
Handle duplicates
Use
x-webhook-id header to deduplicate events.Check timestamps
Check timestamps
Reject old webhooks to prevent replay attacks.
Return 200 quickly
Return 200 quickly
We’ll retry on timeouts or 5xx errors.
Monitor your endpoint
Monitor your endpoint
Check the Webhooks tab for delivery failures.
Retry Policy
Failed webhooks are automatically retried with exponential backoff:1
1st retry
After 1 minute
2
2nd retry
After 5 minutes
3
3rd retry
After 30 minutes
After 3 failed attempts, we stop retrying. Check your webhook logs in the dashboard to debug failures.
Testing
Use tools like webhook.site or ngrok to test your webhook endpoint locally:Rate Limits
- Maximum 10 endpoints per merchant
- Webhooks must respond within 10 seconds
- Automatic retry on timeouts or 5xx errors
Getting Help
If you’re having trouble with webhooks:- Check the Webhook Logs tab for detailed error messages
- Verify your endpoint is publicly accessible
- Ensure you’re verifying signatures correctly
- Check that your endpoint returns a 2xx status code