Short answer
Open the payout in the Dashboard, or read failure_code and failure_message from the API. Re-enter the bank details, or add a new account if the old one is closed. Stripe tries again at the next scheduled payout. If the details are right, contact the bank, then click Resume Payouts.
Rather not fix it yourself? Stripe Billing Fix and Setup handles it at a fixed price, agreed before work starts.
Why the payout failed, and the fix
01
The account or routing number is wrong
“If a payout fails, make sure your bank account details are correct by re-entering them.” Stripe, Payout failures
A typo can point the payout at no account at all (no_account) or at someone else’s. Re-enter the details carefully: Stripe says it might not recover funds sent to the wrong account.
02
The bank account is closed
“Stripe then reattempts the payout at the next scheduled payout interval.” Stripe, Payout failures
account_closed means the bank no longer takes deposits into that account. Add a new bank account in the Dashboard, and Stripe tries the payout again at the next scheduled payout.
03
The bank refused it for its own reasons
“If your banking details are correct and the payout failure is for other reasons, contact your bank.” Stripe, Payout failures
Codes such as debit_not_authorized or invalid_currency point at the account’s setup at the bank. If the details are right, call the bank, then click Resume Payouts in the Dashboard.
04
The app trusted the paid status
“Error code that provides a reason for a payout failure, if available.” Stripe, Payout object (failure_code)
A payout can show paid first and failed days later. If your app or books act on payouts, handle the payout.failed webhook and log the code.
if (event.type === 'payout.failed') { const payout = event.data.object; console.log(payout.id, payout.failure_code, payout.failure_message); }
Checked against the vendor’s docs on : Stripe docs: Receive payouts; Stripe API: The Payout object.
Rather hand it over?
Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.
- $950Stripe Billing Fix and SetupSubscriptions, webhooks, customer portal and failed payments set up or fixed, tested in Stripe test mode.See scope and start
- from $450App Fix TicketOne reproducible bug in an existing mobile or web app, diagnosed and fixed.See scope and start
- from $450AI-Built App RescueA Lovable, Bolt or Cursor app checked end to end in 3 days, then its worst problems fixed at a fixed price.No issues worth fixing, no charge. If the Launch Check finds nothing rated medium or higher, Simon refunds the full $450. You keep the report either way. This applies to the first 10 Launch Checks bought after October 30, 2026.See scope and start
“Working with Simon makes everything run so smoothly and better than I could ask for it. Amazingly communicative, extremely knowledgeable of coding and the backend processes. I strongly recommend.”
Related: Stripe Connect onboarding incomplete · Stripe insufficient funds · Stripe webhook delivery failed · Stripe webhook signature error