# Stripe: bank_account_verification_failed

> Stripe returns bank_account_verification_failed when microdeposit amounts don’t match or verification failed too many times. Collect a new bank account.

Canonical: https://app369.com/fix/stripe-bank-account-verification-failed/
Last updated: 2026-11-12

Stripe returns bank_account_verification_failed when a bank account can’t be verified, because the microdeposit amounts provided don’t match or verification failed too many times. Stripe says an account past the attempt limit can no longer be verified or reused.

**Rather hand it over?** [App Fix Ticket](https://app369.com/fixed-price/flutter-firebase-bug-fix/): One reproducible bug in an existing mobile or web app, diagnosed and fixed.

[Pay $450 for a Diagnosis](https://buy.stripe.com/dRmdRa7K4bWz8CWdwagw003) [**Ask a question first**](https://app369.com/contact/?offer=offer1-diagnosis&amp;ask=1)

Full refund if Simon can’t take it on once he sees your project, or if you cancel before work starts. [Refund terms](https://app369.com/terms-of-service/#refunds).

- ![](https://app369.com/.netlify/images?w=28&amp;fm=webp&amp;url=%2Fimages%2Fszymon.jpg)Simon does the work himself
- [5.0 from 127 Fiverr reviews, checked Oct 30, 2026](https://app369.com/reviews/)

**Short answer**

Check which failure it was. If the customer ran out of attempts, ask for a different bank account, because Stripe says that one can no longer be verified or reused. If the deposits never arrived or the 10 days ran out, collect the bank details again. To skip microdeposits where possible, verify instantly with Financial Connections.

Rather not fix it yourself? [**App Fix Ticket**](https://app369.com/fixed-price/flutter-firebase-bug-fix/) starts with a fixed-price diagnosis, then a fixed price for the fix before any fix work.

## **Why bank account verification failed, and the fix**

1. 01 ### **The amounts or code entered don’t match**
  > “The bank account can’t be verified, either because the microdeposit amounts provided don’t match the actual amounts, or because verification has failed too many times.” [**Stripe, Error codes (bank_account_verification_failed)**](https://docs.stripe.com/error-codes) Stripe verifies with a 6-digit descriptor code by default, or with two deposit amounts. Check that the customer entered the code or the amounts from the right deposit. Stripe says the deposits take 1 to 2 business days to appear on the customer’s online statement.
2. 02 ### **Too many verification attempts**
  > “Exceeding this limit means the bank account can no longer be verified or reused.” [**Stripe, Accept an ACH Direct Debit payment**](https://docs.stripe.com/payments/ach-direct-debit/accept-a-payment?payment-ui=elements&amp;api-integration=paymentintents) Also check: once the attempt limit is reached, the same bank account can’t be used. Ask the customer for a different account instead of retrying.
3. 03 ### **The microdeposits never arrived**
  > “The microdeposits fail to arrive in the customer’s bank account (this usually indicates a closed or unavailable bank account or incorrect bank account number).” [**Stripe, Accept an ACH Direct Debit payment**](https://docs.stripe.com/payments/ach-direct-debit/accept-a-payment?payment-ui=elements&amp;api-integration=paymentintents) Also check: Stripe says deposits that fail to arrive usually mean a closed or unavailable bank account, or an incorrect account number. Collect the bank details again.
4. 04 ### **The customer didn’t verify in time**
  > “Customers have 10 days to verify their bank account with microdeposits.” [**Stripe, ACH Direct Debit**](https://docs.stripe.com/payments/ach-direct-debit) Also check: after 10 days without verification, the PaymentIntent or SetupIntent needs a new payment method, so send the customer back to enter their bank details.

Checked against the vendor’s docs on November 12, 2026: [Stripe docs: Error codes](https://docs.stripe.com/error-codes); [Stripe docs: Accept an ACH Direct Debit payment](https://docs.stripe.com/payments/ach-direct-debit/accept-a-payment?payment-ui=elements&amp;api-integration=paymentintents); [Stripe docs: ACH Direct Debit](https://docs.stripe.com/payments/ach-direct-debit).

## **Rather hand it over?**

Fixed scope, fixed price, paid upfront. The work happens in writing; no call needed.

- [from $450**App Fix Ticket**One reproducible bug in an existing mobile or web app, diagnosed and fixed.**See scope and start**](https://app369.com/fixed-price/flutter-firebase-bug-fix/)
- [from $450**AI-Built App Rescue**A 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**](https://app369.com/fixed-price/ai-app-rescue/)

[**All 127 Fiverr reviews**](https://app369.com/reviews/)

Related: [**Stripe mandate invalid**](https://app369.com/fix/stripe-payment-intent-mandate-invalid/) · [**Stripe SetupIntent authentication failure**](https://app369.com/fix/stripe-setup-intent-authentication-failure/) · [**Stripe payout failed**](https://app369.com/fix/stripe-payout-failed/) · [**Stripe webhook signature error**](https://app369.com/fix/stripe-webhook-signature-verification-failed/)

Questions

## **More on this error**

<details>

<summary>**Can a customer skip microdeposits? **+</summary>

Often, yes. Stripe verifies bank accounts instantly with Financial Connections by default, and falls back to microdeposits only when instant verification isn’t possible. Stripe also lets you require instant verification for every customer.

</details>

<details>

<summary>**How long does a customer have to verify? **+</summary>

10 days. Stripe says that if the customer doesn’t verify within that time, the PaymentIntent or SetupIntent reverts to requiring new payment method details.

</details>

<details>

<summary>**Can you fix it for me? **+</summary>

If one bug is the whole problem, the App Fix Ticket covers it: a written diagnosis first, then the fix. If the app has more going on, the Launch Check is a written check of the whole app. Each issue found is rated critical, high, medium or low, with where it is and how it was confirmed. 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.

</details>

A different error?

## **Describe it and get a written quote**

Send the error and what you were doing. You get a written scope, a fixed price and a timeline; Simon replies by email, usually within one business day.

[**Describe your problem **→](https://app369.com/contact/) [**All fixes**](https://app369.com/fix/)