ACH-Lastschriftzahlungen annehmen
Erstellen Sie ein nutzerspezifisches Zahlungsformular für die Verwendung mit Stripe Checkout, um Zahlungen per ACH-Lastschrift anzunehmen.
Vorsicht
Stripe passt die den Kundinnen/Kunden angezeigten Zahlungsmethoden automatisch an Währung, geltende Einschränkungen und andere Parameter an. Wir empfehlen Ihnen, Ihre Zahlungsmethoden im Dashboard zu konfigurieren und sich dabei an dem Artikel Zahlungen annehmen zu orientieren.
Wenn Sie die Zahlungsmethoden, die Sie Ihren Kundinnen und Kunden in Checkout anbieten, weiterhin manuell konfigurieren möchten, verwenden Sie bitte diese Anleitung. Andernfalls aktualisieren Sie Ihre Integration, um Zahlungsmethoden im Dashboard zu konfigurieren.
Stripe-Nutzer/innen in den USA können Checkout im Zahlungsmodus verwenden, um Zahlungen per ACH Direct Debit zu akzeptieren.
Eine Checkout-Sitzung repräsentiert die Details der Kaufabsicht Ihres Kunden/Ihrer Kundin. Sie erstellen eine Sitzung, wenn Ihr Kunde/Ihre Kundin für etwas bezahlen möchte. Nachdem Ihre Kundinnen/Kunden zu einer Checkout-Sitzung weitergeleitet wurden, zeigt Stripe ein Zahlungsformular an, von dem aus sie ihren Kauf abschließen können. Nachdem Ihre Kundinnen/Kunden einen Kauf abgeschlossen haben, werden sie wieder auf Ihre Website zurückgeleitet.
Mit Checkout können Sie eine Checkout-Sitzung mit us_
als Zahlungsmethode erstellen, um alle Zahlungsstatus bis zum Abschluss der Zahlung zu verfolgen und zu verarbeiten.
Notiz
Beim ACH-Lastschriftverfahren handelt es sich um eine Zahlungsmethode mit verzögerter Benachrichtigung. Dies bedeutet, dass Gelder nicht sofort nach der Zahlung verfügbar sind. Eine Zahlung benötigt in der Regel 4 Werktage bis zum Eingang auf Ihrem Konto.
Kompatibilität bestimmen
Um ACH Direct Debit-Zahlungen zu unterstützen, stellen Sie sicher, dass Sie die Preise für alle Posten in US-Dollar ausdrücken (Währungscode usd
).
Kundinnen/Kunden erstellen oder abrufenEmpfohlenServerseitig
Erstellen Sie ein Kundenobjekt, wenn Ihr/e Nutzer/in ein Konto bei Ihrem Unternehmen erstellt, oder rufen Sie einen bestehenden Kunden/eine bestehende Kundin ab, der/die diesem Nutzer/dieser Nutzerin zugeordnet ist. Wenn Sie die ID des Kundenobjekts mit Ihrer eigenen Darstellung eines Kunden/einer Kundin verknüpfen, können Sie die gespeicherten Angaben zur Zahlungsmethode später abrufen und verwenden. Geben Sie eine E-Mail-Adresse an, um die Optimierung für wiederkehrende Nutzer/innen von Financial Connections zu aktivieren.
Zahlung annehmen
Notiz
Erstellen Sie eine Integration, um eine Zahlung mit Checkout zu akzeptieren, bevor Sie diesen Leitfaden verwenden.
Diese Leitfäden führen Sie durch die Aktivierung des ACH Direct Debit und zeigen die Unterschiede zwischen der Annahme einer Kartenzahlung und der Verwendung dieser Zahlungsmethode.
ACH Direct Debit als Zahlungsmethode aktivieren
Führen Sie bei der Erstellung einer neuen Checkout-Sitzung folgende Schritte aus:
- Fügen Sie
us_
zur Liste derbank_ account payment_
hinzu.method_ types - Stellen Sie sicher, dass alle Ihre
line_
die Währungitems usd
verwenden.
Bei der Erfassung von Zahlungsinformationen für Bankkonten wird standardmäßig Financial Connections verwendet, um das Konto Ihres Kunden/Ihrer Kundin sofort zu verifizieren, mit einer Ausweichoption für die manuelle Eingabe der Kontonummer und die Verifizierung von Testeinzahlungen. In der Financial Connections-Dokumentation erfahren Sie, wie Sie Financial Connections konfigurieren und auf zusätzliche Kontodaten zugreifen, um Ihre ACH-Integration zu optimieren. Beispielsweise können Sie Financial Connections verwenden, um den Kontostand zu prüfen, bevor Sie die ACH-Zahlung veranlassen.
Notiz
Um den Zugriff auf zusätzliche Daten auszudehnen, nachdem ein/e Kund/in sein/ihr Konto authentifiziert hat, muss er/sie das Konto mit erweiterten Berechtigungen erneut verknüpfen.
Wenn der/die Kund/in sich für die Verifizierung der Testeinzahlung statt Financial Connections entscheidet, sendet Stripe automatisch zwei kleine Einzahlungen auf das angegebene Bankkonto. Es kann 1-2 Werktage dauern, bis diese Einzahlungen auf dem Online-Auszug des Kunden/der Kundin erscheinen. Wenn das Eintreffen der Einzahlungen erwartet wird, erhält der/die Kund/in eine E-Mail mit einem Link, um diese Beträge zu bestätigen und das Bankkonto bei Stripe zu verifizieren. Nach abgeschlossener Verifizierung, wird mit der Verarbeitung der Zahlung begonnen.
Wir empfehlen, den Parameter payment_intent_data.setup_future_usage mit dem Wert off_
aufzunehmen, wenn Sie eine Zahlungsmodus-Sitzung für ACH-Lastschriftverfahren erstellen, damit Sie Details zur Zahlungsmethode speichern können.
Wickeln Sie Ihre Bestellungen ab
Informieren Sie sich über die Ausführung von Bestellungen, nachdem Sie eine Zahlung ausgeführt haben.
Integration testen
Erfahren Sie, wie Sie Szenarien mit sofortigen Verifizierungen mithilfe von Financial Connections testen können.
Transaktions-E-Mails in einer Sandbox senden
Nachdem Sie die Bankkontodetails erfasst und ein Mandat akzeptiert haben, senden Sie die Mandatsbestätigung und die Verifizierungs-E-Mails mit Testeinzahlungen in einer Sandbox.
Wenn Ihre Domain {domain} und Ihr Nutzername {username} ist, verwenden Sie das folgende E-Mail-Format, um E-Mails für Testtransaktionen zu senden: {username}+test_email@{domain}.
Wenn Ihre Domain beispielsweise example.com und Ihr Nutzername Info lautet, verwenden Sie zum Testen von ACH Direct Debit-Zahlungen das Format info+test_email@example.com. Dieses Format stellt sicher, dass E-Mails korrekt weitergeleitet werden. Wenn Sie das Suffix +test_email nicht angeben, senden wir die E-Mail nicht.
Häufiger Fehler
Sie müssen Ihr Stripe-Konto aktivieren, bevor Sie diese E-Mails beim Testen auslösen können.
Testkontonummern
Stripe stellt mehrere Testkontonummern und dazugehörige Token zur Verfügung, um sicherzustellen, dass Ihre Integration für Bankkonten mit manueller Eingabe für den Einsatz in einer Produktionsumgebung bereit ist.
Kontonummer | Token | Bankleitzahl | Verhalten |
---|---|---|---|
000123456789 | pm_ | 110000000 | Die Zahlung ist erfolgreich. |
000111111113 | pm_ | 110000000 | Die Zahlung schlägt fehl, weil das Konto geschlossen ist. |
000000004954 | pm_ | 110000000 | Die Zahlung wird von Radar aufgrund eines hohen Betrugsrisikos blockiert. |
000111111116 | pm_ | 110000000 | Die Zahlung schlägt fehl, weil kein Konto gefunden wird. |
000222222227 | pm_ | 110000000 | Die Zahlung schlägt aufgrund unzureichender Deckung fehl. |
000333333335 | pm_ | 110000000 | Die Zahlung schlägt fehl, weil die Lastschriften nicht autorisiert sind. |
000444444440 | pm_ | 110000000 | Die Zahlung schlägt aufgrund einer ungültigen Währung fehl. |
000666666661 | pm_ | 110000000 | Die Zahlung sendet keine Testeinzahlungen. |
000555555559 | pm_ | 110000000 | Die Zahlung löst eine Zahlungsanfechtung aus. |
000000000009 | pm_ | 110000000 | Die Zahlung bleibt auf unbestimmte Zeit in Bearbeitung. Dies ist hilfreich beim Testen von PaymentIntent-Stornierungen. |
000777777771 | pm_ | 110000000 | Die Zahlung schlägt aufgrund des Zahlungsbetrags fehl, wodurch das Konto sein wöchentliches Zahlungsvolumenlimit überschreitet. |
Bevor Testtransaktionen abgeschlossen werden können, müssen Sie alle Testkonten verifizieren, auf denen die Zahlung automatisch erfolgreich war oder fehlschlagen ist. Verwenden Sie dazu die nachstehenden Test-Mikroeinzahlungsbeträge oder Beschreibungscodes.
Testen von Mikroeinzahlungen und Beschreibungscodes
Um verschiedene Szenarien zu imitieren, verwenden Sie diese Mikroeinzahlungsbeträge oder 0,01 Beschreibungscodewerte.
Testeinzahlungswerte | 0.01 Beschreibungscodewerte | Szenario |
---|---|---|
32 und 45 | SM11AA | Simuliert die Verifizierung des Kontos. |
10 und 11 | SM33CC | Simuliert das Überschreiten der Anzahl zulässiger Verifizierungsversuche. |
40 und 41 | SM44DD | Simuliert ein Testeinzahlungs-Timeout. |
Abwicklungsverhalten testen
Testtransaktionen werden sofort abgewickelt und Ihrem verfügbaren Testguthaben hinzugefügt. Dieses Verhalten unterscheidet sich vom Live-Modus, bei dem es mehrere Tage dauern kann, bis Transaktionen Ihrem verfügbaren Guthaben gutgeschrieben werden.
Zusätzliche Überlegungen
Fehlschlagen der Verifizierung einer Testeinzahlung
Wenn die Verifizierung eines Bankkontos mittels Testeinzahlungen noch aussteht, kann die Verifizierung durch die Kundin/den Kunden aus drei Gründen fehlschlagen:
- Die Testeinzahlungen haben das Kundenbankkonto nicht erreicht. (Dies weist in der Regel auf ein geschlossenes/nicht verfügbares Bankkonto oder eine falsche Kontonummer hin).
- Die Verifizierungsversuche des Kontos durch die Kundin/den Kunden sind 10 mal fehlgeschlagen. Wird diese Grenze überschritten, kann das Bankkonto nicht mehr verifiziert oder erneut verwendet werden.
- Die Kundin/der Kunde hat das Bankkonto nicht innerhalb der Frist von 10 Tagen verifiziert.
Wenn die Verifizierung des Bankkontos aus einem der genannten Gründe fehlschlägt, können Sie das Ereignis checkout.
verarbeiten, um den Kunden/die Kundin zum Aufgeben einer neuen Bestellung aufzufordern.
OptionalNur Sofortverifizierung
Standardmäßig können Ihre Kund/innen bei Verwendung von ACH-Lastschriftzahlungen die sofortige Bankkontoverifizierung oder Testeinzahlungen nutzen. Optional können Sie die sofortige Verifizierung des Bankkontos nur mit dem Parameter payment_
verlangen, wenn Sie die Checkout-Sitzung erstellen.
OptionalAuf Daten für ein Financial Connections-Bankkonto zugreifen
Sie können nur dann auf Financial Connections-Daten zugreifen, wenn Sie beim Erstellen Ihres/Ihrer PaymentIntent zusätzliche Datenberechtigungen anfordern.
Nachdem Ihre Kundinnen und Kunden den Bezahlvorgang erfolgreich abgeschlossen haben, enthält die zurückgegebene PaymentMethod us_
eine financial_connections_account-ID, die auf ein Financial Connections-Konto verweist. Verwenden Sie diese ID, um auf Kontodaten zuzugreifen.
Häufiger Fehler
Bankkonten, die Ihre Kunden/Kundinnen durch manuelle Eingabe verknüpfen, und Testeinzahlungen haben keine financial_
auf der Zahlungsmethode.
Um die Financial Connections-Konto-ID zu ermitteln, rufen Sie die Checkout-Sitzung ab und erweitern Sie das Attribut payment_
:
{ "id": "{{CHECKOUT_SESSION_ID}}", "object": "checkout.session", // ... "payment_intent": { "id": "{{PAYMENT_INTENT_ID}}", "object": "payment_intent", // ... "payment_method": { "id": "{{PAYMENT_METHOD_ID}}", // ... "type": "us_bank_account", "us_bank_account": { "account_holder_type": "individual", "account_type": "checking", "bank_name": "TEST BANK", "financial_connections_account": "{{FINANCIAL_CONNECTIONS_ACCOUNT_ID}}", "fingerprint": "q9qchffggRjlX2tb", "last4": "6789", "routing_number": "110000000" } } // ... } }
Erfahren Sie mehr über die Verwendung zusätzlicher Kontodaten zur Optimierung Ihrer ACH-Integration mit Financial Connections.
OptionalZahlungsanfechtungen beilegenServerseitig
Kundinnen/Kunden fechten eine ACH-Lastschriftahlung im Allgemeinen über ihre Bank an. Dies geschieht in der Regel bis zu 60 Kalendertage nach einer Abbuchung auf einem Privatkonto oder bis zu 2 Werktage bei einem Geschäftskonto. In seltenen Fällen können Kundinnen und Kunden die Lastschriftzahlung auch außerhalb dieser Fristen erfolgreich anfechten.
Wenn Kundinnen/Kunden eine Zahlung anfechten, sendet Stripe das Webhook-Ereignis charge.dispute.closed, und die PaymentMethod-Autorisierung wird widerrufen.
In seltenen Fällen erhält Stripe möglicherweise einen ACH-Fehler von der Bank, nachdem ein PaymentIntent in den Status succeeded
gewechselt ist. In diesem Fall erstellt Stripe eine Zahlungsanfechtung mit folgendem reason
:
insufficient_
funds incorrect_
account_ details bank_
can't_ process
Stripe erhebt in diesem Fall eine Fehlergebühr.
Zukünftige Zahlungen, die diese PaymentMethod wiederverwenden, geben den folgenden Fehler zurück:
{ "error": { "message": "This PaymentIntent requires a mandate, but no existing mandate was found. Collect mandate acceptance from the customer and try again, providing acceptance data in the mandate_data parameter.", "payment_intent": { ... } "type": "invalid_request_error" } }
Dieser Fehler enthält einen PaymentIntent im Status requires_
. Um mit der Zahlung fortzufahren, müssen Sie:
- Legen Sie die Zahlungsanfechtung mit dem Kunden/der Kundin bei, um sicherzustellen, dass zukünftige Zahlungen nicht angefochten werden.
- Bestätigen Sie die Autorisierung Ihres Kunden/Ihrer Kundin erneut.
Um die Autorisierung der Zahlung zu bestätigen, können Sie mit Stripe.js online eine Mandatsbestätigung von Ihrem Kunden/Ihrer Kundin einholen oder die Autorisierung mit Ihrem Kunden/Ihrer Kundin offline über die Stripe API bestätigen.
Vorsicht
Wenn ein/e Kund/in mehr als eine Zahlung von demselben Bankkonto anficht, sperrt Stripe sein/ihr Bankkonto. Wenden Sie sich an den Stripe-Support, um zusätzliche Hilfe zu erhalten.
OptionalZahlungsreferenz
Die Zahlungsreferenznummer ist ein von der Bank generierter Wert, mit dem der/die Kontoinhaber/in Gelder bei seiner/ihrer Bank finden kann. Wenn die Zahlung erfolgreich ist, gibt Stripe die Zahlungsreferenznummer im Dashboard und im Zahlungsobjekt an.
Status der Abbuchung | Zahlungsreferenzwert |
---|---|
Ausstehend | Nicht verfügbar |
Fehlgeschlagen | Nicht verfügbar |
Erfolgreich | Verfügbar (zum Beispiel 091000015001234) |
Wenn Sie den Webhook charge.
erhalten, zeigen Sie außerdem den Inhalt von payment_
an, um die payment_reference zu finden.
Das folgende Beispielereignis zeigt das Rendern einer erfolgreichen ACH-Zahlung mit einer Zahlungsreferenznummer.
{ "id": "{{EVENT_ID}}", "object": "event", // omitted some fields in the example "type": "charge.succeeded", "data": { "object": { "id": "{{PAYMENT_ID}}", "object": "charge", //... "paid": true, "payment_intent": "{{PAYMENT_INTENT_ID}}", "payment_method": "{{PAYMENT_METHOD_ID}}", "payment_method_details": { "type": "us_bank_account", "us_bank_account": { "account_holder_type": "individual", "account_type": "checking", "bank_name": "TEST BANK", "fingerprint": "Ih3foEnRvLXShyfB", "last4": "1000", "payment_reference": "091000015001234", "routing_number": "110000000" } } // ... } } }
Zeigen Sie den Inhalt der destination_
an, um die Rückerstattungsreferenz zu finden, die den erstatteten ACH-Zahlungen zugeordnet ist.
Das folgende Beispielereignis zeigt das Rendering einer erfolgreichen ACH-Rückerstattung mit einer Rückerstattungsreferenznummer. Weitere Informationen zu Rückerstattungen.
{ "id": "{{EVENT_ID}}", "object": "event", "type": "charge.refund.updated", "data": { "object": { "id": "{{REFUND_ID}}", "object": "refund", //... "payment_intent": "{{PAYMENT_INTENT_ID}}", "destination_details": { "type": "us_bank_transfer", "us_bank_transfer": { "reference": "091000015001111", "reference_status": "available" } } // ... } } }
OptionalAbbuchungsdatum für Kunde/Kundin konfigurierenServerseitig
Das Datum, an dem Stripe das Bankkonto eines Kunden/einer Kundin belastet, können Sie über das Zieldatum steuern. Das Zieldatum muss mindestens drei Tage in der Zukunft und nicht mehr als 15 Tage ab dem aktuellen Datum liegen.
Mit dem Zieldatum wird geplant, dass das Geld das Konto des Kunden/der Kundin zum Zieldatum verlässt. Sie können einen PaymentIntent, der mit einem Zieldatum erstellt wurde, bis zu drei Werktage vor dem konfigurierten Datum stornieren.
Wenn das Zieldatum eines der folgenden Kriterien erfüllt, wird die Abbuchung am nächsten verfügbaren Werktag durchgeführt:
- Das Zieldatum fällt auf ein Wochenende, einen Feiertag oder einen anderen arbeitsfreien Tag.
- Das Zieldatum liegt weniger als drei Werktage in der Zukunft.
Dieser Parameter wird auf Best-Effort-Basis ausgeführt. Es kann sein, dass die Bank jedes Kunden/jeder Kundin die Abbuchungen je nach örtlichen Feiertagen oder aus anderen Gründen zu unterschiedlichen Terminen vornimmt.
Vorsicht
Sie können die Verifizierungsmethode nicht auf microdeposits
festlegen, wenn Sie ein Zieldatum verwenden, da der Verifizierungsvorgang längern dauern könnte als vorgesehen (Zieldatum), sodass die Zahlungen später als erwartet eintreffen.