Webhooks
Webhooks allow you to receive real-time notifications when events occur in your account. Instead of polling the API, webhooks push data to your server when things happen.How It Works
1
Configure Endpoint
Add a webhook endpoint URL in your Dashboard
2
Subscribe to Events
Choose which events you want to receive
3
Receive Events
Your server receives POST requests with event data
4
Acknowledge
Return 2xx status to confirm receipt
Event Format
All webhook events follow this structure:Event Types
Transactions
| Event | Description |
|---|---|
transaction.authorized | Pending hold placed |
transaction.completed | Transaction settled |
transaction.declined | Transaction rejected |
transaction.reversed | Refund processed |
Cards
| Event | Description |
|---|---|
card.created | Card issued |
card.frozen | Card frozen |
card.closed | Card closed |
card.expired | TTL reached |
Agents
| Event | Description |
|---|---|
agent.created | Agent created |
agent.suspended | Agent suspended |
agent.limit_exceeded | Spending limit hit |
Users
| Event | Description |
|---|---|
user.application.approved | KYC passed |
user.application.denied | KYC failed |
user.balance.updated | Balance changed |
Deposits & Withdrawals
| Event | Description |
|---|---|
deposit.received | Funds received |
deposit.address_ready | Deposit address available |
withdrawal.submitted | Withdrawal initiated |
withdrawal.confirmed | Withdrawal confirmed |
withdrawal.failed | Withdrawal failed |
3DS
| Event | Description |
|---|---|
challenge.requested | OTP available |
Disputes
| Event | Description |
|---|---|
dispute.created | Chargeback initiated |
dispute.resolved | Chargeback resolved |
Signature Verification
All webhooks include a signature for verification: Headers:svix-id- Unique message IDsvix-timestamp- Unix timestampsvix-signature- HMAC signature
Retry Policy
Failed deliveries are retried with exponential backoff:| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | 5 seconds |
| 3 | 5 minutes |
| 4 | 30 minutes |
| 5 | 2 hours |
| 6 | 5 hours |
| 7 | 10 hours |
| 8 | 24 hours |
Best Practices
Return 2xx quickly
Return 2xx quickly
Process events asynchronously. Return 200 immediately, then process in background.
Handle duplicates
Handle duplicates
Use the
id field to deduplicate. The same event may be delivered multiple times.Verify signatures
Verify signatures
Always verify the webhook signature to ensure authenticity.
Use HTTPS
Use HTTPS
Your endpoint must use HTTPS in production.
Testing
Use the Dashboard to send test events to your endpoint:- Go to Settings > Webhooks
- Select your endpoint
- Click Send Test Event
- Choose an event type