payout.failed
A payout to your bank account failed.
Payload
All webhook payloads follow a consistent top-level structure with event-specific data nested within the data object.
The payout ID.
Gross payout amount in cents (100 = $1.00).
Provider transfer fee in cents.
What would have reached your bank in cents.
The payout currency. Always "usd".
Always "failed" for this event.
Destination bank display metadata: bankName and last4.
ISO 8601 datetime when the failure was recorded.
The provider's failure code, when available.
A human-readable failure message, when available.
{
"event": "payout.failed",
"timestamp": "2026-06-14T09:00:00.000Z",
"organizationId": "org_abc123",
"mode": "live",
"apiVersion": "2026-06-10",
"data": {
"payoutId": "8b6f2a1c-4d3e-4f5a-9b8c-7d6e5f4a3b2c",
"amount": 20000,
"fee": 0,
"netAmount": 20000,
"currency": "usd",
"status": "failed",
"destinationBank": {
"bankName": "CHASE",
"last4": "6789"
},
"failedAt": "2026-06-14T09:00:00.000Z",
"failureCode": "account_closed",
"failureMessage": "The bank account has been closed"
}
}When this fires
When the provider reports that a payout could not be completed — at either leg of the lifecycle, most commonly when the bank rejects the deposit (closed account, invalid details). The funds return to your available balance.
failureCode and failureMessage carry the provider's reason when available.
Use it to alert your finance contact and to fix the bank account before requesting the payout again.
How is this guide?