Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Overview
Payment method integration options
Bank debits
ACH Direct Debit
Bacs Direct Debit
Pre-authorized debit in Canada
BECS Direct Debit in Australia
SEPA Direct Debit
Bank redirects
Bank transfers
Buy now, pay later
Credit transfers (Sources)
Real-time payments
Vouchers
Wallets
Testing
HomePayments

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 experience

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.

Flow chart of the three step process the customer experiences. First, they select bank debit at checkout. Next the customer provides banking details and authorizes mandate. Finally, the customer gets notification that the payment is complete.

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 right from the Dashboard with no integration work.

Payment method Customer country PaymentIntents Checkout Invoicing Connect Subscriptions Payment Element Payment Links Mobile Payment Element
ACH Direct DebitUS
Bacs Direct DebitUK
BECS DebitAU
Pre-authorized debit in CanadaCA
SEPA Direct DebitEU

Contact us to request a new bank debit method.

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
Was this page helpful?
Questions? Contact us.
Watch our developer tutorials.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
Stripe Shell
Test mode
▗▄ ▄▟█ █▀▀ ▗▟████▙▖ ██████ ███▗▟█ ███ ███▗▟██▙▖ ▗▟█████▙▖ ███▖ ▀▀ ███ ███▀▀▀ ███ ███▀ ███ ███ ███ ▝▜████▙▖ ███ ███ ███ ███ ███ █████████ ▄▄ ▝███ ███ ▄ ███ ███ ███▄ ███ ███ ▄▄ ▝▜████▛▘ ▝▜███▛ ███ ███ ███▝▜██▛▘ ▝▜█████▛▘ ███ ▀▘
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to Stripe docs and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$