Ein Abonnement per ACH Direct Debit einrichten
Erfahren Sie, wie Sie ein Abonnement mit US-Bankkonto erstellen und abrechnen.
Verwenden Sie diesen Leitfaden, um ein Abonnement mit ACH-Lastschriftverfahren einzurichten.
Notiz
Wenn Sie ein neuer Nutzer/eine neue Nutzerin sind, verwenden Sie das Payment Element, statt wie in diesem Leitfaden beschrieben Stripe Elements zu nutzen. Das Payment Element bietet einen Low-Code-Integrationspfad mit integrierten Konversionsoptimierungen. Eine Anleitung finden Sie unter Abonnement zusammenstellen.
Produkte stehen für den von Ihnen angebotenen Artikel oder Dienst. Preise geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten.
In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 USD berechnet werden. Um dies zu modellieren:
- Gehen Sie zur Seite Produkte und klicken Sie auf Produkt erstellen.
- Geben Sie einen Namen für das Produkt an. Sie können optional eine Beschreibung hinzufügen und ein Bild des Produkts hochladen.
- Wählen Sie einen Produktsteuercode aus. Erfahren Sie mehr über Produktsteuercodes.
- Wählen Sie Wiederkehrend aus. Geben Sie im Anschluss daran 15 für den Preis ein und wählen Sie USD als Währung aus.
- Wählen Sie, ob die Steuer im Preis berücksichtigt werden soll. Sie können entweder den Standardwert aus Ihren Steuereinstellungen verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel Auto aus.
- Wählen Sie Monatlich als Abrechnungszeitraum aus.
- Klicken Sie auf Weitere Preisoptionen. Wählen Sie dann Pauschalpreis als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über Pauschalpreise und andere Preismodelle.
- Fügen Sie eine interne Preisbeschreibung und einen Lookup-Schlüssel hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren.
- Klicken Sie auf Weiter. Klicken Sie dann auf Produkt hinzufügen.
Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: price_
.
Notiz
Informationen dazu, wie Sie ein Abonnement mit einer kostenlosen Testphase erstellen, finden Sie unter Abonnement-Testphasen.
Erstellen Sie ein Abonnement mit dem Preis und dem Kunden/der Kundin mit dem Status incomplete
, indem Sie den Parameter payment_behavior mit dem Wert default_
angeben.
Die Antwort enthält die erste Rechnung des Abonnements. Dies enthält die Zahlungen der Rechnung, einschließlich eines Standard-PaymentIntent, den Stripe für diese Rechnung generiert hat, und des Bestätigungsgeheimnisses, das Sie clientseitig verwenden können, um den Zahlungsvorgang sicher abzuschließen, anstatt das gesamte PaymentIntent-Objekt zu übergeben. Geben Sie das latest_
an das Frontend zurück, um die Zahlung abzuschließen.
Wenn Kundinnen/Kunden über das „Click to Pay“-Verfahren mit ACH Direct Debit zahlen, empfehlen wir Ihnen, Stripe.js zu verwenden, um die Zahlung an Stripe zu übermitteln. Stripe.js ist unsere grundlegende JavaScript-Bibliothek für die Erstellung von Zahlungsabläufen. Sie übernimmt automatisch komplexe Integrationsaufgaben und ermöglicht es Ihnen, Ihre Integration in Zukunft unkompliziert um andere Zahlungsmethoden zu erweitern.
Binden Sie das Stripe.js-Skript in Ihre Zahlungsseite ein, indem Sie es im head
Ihrer HTML-Datei einfügen.
Erstellen Sie auf Ihrer Bezahlseite eine Instanz von Stripe.js mit dem folgenden JavaScript.
Anstatt das gesamte PaymentIntent-Objekt an den Client zu übermitteln, verwenden Sie dessen Client-Geheimnis aus dem vorherigen Schritt. Dieses unterscheidet sich von Ihren API-Schlüsseln, mit denen Anfragen der Stripe API authentifiziert werden.
Gehen Sie vorsichtig mit dem Client-Geheimnis um, da es die Zahlung abschließen kann. Protokollieren Sie es nicht, betten Sie es nicht in URLs ein und machen Sie es nur dem Kunden/der Kundin zugänglich.
Verwenden Sie stripe.collectBankAccountForPayment , um Bankkontodaten mit Financial Connections zu erfassen, eine PaymentMethod zu erstellen und diese PaymentMethod an den PaymentIntent anzuhängen. Der Parameter billing_
muss den Namen des Kontoinhabers/der Kontoinhaberin enthalten, um eine PaymentMethod für ein ACH-Lastschriftkonto zu erstellen.
Der Stripe Financial Connections-Authentifizierungsvogang verarbeitet die Erfassung und Überprüfung von Bankkontodaten automatisch. Wenn Ihr Kunde/Ihre Kundin den Authentifizierungsvorgang abschließt, wird die PaymentMethod automatisch an den PaymentIntent angehängt und ein Financial Connections Account wird erstellt.
Häufiger Fehler
Bankkonten, die Ihre Kundinnen/Kunden durch manuelle Eingabe und Testeinzahlungen verknüpfen, haben keinen Zugriff auf zusätzliche Bankkontodaten wie Salden, Kontoinhaberschaft und Transaktionen.
Um die beste Nutzererfahrung auf allen Geräten zu bieten, setzen Sie die minimum-scale
des Darstellungsfelds für Ihre Seite mithilfe des meta
-Tags des Darstellungsfelds auf 1.
Bevor Sie die Zahlung veranlassen können, müssen Sie eine Zahlungsautorisierung von Ihrem/Ihrer Kund/in einholen, indem Sie Mandatsbedingungen anzeigen, denen er/sie zustimmen muss.
Um die Nacha-Regeln einzuhalten, müssen Sie eine Autorisierung von Ihrem Kunden/Ihrer Kundin einholen, bevor Sie die Zahlung veranlassen können. Dies tun Sie durch Anzeigen von Mandatskonditionen, denen der Kunde/die Kundin zustimmen muss. Weitere Informationen finden Sie unter [Mandate]](/payments/ach-direct-debit#mandates).
Wenn der Kunde/die Kundin den Mandatskonditionen zustimmt, müssen Sie den PaymentIntent bestätigen. Verwenden Sie stripe.confirmUsBankAccountPayment, um die Zahlung abzuschließen, wenn der Kunde/die Kundin das Formular absendet.
Notiz
Die Ausführung von stripe.confirmUsBankAccountPayment kann einige Sekunden dauern. Während dieser Zeit sollten Sie Ihr Formular deaktivieren, damit keine erneute Übermittlung erfolgen kann. Lassen Sie stattdessen ein Wartesymbol einblenden, wie beispielsweise eine Sanduhr. Tritt ein Fehler auf, lassen Sie eine Fehlermeldung für die Kundin/den Kunden anzeigen, aktivieren Sie das Formular erneut und blenden Sie das Wartesymbol aus.
Wenn der/die Kund/in die Sofortüberprüfung abschließt, wird das Abonnement automatisch active
. Lesen Sie andernfalls Bankkonto mit Testeinzahlungen verifizieren, um zu erfahren, wie die Verifizierung von Testeinzahlungen abgewickelt wird, während das Abonnement incomplete
bleibt.
Notiz
Kundinnen/Kunden haben 10 Tage Zeit, um Testeinzahlungen für Abonnement ein erfolgreich zu verifizieren, statt der normalerweise im Lebenszylus eines Abonnements angegebenen 23 Stunden. Diese Ablauffrist kann jedoch nicht nach dem Datum des Abrechnungszyklus liegen.
Nicht alle Kund/innen können das Bankkonto sofort verifizieren. Dieser Schritt wird nur ausgeführt, wenn Ihr/e Kund/in die Sofortverifizierung im vorherigen Schritt deaktiviert hat.
In diesen Fällen sendet Stripe eine descriptor_
-Testeinzahlung und greift möglicherweise auf eine amount
-Testeinzahlung zurück, falls weitere Probleme bei der Verifizierung des Bankkontos auftreten. Es dauert 1–2 Werktage, bis diese Einzahlungen auf der Online-Abrechnung des Kunden/der Kundin erscheinen
- Code der Zahlungsbeschreibung. Stripe sendet eine einzelne Mikroeinzahlung über 0,01 USD an das Bankkonto des/der Kund/in mit einem einmaligen, 6-stelligen
descriptor_
, der mit SM beginnt. Ihr/e Kund/in verwendet diese Zeichenfolge, um sein/ihr Bankkonto zu verifizieren.code - Betrag: Stripe sendet zwei nicht eindeutige Testeinzahlungen an das Kundenbankkonto, wobei
ACCTVERIFY
als Zahlungsbeschreibung in der Abrechnung angegeben ist. Ihre Kundin/Ihr Kunde verwendet die Einzahlungsbeträge zur Verifizierung des Bankkontos.
Das Ergebnis des Aufrufs der Methode stripe.confirmUsBankAccountPayment im vorhergehenden Schritt ist ein PaymentIntent mit dem Status requires_
. Der PaymentIntent enthält das Feld next_
, das einige nützliche Informationen zum Abschließen der Verifizierung enthält.
Wenn Sie eine E-Mail-Adresse für die Rechnungsstellung angegeben haben, benachrichtigt Stripe Ihre Kundinnen und Kunden über diese E-Mail-Adresse, wann die Einzahlungen voraussichtlich eingehen werden. Die E-Mail enthält einen Link zu einer von Stripe gehosteten Verifizierungsseite, auf der sie die Beträge der Einzahlungen bestätigen und die Verifizierung abschließen können.
Achtung
Verifizierungsversuche dürfen für beschreibungsbasierte Testeinzahlungen bis zu 10 mal und für betragsbasierte bis zu 3 mal fehlschlagen. Wenn Sie dieses Limit überschreiten, können wir das Bankkonto nicht mehr verifizieren. Darüber hinaus gilt für Verifizierungen von Testeinzahlungen eine Zeitüberschreitung von 10 Tagen. Werden Testeinzahlungen nicht innerhalb dieser Zeit verifiziert, fordert der PaymentIntent wieder neue Angaben zur Zahlungsmethode an. Wenn Sie Ihren Kund/innen genau erläutern, was Testeinzahlungen sind und wie sie verwendet werden, können Sie Probleme bei der Verifizierung vermeiden.
Optional: Nutzerdefinierte E-Mails-Benachrichtigungen senden
Optional können Sie personalisierte E-Mail-Benachrichtigungen an Ihren Kunden/Ihre Kundin senden. Nachdem Sie die nutzerspezifischen E-Mails eingerichtet haben, müssen Sie angeben, wie der Kunde/die Kundin auf die Verifizierungs-E-Mail antwortet. Wählen Sie dazu eine der folgenden Optionen aus:
Verwenden Sie die von Stripe gehostete Verifizierungsseite. Verwenden Sie dazu die URL
verify_
im next_action-Objekt, um Ihre Kundinnen/Kunden zum Abschluss des Verifizierungsvorgangs zu leiten.with_ microdeposits[hosted_ verification_ url] Wenn Sie die von Stripe gehostete Verifizierungsseite nicht verwenden möchten, können Sie auf Ihrer Website ein Formular für Ihre Kundinnen/Kunden zur Weiterleitung von Testeinzahlungen an Sie erstellen und das Bankkonto mit Stripe.js verifizieren.
- Richten Sie das Formular mindestens so ein, dass es den Parameter
descriptor code
verarbeitet, bei dem es sich um eine 6-stellige Zeichenfolge zu Verifizierungszwecken handelt. - Stripe empfiehlt außerdem, dass Sie Ihr Formular so einstellen, dass der Parameter
amounts
verarbeitet wird, da einige der von Ihren Kund/innen verwenden Banken dies möglicherweise erfordern.
Integrationen übergeben nur den
descriptor_
odercode amounts
. Um festzustellen, welches Ihre Integration verwendet, prüfen Sie den Wert fürverify_
imwith_ microdeposits[microdeposit_ type] next_
-Objekt.action - Richten Sie das Formular mindestens so ein, dass es den Parameter
Sie haben jetzt ein aktives Abonnement eines/einer Kund/in mit einer Zahlungsmethode. Diese Zahlungsmethode wird jedoch nicht automatisch für zukünftige Zahlungen verwendet. Um diese Zahlungsmethode in Zukunft automatisch zu belasten, verwenden Sie einen Webhook-Consumer, um das Ereignis invoice.
für neue Abonnements zu überwachen und die Standard-Zahlungsmethode festzulegen.
Sofern die erste Zahlung erfolgreich war, ist der Status des Abonnements active
, und es sind keine weiteren Maßnahmen erforderlich. Wenn Zahlungen fehlschlagen, ändert sich der Status in den Abonnementstatus, der in Ihren Einstellungen für den automatischen Einzug konfiguriert ist. Benachrichtigen Sie die Kundinnen/Kunden, wenn die Zahlung fehlgeschlagen ist, und belasten Sie deren Konto mit einer anderen Zahlungsmethode.
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.
Wenn Sie ein Abonnement erstellen, wird der Abrechnungszyklus automatisch auf Standard eingestellt. Wenn ein Kunde/eine Kundin beispielsweise am 7. September einen monatlichen Plan abonniert, wird dies danach am 7. jedes Monats in Rechnung gestellt. Manche Unternehmen legen ihren Abrechnungszyklus lieber selbst fest, damit sie ihren Kundinnen/Kunden jeden Zyklus zur selben Zeit in Rechnung stellen können. Das Argument Abrechnungszyklusanker macht dies möglich.
Durch manuelles Festlegen des Abrechnungszyklus wird dem Kunden/der Kundin automatisch ein anteilsmäßig verrechneter Betrag für die Zeit zwischen der Erstellung des Abonnements und dem Abrechnungszyklusanker berechnet. Wenn Sie Kundinnen/Kunden diesen Zeitraum nicht in Rechnung stellen möchten, können Sie das Argument proration_behavior auf none
setzen. Sie können den Abrechnungszyklusanker auch mit Testzeiträumen kombinieren, um Nutzern und Nutzerinnen kostenlosen Zugriff auf Ihr Produkt zu gewähren und ihnen dann einen anteiligen Betrag zu berechnen.
Mit kostenlosen Testversionen können Kundinnen und Kunden für einen bestimmten Zeitraum auf Ihr Produkt zugreifen, ohne dass ihnen Kosten entstehen. Um einen Testzeitraum festzulegen, übergeben Sie einen Zeitstempel in trial_end.
Notiz
Die Verwendung von kostenlosen Testversionen unterscheidet sich vom Festlegen des proration_behavior auf none
, da Sie die Dauer des kostenlosen Testzeitraums anpassen können.
Wenn Sie ein Abonnement mit einem Testzeitraum mit dem payment_behavior-Wert default_
starten, gibt Stripe einen pending_
-Wert im Abonnement-Objekt zurück. Lesen Sie die Dokumentation, um mehr über das SetupIntent-Objekt zu erfahren.
Geben Sie das client_
aus dem pending_
des Abonnements an das Frontend zurück, um die Einrichtung abzuschließen. Dieser Schritt ist erforderlich, um eine Zahlung für den ersten Abrechnungszeitraum erfolgreich zu veranlassen.
Befolgen Sie die Anweisungen unter Angaben zur Zahlungsmethode erfassen, Mandatsbestätigung erfassen und absenden und Bankkonten mit Testeinzahlungen verifizieren mit zwei Unterschieden:
- Verwenden Sie
stripe.
stattcollectBankAccountForSetup stripe.
.collectBankAccountForPayment - Verwenden Sie
stripe.
stattconfirmUsBankAccountSetup stripe.
.confirmUsBankAccountPayment
Falls Ihr/e Kund/in die Verifizierung von Testeinzahlungen wählt, verwenden Sie stripe.
anstelle von stripe.
.
Der SetupIntent wechselt nach der Verifizierung sofort in den Status succeeded
, und Stripe setzt die default_
des Abonnements auf die neu erstellte PaymentMethod.
Sie können einen Abrechnungszyklusanker auch mit einer kostenlosen Testphase kombinieren. Angenommen, Sie möchten am 15. September Ihrem/Ihrer Kund/in eine kostenlose siebentägige Testphase schenken und am 1. Oktober mit dem normalen Abrechnungszyklus starten. Sie können den Ablauf der kostenlosen Testphase auf den 22. September festlegen und den Abrechnungszyklusanker auf den 1. Oktober. So kann der/die Kund/in sieben Tage lang eine kostenlose Testversion nutzen, und für den Zeitraum zwischen dem Ablauf der Testphase und dem 1. Oktober wird ein anteilsmäßig verrechneter Betrag berechnet. Am 1. Oktober berechnen Sie dem/der Kund/in dann den normalen Abonnementbetrag für seinen/ihren ersten vollen Abrechnungszyklus.
Sie können die US-Bankkontodaten Ihrer Kundinnen/Kunden zur automatischen Verwendung mit Rechnungen, Abonnements oder Abonnementzeitplänen speichern, die Sie später erstellen. Verwenden Sie hierfür einen SetupIntent, der die Schritte dieses Einrichtungsvorgangs verfolgt.
Befolgen Sie die Anleitung zum Speichern von US-Bankkontodaten für zukünftige Zahlungen.
Nachdem der SetupIntent
den Status succeeded
erreicht hat, aktualisieren Sie die default_
Ihres/Ihrer Kund/in.