Migrating ACH Direct Debit from Charges to newer APIs
Learn why and how to migrate from the Charges 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.
Reasons to migrate
ACH Direct Debit on Stripe’s newer APIs offers the following improvements:
- Support for prebuilt payment UIs, including Stripe Checkout and Payment Element.
- Stripe Checkout and Payment Element support.
- Faster settlement options, cross-border capabilities, and built-in instant bank verification.
- Advanced fraud prevention.
- Unified reporting and payouts
API differences
The following compares Stripe’s newer APIs and the Charges API:
| Feature | Charges API | Payment Intents API or Checkout Sessions API |
|---|---|---|
| Checkout support | No | Yes |
| Payment Element support | No | Yes |
| Dynamic payment method support | No | Yes |
| Settlement speed | T+6 | T+4 (T+2 when using faster settlement) |
| Instant bank account verification | Only available through custom, third-party integrations | Instant verification with Financial Connections |
| Microdeposits | Two microdeposits made up of random, small amounts for verification | One cent microdeposit with a descriptor code or two microdeposits made up of random, small amounts for verification |
| Fraud Prevention | No |
|
| Mandate collection and storage | Outside of Stripe | Within Stripe |
| Supported countries | US | US, EU, and UK |
| Balance type | Bank account (source_) | ACH payments share the same balance type as cards and other payment methods (source_) |
Compare the Checkout Sessions and Payment Intents APIs
Stripe offers two newer APIs to accept ACH Direct Debits payments: Payment Intents and Checkout Sessions APIs.
Checkout Sessions API: Supports common checkout workflows with built-in features that remove the need for custom code and is recommended for most developers.
Payment Intents API: Lets you use custom code for more granular control over the checkout process, but requires more integration code and maintenance.
Learn more about the differences, and how to evaluate which is right for you.
Build an ACH Direct Debit integration
To build an ACH Direct Debit integration on PaymentIntents:
Enable ACH Direct Debit in your Payment methods settings.
To collect and use new payment methods, integrate with ACH on Payment Intents.
For bank accounts previously collected using the Tokens API, you can continue to use saved
BankAccountobjects asPaymentMethodobjects with the Payment Intents API. To learn more, see Migrate existing bank accounts from the Charges API.Gradually migrate all payments using existing bank accounts to the Payment Intents API.
Remove your integration with the Charges API.