Migrate existing bank accounts
Learn how to migrate existing bank accounts to the Payment Intents API or Checkout Sessions API.
Stripe will soon remove support for ACH Direct Debit on the Charges API. If you create ACH Direct Debit payments using the Charges API through the API, Invoices, or Subscriptions, you must migrate to the Payment Intents API or Checkout Sessions API. Before we formally remove support, we’ll email you with more details.
If you previously collected customer payment details with Stripe using the Tokens API, you can continue using the saved BankAccount as a PaymentMethod. You can only use customer bank accounts with the Payment Intents API or Checkout Sessions API after you meet the following requirements:
Checkout Sessions API: The customer’s bank account has been verified.
Payment Intents API: The customer’s bank account has been verified, and an active mandate exists for that bank account.
Use Checkout Sessions
To display previously saved and verified bank accounts in Checkout, you need to:
- Create a Checkout Session with a
customerparameter - Set the filters to
['unspecified', 'limited', 'always'] - Specify
us_inbank_ account payment_method_ types
When these requirements are met, Checkout automatically finds and displays all saved, verified bank accounts associated with that customer, eliminating the need to recollect payment details.
If the customer has an email attached, the customer’s email is prefilled in the Session and cannot be modified. You must check for an email and render your email input field accordingly.
Invoices
After you collect mandate acknowledgment, you must either update your customer’s default payment method or set the default_ parameter to use ACH on PaymentIntent objects with Invoicing.
To update a customer’s default payment method:
To create an invoice with a bank account as a payment method:
Retrieve a BankAccount as a PaymentMethod
You can retrieve saved BankAccounts through the Payment Methods API:
When using a BankAccount as a PaymentMethod, no new objects are created. The Payment Methods API simply provides a different view of the same underlying object.