2 min read
What it means
The bank rejected the collection. A bank-side block, closed account or scheme error.
Where you see it
It arrives in the webhook payload:
{
"data": {
"object": {
"id": "pay_7M3X1",
"loan_id": "loan_2K9P4",
"status": "failed",
"failure_code": "bank_rejected"
}
}
}
How to handle it
Ask the customer to check with their bank; offer an alternative payment route.
Reconcile against live state, since webhooks are unordered and a later event may supersede this one.
In practice
Treat bank_rejected as one branch of your failure_code handling, not the whole story. For payments, the value tells you why a collection failed so you can respond proportionately — a technical failure needs no customer contact, whereas an insufficient-funds failure is a moment for supportive, hardship-aware messaging. Always confirm current state before acting, because a later success event (a retry that cleared) may already have superseded this failure, and webhook delivery is unordered.
Frequently asked questions
Is bank_rejected final?
Not necessarily — for payments, a later retry may succeed. Reconcile against live loan state before acting.
Should I show this reason to the customer verbatim?
Map it to your own clear, humane copy rather than surfacing the raw code. See Map errors to user-facing messages.
Where does bank_rejected appear in the payload?
Under data.object.failure_code in the payment.failed webhook. Verify the signature, then branch on it.
Related reading
Funding for UK limited companies
Credicorp lends to your company, not to you personally — short-term working capital with no personal guarantee. See what your business could access.
