Preview Documentation — This integration is in final testing. API shapes are stable; endpoints will be live shortly. Contact your RebelFi rep if you have questions before go-live.
RebelFi sends webhook events to the endpoint URL configured in your dashboard Settings. Register your endpoint before going live.
Payload Envelope
All webhook events share this common structure:
{
"event": "customer.approved",
"timestamp": "2026-03-15T12:00:00Z",
"data": { ... }
}
| Field | Type | Description |
|---|
event | string | Event type identifier |
timestamp | string | ISO 8601 timestamp of when the event occurred |
data | object | Event-specific payload |
Events
customer.approved
Fired when a merchant’s KYB verification passes and their bank account is ready.
{
"event": "customer.approved",
"timestamp": "2026-03-15T12:00:00Z",
"data": {
"customer_id": 1,
"name": "OnEdge",
"bank_account": {
"account_number": "12345678",
"routing_number": "987654321",
"bank_name": "Lead Bank",
"capabilities": ["ach", "fedwire"]
}
}
}
customer.declined
Fired when a merchant’s KYB verification fails.
{
"event": "customer.declined",
"timestamp": "2026-03-15T12:00:00Z",
"data": {
"customer_id": 1,
"name": "OnEdge"
}
}
transaction.completed
Fired when a USD deposit has been converted to USDC and delivered to your wallet.
{
"event": "transaction.completed",
"timestamp": "2026-03-20T14:35:00Z",
"data": {
"transaction_id": 1,
"customer_id": 1,
"usd_amount": "50000",
"total_fee": "125",
"developer_fee": "25",
"usdc_delivered": "49875"
}
}
transaction.failed
Fired when a transaction encounters an error during conversion.
{
"event": "transaction.failed",
"timestamp": "2026-03-20T14:35:00Z",
"data": {
"transaction_id": 1,
"customer_id": 1,
"usd_amount": "50000",
"error": "rejected"
}
}
Best Practices
- Respond with HTTP 200 immediately — process the event asynchronously. RebelFi expects a quick acknowledgment.
- Check the
event field before acting on the payload. Your endpoint will receive all event types.
- Log raw payloads for reconciliation and debugging.
- Handle duplicates — in rare cases, the same event may be delivered more than once. Use the
data fields to deduplicate.