Bank Debits
Learn how to accept bank debits with Stripe.
With bank debits, you can pull funds directly from your customer’s bank account for both one-time and recurring purchases. Bank debits are often used by:
- Businesses collecting recurring payments from other businesses.
- Retail and services businesses that want a low-cost alternative to cards for large consumer payments, like rent or tuition.
Bank debits might not be a good fit for your business if:
- You deliver goods immediately after checkout because payment confirmation takes several business days.
- Your business is sensitive to disputes—consider other payment methods because some bank debit methods favor the customer during disputes.
Payment flow
To initiate a bank debit, a customer enters their bank account details during checkout and gives you permission to debit the account. This permission is called a mandate.
To reduce fraud with some bank debits, verify the bank account before the payment by confirming microdeposits or bank login. Verifying bank login can improve the user experience because customers pay by logging into their bank rather than entering bank account details.
Product support
You can use a single integration for all bank debits that works across Stripe products. With Stripe Checkout, Payment Element, and Payment Links, you can enable bank debits directly from the Dashboard with no integration work.
1 You can’t use the Payment Element to create SetupIntents for Bacs Direct Debit. Use Checkout in setup mode instead. 2 Not supported when using Checkout in subscription mode. 3 Not supported when collecting payment details before creating a PaymentIntent. 4 Not supported when using Elements with the Checkout Sessions API.
Contact us to request a new bank debit method.
API support
| Payment method | API enum | PaymentIntents | SetupIntents | Manual capture | Setup future usage 1 | Requires redirect 2 |
|---|---|---|---|---|---|---|
| ACH Direct Debit | us_bank_account | No | ||||
| Bacs Direct debit | bacs_debit | 3 | 4 | No | ||
| Australia the related setting Direct Debit | au_becs_debit | No | ||||
| New Zealand the related setting Direct Debit | nz_bank_account | No | ||||
| Pre-authorized debit in Canada 5 | acss_debit | No | ||||
| the related setting debit | sepa_debit | No |
1 Cards and bank debit methods including the related setting debit, AU the related setting direct debit, and the related setting debit support both on_session and off_session with setup future usage. All other payment method types either don’t support setup_future_usage or only support off_session. 2 Payment methods might require confirmation with return_url to indicate where Stripe should redirect your customer after they complete the payment. 3 PaymentIntents support confirmation with Bacs Direct Debit payment methods when the Mandate has been collected by a Stripe-owned flow such as Checkout, Payment Element, and Payment Links. 4 You can create SetupIntents for Bacs Direct Debit through Checkout using setup mode. 5 Pre-authorized debit in Canada doesn’t support the deferred intent creation integration path.
Migrating from the Sources, Tokens, or Charges APIs
If your current bank debit integration uses the Sources, Tokens, or Bank Accounts API, we recommend following the appropriate migration guide to transition to Payment Intents API:
- ACH migration guide
- For all other bank debit payment methods, follow the general migration guide
