Migrating from the Charges API
If you previously collected customer payment details with Stripe using the Bank Accounts API, you can continue using the saved BankAccount
as a PaymentMethod. You can use customer bank accounts with the Payment Intents API after you meet the following requirements:
- The customer’s bank account has been verified.
- An active mandate exists for that bank account.
Compatibility with the Bank Accounts API
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. This eliminates the need to recollect payment details. However, make sure that you also update your integration to begin creating PaymentMethods instead.
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. Learn more about SEC codes to understand which authorization type is right for your business.
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 can use both the IP address and user agent information to create a mandate object.
- If you previously collected payment and mandate information offline on paper, you can create a PPD mandate.
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.