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 3-7 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 Supports ACSS debit if you create a PaymentIntent before rendering the Payment Element.
Contact us to request a new bank debit method.
API support
Payment method | API enum | PaymentIntents | SetupIntents | Manual capture | Setup future usage1 | Requires redirect2 |
---|---|---|---|---|---|---|
ACH Direct Debit | us_ | No | ||||
Bacs Direct debit | bacs_ | 3 | 4 | No | ||
BECS direct debit | au_ | No | ||||
Pre-authorized debit in Canada | acss_ | No | ||||
SEPA debit | sepa_ | No |
1 Cards and bank debit methods including SEPA debit, AU BECS direct debit, and ACSS debit support both on_
and off_
with setup future usage. All other payment method types either don’t support setup_
or only support off_
.
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.
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