Skip to content
LogoLogo

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

EventBLOX sends it when
payout.createdYou create a payout. The status is INITIATED.
payout.updatedThe payout status changes to SETTLED, REVERSED, or RETURNED.
payout.prefund_completedA top-up settles. You can use the amount for payouts.
payout.prefund_reversedThe bank reverses a top-up that settled.
payout.prefund_recreditedThe 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": {}
}
FieldDescription
eventIdThe unique identifier of the event. Use it to process each event one time. Treat it as an opaque string.
eventThe event name
webhookTypePAYOUT for these events
timestampThe time of the event, in ISO 8601 format
dataThe 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"
}
FieldDescription
depositIdThe identifier of the top-up
amountThe 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.