Bank transfers provide a safe way for customers to send money over bank rails. When accepting bank transfers with Stripe, you provide customers with a virtual bank account number that they can push money to from their own online bank interface or in-person bank branch. This virtual account number is used to automate reconciliation and prevent exposing your real account details to customers.
Unlike most payment methods, bank transfers don’t allow you to control the amount a customer sends to you. Unfortunately, this means that customers may send too much or too little money by accident. To help you manage common over- and under-payment issues, Stripe holds your customer’s bank transfers in a Customer Balance that you can reconcile payments from, for a period of up to 90 days (60 days in Japan). This makes it easier to track how much your customers owe, regardless of how much or how often they send funds. For more information about how Customer Balance can and can’t be used, see Customer Balance.
To accept a bank transfer, create a bank transfer account in the Payment Methods section on the Customer page of your Stripe Dashboard. Or, create a payment from the customer balance with the Funding Method set to Bank Transfers. If your customer has enough funds for the payment, the payment immediately succeeds. Otherwise, Stripe applies any existing balance to the payment and funding instructions are returned on the PaymentIntent. When your customer sends funds to the bank account shown, Stripe automatically applies funds to the PaymentIntent.
We’re expanding bank transfers support to more regions. Contact us through Stripe Support to request a new bank transfer method on Payment Intents or join one of the betas:
- ACH bank transfers
To automatically add bank transfer instructions to your invoices, and allow Stripe to reconcile your customer’s payments for you, follow these instructions.
Stripe Billing allows you to collect recurring payments with bank transfers. You can use this guide to set up subscriptions with bank transfers as a payment method.
You can use the Funding Instructions API if you need to show bank account details to your customer before they make their first payment, like when they create their account.
It’s possible to refund customer balance payments:
- directly to the customer’s bank account, or
- back to the customer’s cash balance, where the refund can be used towards another customer balance payment.
In order to refund to the customer’s bank account, Stripe requires the customer’s bank account details. In some cases, Stripe receives these details when the customer transfers funds. When these details aren’t available, Stripe will send an email to the customer to collect bank account details and initiate a transfer once those details are received.
If your customer has excess funds in their customer balance, you can also initiate a return of funds through the Dashboard.
For more information about refunds and the customer balance payment method, see Refund bank transfer payments.
The on_behalf_of attribute isn’t supported.
Accepting bank transfer payments as the connected account
Direct charges require the connected account itself (not the platform) to have activated the bank transfers payment method—Connect platforms can use the bank_transfer_payments capability to determine whether this is the case for a connected account. Standard Connect accounts can request the capability from their Stripe Dashboard.
The process varies by country, but in general for bank transfer payments, the required information is the same as what is necessary to activate a Stripe account for payments. If the account doesn’t fulfill all the required information, the capability remains
inactive with any issues highlighted on the capability object in the
requirements.disabled_reason fields until these issues have been addressed. After all the highlighted issues are resolved, the capability’s
status changes to
active, unless there are issues activating the account in general, in which case Stripe will contact the Connect platform owner over email.
Stripe can’t accept payments for certain types of businesses. In addition to the Restricted Business list, Stripe doesn’t support bank transfers if your business falls into any of the following categories: