Webhooks
Webhooks for transaction-based updates
We send webhooks when a customer receives or sends a bank-to-bank transfer, as long as a webhook URL is set—applies to both parent and sub-accounts.
Your webhook handler should respond with a 2xx status code. Otherwise the request is considered failed and will be retried with a retry policy using exponential backoff.
We use exponential backoff (factor 2.0), starting with a 1-second delay between attempts and doubling after each failure (1s → 2s → 4s → 8s, etc.). Retries continue for up to 72 hours, after which the webhook will no longer be attempted.
Webhooks trigger on every transaction update—whether it's money moving between accounts or incoming/outgoing transactions.
Outgoing Webhook Example
For example, after initiating an outgoing transfer via the API, the transfer is typically settled within a few seconds (during working hours). If a webhook URL was provided, a POST request will be sent to that endpoint as shown below:
Request:
Body:
Then call the transaction service to retrieve the complete transaction data.
For incoming transaction webhooks, you’ll get the same message, but with a different transaction_id since it's an unique for every tx.