Webhooks API
Webhooks notify your system when important events happen in CashXChain.
Customer-managed webhook endpoints (registering your own URL via /v1/webhooks
and receiving signed POSTs) are on the roadmap and not yet available in the
sandbox API. Today, events are available as a server-sent event (SSE) stream
from the dashboard session — see Event stream.
The signed-POST contract below is the planned model.
Event stream (available today)
GET /v1/notifications
A long-lived SSE stream of account, transfer/payment, and balance events for the authenticated session. This is a dashboard (session) endpoint and is not consumed with a developer API key.
Planned: signed webhook delivery
Endpoint requirements
Your endpoint must:
- Use HTTPS.
- Accept POST requests.
- Return a 2xx response quickly.
- Verify CashXChain signatures.
- Handle duplicate events safely.
- Process events asynchronously when possible.
Event format
{
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"type": "transfer.completed",
"created_at": "2026-06-01T09:00:42Z",
"environment": "sandbox",
"resource_type": "transfer",
"resource_id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"data": {
"id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
"status": "completed"
}
}
Signature headers
The signing scheme is being finalized. Plan to verify a signature header (timestamp + HMAC) over the raw request body before trusting the payload; the exact header names will be published with the endpoint.
Delivery behavior
If your endpoint does not return a 2xx response, delivery is retried with backoff. Events may be delivered more than once and may arrive out of order.
Idempotency
Use the event ID to deduplicate processing. Your handler should be safe to run multiple times.
Planned event types
Aligned to the transfer/payment lifecycle:
transfer.pendingtransfer.executingtransfer.completedtransfer.failedtransfer.rolled_backpayment.sentpayment.completedpayment.failed
Testing
Use sandbox to validate event handling — deduplication, retries, and reconciliation — against the event stream.