Migration von ACH Direct Debit von der Charges API zu neueren APIs
Warum Sie von der Charges API migrieren sollten und wie Sie dies tun.
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:
| Merkmal | Legacy Integrations | Payment Intents API oder Checkout Sessions API |
|---|---|---|
| Unterstützung für Checkout | Nein | Ja |
| Unterstützung für Payment Element | Nein | Ja |
| Unterstützung dynamischer Zahlungsmethoden | Nein | Ja |
| Abwicklungsgeschwindigkeit | T+6 | T+4 (T+2 bei schnellerer Zahlungsabwicklung) |
| Sofortige Verifizierung des Bankkontos | Nur über benutzerdefinierte, Drittanbieter-Integrationen verfügbar. | Sofortige Verifizierung mit Financial Connections |
| Fraud prevention | Nein |
|
| Unterstützte Länder | USA | USA, EU und Vereinigtes Königreich |
Vergleich der Checkout Sessions und Payment Intents APIs
Stripe offers two new APIs to accept ACH Direct Debits payments: Payment Intents and Checkout Sessions APIs.
Checkout Sessions API: Unterstützt gängige Bezahlvorgänge mit integrierten Funktionen, die benutzerdefinierten Code überflüssig machen und wird für die meisten Entwickler/innen empfohlen.
Payment Intents API: Eine Low-Level-API zum Erstellen eines eigenen Bezahlvorgangs. Sie erfordert deutlich mehr Code und fortlaufende Wartung. Für die meisten Integrationen empfehlen wir Checkout Sessions.
Erfahren Sie mehr über die Unterschiede und wie Sie bewerten, welche für Sie geeignet ist.
ACH Direct Debit-Integration aufbauen
So erstellen Sie eine ACH Direct Debit-Integration für Payment Intents oder Checkout Sessions:
Aktivieren Sie ACH Direct Debit in Ihren Einstellungen für Zahlungsmethoden.
Um neue Zahlungsmethoden einzuziehen und zu verwenden, integrieren Sie ACH über Payment Intents oder 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.Migrieren Sie schrittweise alle Zahlungen mit bestehenden Bankkonten zur Payment Intents API oder Checkout Sessions API.
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 |
|
|
| Guthabentyp | Funds settle in source_. |
|
| Testeinzahlungen |
|
|
| 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_ | Der Webhook charge. wird ebenfalls übermittelt, sodass Sie Ihre Integration nicht aktualisieren müssen, um den neuen Webhook zu überwachen. |
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_ | Der Webhook charge. wird ebenfalls übermittelt, sodass Sie Ihre Integration nicht aktualisieren müssen, um den neuen Webhook zu überwachen. |
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.