Migration des ACH Direct Debit depuis Charges vers les API plus récents.
Découvrez pourquoi et comment migrer depuis l'API Charges.
Stripe is removing support for ACH Direct Debit using legacy integrations.
If you create legacy ACH Direct Debit payments, you must migrate to the Payment Intents API or Checkout Sessions API.
Feature comparison
Stripe’s new APIs offer features that aren’t available in legacy integrations:
| Fonctionnalité | Legacy Integrations | API Payment Intents ou API Checkout Sessions |
|---|---|---|
| Services de support pour Checkout | Non | Oui |
| Service de support pour Payment Element | Non | Oui |
| Services de support dynamique pour les moyens de paiement | Non | Oui |
| Vitesse de règlement | T+6 | T+4 (T+2 en cas de virement des fonds accéléré) |
| Vérification instantanée des comptes bancaires | Uniquement disponible via des intégrations personnalisées tierces | Vérification instantanée avec Financial Connections |
| Fraud prevention | Non |
|
| Pays pris en charge | États-Unis | États-Unis, UE et Royaume-Uni |
Comparez les API Checkout Sessions et Payment Intents
Stripe offers two new APIs to accept ACH Direct Debits payments: Payment Intents and Checkout Sessions APIs.
API Checkout Sessions : prend en charge les flux de paiement courants avec des fonctionnalités intégrées qui éliminent le besoin de code personnalisé. Cet API est recommandé pour la plupart des développeurs.
API Payment Intents : une API de bas niveau pour construire votre propre flux de paiement. Elle nécessite beaucoup plus de code et une maintenance continue. Nous recommandons Checkout Sessions pour la plupart des intégrations.
En savoir plus sur les différences et comment évaluer quelle solution vous convient le mieux.
Créer une intégration ACH Direct Debit
Pour créer une intégration ACH Direct Debit avec Payment Intents ou Checkout Sessions :
Activez ACH Direct Debit dans vos paramètres de moyens de paiement.
Pour collecter et utiliser de nouveaux moyens de paiement, intégrez-vous avec ACH on Payment Intents or Checkout Sessions.
For bank accounts previously collected using the Tokens API, you can continue to use saved
BankAccountobjects asPaymentMethodobjects with the Payment Intents API. For details, see Migrate existing bank accounts.Migrez progressivement tous les paiements utilisant des comptes bancaires existants vers l’API Payment Intents ou Checkout Sessions.
Remove your legacy integration.
Behavioral differences
Some features that exist in both APIs work differently. If you rely on any of the following behaviors, update your integration accordingly.
| Behavior | Legacy Integrations | Payment Intents or Checkout Sessions API |
|---|---|---|
| Mandates | Not enforced by the API. |
|
| Balance transactions |
|
|
| Type de solde | Funds settle in source_. |
|
| Microdépôts |
|
|
| Emails | Stripe doesn’t send automatic emails. |
|
Webhook differences
If you previously listened to Charge events, you might need to update your integration to listen to new event types. The following table shows how webhook events differ.
| Old webhook | New webhook on Checkout | New webhook on Payment Intents | Special instructions |
|---|---|---|---|
charge. | payment_ | payment_ | In legacy integrations, charge. includes balance transaction. In new integrations, the balance transaction isn’t available until the charge. event. |
charge. | charge. | charge. | Sent when the payment is submitted to the banking partner. Includes the balance transaction. |
charge. | checkout. | payment_ | Le webhook charge. est également envoyé, vous n’avez donc pas besoin de mettre à jour votre intégration pour écouter le nouveau webhook. |
charge. | Not applicable. The customer can re-attempt the payment on the same Checkout Session until it expires, at which point you receive a checkout. event. | payment_ | Le webhook charge. est également envoyé, vous n’avez donc pas besoin de mettre à jour votre intégration pour écouter le nouveau webhook. |
charge. | charge. | charge. | Not applicable |
| Not applicable | mandate. | mandate. | Sent when a mandate becomes inactive. |
Identify Legacy ACH Payments
On a Charge object, the payment_ property is ach_ for the legacy integration and us_ for the newer integration.
A legacy ACH payment is created when a legacy BankAccount is the payment source. This happens when:
- You call the Create Charge API.
- A Subscription or Invoice charges a customer whose
default_is a legacy BankAccount, and nosource default_is set on the customer, subscription, or invoice.payment_ method - You call the Create PaymentIntent API with
sourceset to a legacy BankAccount.