If you have previously collected customer payment details with Stripe using the Bank Accounts API, you can start using the Payment Intents API immediately without migrating any payment information for ACH Direct Debit. Using customer bank accounts with PaymentIntents is a two-step process:
- Create a payment with a verified bank account.
- Collect authorization to debit the customer’s bank account via a mandate.
Create a PaymentIntent with a Bank Account
Bank Accounts that are already verified and have been attached to a Customer are usable in any API that accepts a
PaymentMethod object. You can use a saved
BankAccount as a PaymentMethod when creating a PaymentIntent.
Similarly, you can use a saved BankAccount as a PaymentMethod when creating a SetupIntent.
Collect mandate acknowledgement
Confirming a PaymentIntent or SetupIntent requires having your customer authorize a mandate to debit the account.
In some cases, you might have pre-authorization from your customer from an earlier purchase or SetupIntent that you can use to create an off-session payment. For example:
- If you previously collected an online mandate from the customer, you might have a timestamp, an IP address, or user agent information for them. You can use that information to create a mandate object.
- If you previously collected payment and mandate information offline (on the phone or in person), you can create a mandate with offline acceptance.
To create an off-session payment, you can use offline mandate acceptance to provide a record of your customer’s original authorization.
Authorization is only required the first time you use a
BankAccount object with the PaymentIntents API. After that, you can use the
BankAccount object as a PaymentMethod to accept future payments.
Retrieving 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.