Payout Webhook Events
BLOX sends these webhook events for the prefund payouts on your account. To get them, register an endpoint of type PAYOUT in the dashboard (Devtools → Webhooks).
For registration, signature verification, retries, and URL rules, refer to Webhooks.
Events
| Event | BLOX sends it when |
|---|---|
payout.created | You create a payout. The status is INITIATED. |
payout.updated | The payout status changes to SETTLED, REVERSED, or RETURNED. |
payout.prefund_completed | A top-up settles. You can use the amount for payouts. |
payout.prefund_reversed | The bank reverses a top-up that settled. |
payout.prefund_recredited | The bank confirms a reversed top-up again. BLOX adds the amount to your prefund balance again. |
If you pay a beneficiary from an on-chain deposit, BLOX also sends payout.deposit.updated and payout.withdrawal.updated to this endpoint. For their payloads, refer to Onchain Trigger.
Envelope
{
"eventId": "payout.updated:b0e6c2f4-...:SETTLED",
"event": "payout.updated",
"webhookType": "PAYOUT",
"timestamp": "2026-07-16T09:31:05.000Z",
"data": {}
}| Field | Description |
|---|---|
eventId | The unique identifier of the event. Use it to process each event one time. Treat it as an opaque string. |
event | The event name |
webhookType | PAYOUT for these events |
timestamp | The time of the event, in ISO 8601 format |
data | The payload of the event. Its fields change with the event. |
Event data
payout.created / payout.updated
{
"payoutId": "b0e6c2f4-...",
"status": "SETTLED",
"type": "STANDARD",
"amount": "100000",
"fee": "1000",
"netAmount": "99000",
"beneficiaryId": "7c1a3e88-...",
"bankAccountId": null,
"idempotencyKey": "6f9619ff-8b86-d011-b42d-00cf4fc964ff",
"statusReason": null
}The fields are the same as in the REST Payout object, but data does not contain reference, createdAt, and submittedAt. Send GET /v1/payouts/{id} only to get the full record, or to find the status after you did not receive an event.
payout.prefund_completed / payout.prefund_reversed / payout.prefund_recredited
{
"depositId": "3f8c1d20-...",
"amount": "5000000"
}| Field | Description |
|---|---|
depositId | The identifier of the top-up |
amount | The amount that BLOX added or removed, as a string in sen |
amount is the amount of the change. It is not the new balance. To get the current balance, send GET /v1/payout/prefund/balance after the event.
Set an alert for payout.prefund_reversed. If your prefund balance is less than the reversed amount, you owe BLOX the difference. BLOX then stops payouts on your account. Until the amount that you owe is paid, each request to create a payout returns 403 FEATURE_DISABLED.
BLOX sends each of these events a maximum of one time for each top-up. One top-up can cause all three events, in this sequence: the bank confirms the top-up, the bank reverses it, then the bank confirms it again.