Accepting ACH Payments with Stripe
Automated Clearing House or ACH payments allow you to receive debit payments directly from a customer’s bank account instead of using credit or debit cards. ACH payments are provided with lower fees than card payments but also require additional payer verification and introduce longer delays of payment and refunding.
ACH payments are available to all US-based Stripe users. In order to activate ACH payments, you will need to sign into your account and agree to our Terms of Service.
Unlike credit and debit payments where you collect your customer’s card number, expiration date, name, address, and security code, with ACH payments you’ll need your customer’s name, account type, account number, and routing number.
Typically, bank accounts can be verified using a micro-deposit process, though Stripe has also integrated with Plaid to provide a more streamlined ACH verification process based on your customer’s online banking credentials.
It’s important to note that fraudulent users still sometimes pass verification successfully. To protect your business from fraud, monitor for unusual charge activity and suspicious behavior. You can learn more by reading our guide to identifying fraud.
Pricing: We charge a per-transaction fee for accepting ACH payments. Micro-deposit verification is free. If you’d like to authorize bank information instantly, please get in touch with Plaid for pricing.
You can verify your customer’s routing and account numbers by sending their account two micro-deposits. Two small deposits will be made to their account. The transfers can take 3-4 business days to appear on their account. Once they’ve been received by the customer, the amounts for each deposit will need to be provided to you by the customer to verify that they have access to their account statement.
Stripe is also working with Plaid to offer instant verification for ACH payments. Your customer will just need to securely sign into their online bank account and they’re instantly verified—no need to know their account or routing number and no 3-4 day micro-deposit verification process. Plaid currently supports 15 major US banks. If you’d like to authorize bank information instantly, please get in touch with Plaid for pricing.
In addition to verifying their bank account information, you must also get the customer’s authorization to deduct funds from their account. For details on the rules that the National Automated Clearinghouse Association (“NACHA”) requires, visit their site.
In accordance with the NACHA Rules, we do not allow you to process ACH payments unless they have been authorized by the owner of the bank account. You are solely responsible for verifying the identity of your customers, determining their eligibility to purchase your products and services, and acquiring appropriate authorization to initiate ACH debits from their account. As part of the authorization process, we recommend collecting and storing digitally or in paper form for two years the following information from your customers (please note this is not an exhaustive list by any means):
|Clear, legible consent||Your authorization page must plainly state that you are obtaining consent to debit your customer’s bank account for a specific transaction or set of recurring transactions.
One way to achieve this is for the authorization form to have express language such as:
I authorize (your company) to electronically debit my account and, if necessary, electronically credit my account to correct erroneous debits.
|Transaction specific details||Date, time of transaction, debiting account info, item purchased, IP address (and corresponding details such as country), frequency if it is a recurring payment|
|Client/account information||Name on account/shipping information, any other controls in place to verify the identity of the customer|
|Any further transaction info||Prior transaction history, particularly for recurring payments (e.g. IP information, other logins, other purchases)|
|Receipt of transaction||Prompt your customer to print the authorization and retain a hard copy or electronic copy, and send an e-mail receipt of the processed transaction to your customer.|
|Process for revocation||Your authorization flow must provide your customer with a method to revoke authorization by notifying you, so be sure to include a telephone number and/or e-mail address where your customer can contact you. You should display this information on the authorization page and receipt/confirmation sent to the customer after the transaction has been completed.|
Obtaining the proper authorization for your ACH transaction is the most important step you can take to ensure compliance with the network rules and protect yourself against disputes, return fees, and reversed transactions.
While payments via credit and debit cards are typically reflected in your pending balance almost instantly, payments via ACH take 4-5 business days to process and be reflected in your pending balance. Payments made with Stripe have a $20,000 USD limit per transaction and are labeled with ACH type WEB for payments from individuals and CCD for payments from businesses.
Some ACH users may see a lower limit of $1,000 USD while they establish their account history with Stripe. If you are interested in receiving ACH payments larger than $20,000 USD contact us.
ACH refunds must be initiated within 90 days after the original payment. Similar to the delays introduced to payments with ACH, refunds will also require additional time to process—typically 4-5 business days. When refunding an ACH payment, any Stripe fees are also refunded to you.
A refund can only be processed after the payment process has completed. For example, if a refund is initiated immediately after a payment is made, there will be a 4-5 business day delay before the refund transfer process begins.
The ACH terminology doesn’t actually support labeling a return transfer specifically as a “refund” so refunds made on ACH payments are processed as credits and labeled with type PPD for individual customers and CCD for business customers.
Partial refunds on ACH payments are not possible using your Stripe dashboard but can be processed through the API. When partially refunding an ACH payment, there is no proportional refund of Stripe fees. A full refund must be processed to receive a refund for fees.
Unlike credit and debit card payments, ACH disputes cannot be contested, though they are more difficult for customers to initiate. In addition, retrieval of funds is also affected by the 7 day settlement time period that comes with ACH transfers.
Unlike credit and debit payments, where your customer can dispute a charge simply by clicking a button in their online account, in order to dispute an ACH payment, your customer must inform their bank in writing within 60 days of the original payment.
There are basically only three reasons allowed by the banks for your customer to dispute an ACH payment:
- The transaction was never authorized by your customer or their authorization was revoked
- The transaction was processed on a date earlier than authorized (any date after is OK)
- The transaction is for an amount different than they authorized
Due to longer settlement time periods and the nature of how banks process ACH transactions, there’s potential for confusion between you, your customer, your customer’s bank, and Stripe. For instance, your customer may contact both you and their bank to dispute a charge. If you proactively issue your customer a refund while the customer’s bank also initiates the dispute process, your customer could end up receiving two credits for the same transaction.
Because of this, when issuing a refund, it’s important to let your customer know immediately and inform them that it may take up to 2-5 business days for the refund to appear in their bank account.