Nacha is the governing body that oversees the ACH network that processes payments from a US bank account. Non-compliance with Nacha’s operating rules could result in penalties and, in some cases, account termination. Nacha will begin enforcing the WEB Debit Account Validation Rule starting March 19, 2022. This requires businesses to validate any consumer bank accounts that they haven’t debited before.
Nacha will be enforcing bank account validation, which involves checking whether a bank account and routing number exist and can be debited. Bank account verification, which is recommended but not required, takes an additional step and checks for whether the person providing the bank account is actually the owner of the bank account.
Any business debiting new consumer bank accounts will need to comply with this requirement. Businesses that only plan to debit business bank accounts should still have a bank account validation method enabled in the event that a personal bank account is debited.
There are two methods offered on Stripe that satisfy Nacha’s bank account validation requirement.
Instant verification (recommended): Customers enter their online banking credentials to instantly verify the account rather than manually entering routing and account information. This method minimizes fraud, checkout friction, and delays in debit processing. Stripe’s ACH debits integration on the PaymentIntents API offers a built-in and fully hosted instant verification solution, see docs.
Micro-deposit verification: Routing and account information is entered manually, and customers wait 1-2 days for a deposit and manually verify they’ve received the deposit. You will need to build your own UI to collect verification details from your customer, see docs. There is no fee for micro-deposit verification.
|Instant verification||Micro-deposit verification only|
|Customer experience||Customers use their online banking credentials to instantly verify the account. Micro-deposit verification can be used as a fallback.||Customers enter their routing and account numbers, and they receive a deposit in that account with a verification amount after 1-2 days. Customers enter the amount on a verification page.|
|Validates bank account (compliance with Nacha)||Yes||Yes|
|Verifies customer owns the account (best practice to minimize fraud)||Yes||Yes|
|APIs supported||Payment Intents API (built-in) or Charges API (separate integration via Plaid)||Payment Intents API or Charges API|