Zahlungen per Bacs-Lastschriftverfahren
Akzeptieren Sie Zahlungen im BACS-Lastschriftverfahren von Kundinnen / Kunden mit einem Konto im Vereinigten Königreich.
Für die Annahme von BACS-Lastschriftzahlungen auf Ihrer Website müssen Sie ein Objekt zum Nachverfolgen von Zahlungen erstellen, Informationen zur Zahlungsmethode erfassen und die Mandatsbestätigung einholen, Zahlungen zur Verarbeitung an Stripe senden und das Bankkonto Ihrer Kundin / Ihres Kunden verifizieren.
Stripe verwendet dieses Zahlungsobjekt, den PaymentIntent, um alle Bereiche der Zahlung zu verfolgen und alle Schritte der Zahlung abzuwickeln, bis die Zahlung abgeschlossen ist.
Stripe einrichtenServerseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung:
Ein/e Kundin / Kunden erstellen oder abrufenServerseitig
Um ein Bankkonto für zukünftige Zahlungen wiederzuverwenden, muss es einem Customer-Objekt zugeordnet werden.
Erstellen Sie ein Customer
-Objekt, wenn Ihre Kundin / Ihr Kunde ein Konto bei Ihrem Unternehmen anlegt. Wenn Sie die ID des Customer
-Objekts mit Ihrer eigenen internen Darstellung einer Kundin / eines Kunden verknüpfen, können Sie die gespeicherten Angaben zur Zahlungsmethode später abrufen und verwenden.
Legen Sie einen neuen Customer
an oder rufen Sie einen bestehenden Customer
ab, um ihn mit dieser Zahlung zu verknüpfen. Fügen Sie den folgenden Code auf Ihrem Server hinzu, um einen neuen Customer
zu erstellen:
Angaben zur Zahlungsmethode erfassen
Notiz
Die Regeln des BACS-Lastschriftverfahrens verlangen, dass Ihre Kundinnen und Kunden ein Mandat akzeptieren, damit Stripe deren Konto belasten kann. Das Payment Element zieht dieses Mandat ein, wenn es die Zahlungsdaten der Kundin / des Kunden akzeptiert. Sie müssen also nichts unternehmen, um diese Anforderung zu erfüllen.
Sie können nun mit dem Payment Element Zahlungsdetails auf dem Client erfassen. Das Payment Element ist eine vorgefertigte UI-Komponente, die die Erfassung von Zahlungsdaten für eine Vielzahl von Zahlungsmethoden vereinfacht.
Das Payment Element enthält einen iFrame, der Zahlungsinformationen über eine sichere HTTPS-Verbindung an Stripe sendet. Vermeiden Sie es, das Payment Element in einem anderen iFrame zu platzieren, da einige Zahlungsmethoden die Weiterleitung an eine andere Seite zur Zahlungsbestätigung voraussetzen.
Die Adresse der Bezahlseite muss mit https://
und nicht http://
beginnen, damit Ihre Integration funktioniert. Sie können Ihre Integration ohne HTTPS testen. Denken Sie jedoch daran, es zu aktivieren, wenn Sie bereit sind, Live-Zahlungen zu akzeptieren.
Sie können das Payment Element an das Design Ihrer Website anpassen, indem Sie beim Erstellen des Elements
-Anbieters das Erscheinungs-Objekt an options
übergeben.
Adressen einholen
Standardmäßig erfasst das Payment Element nur die erforderlichen Angaben zur Rechnungsadresse. Verwenden Sie das Address Element, um die vollständige Rechnungsadresse (z. B. zur Berechnung der Steuer für digitale Waren und Dienstleistungen) oder die Versandadresse einer Kundin/eines Kunden zu erfassen.
Erstellen Sie ein PaymentIntentServerseitig
Benutzerdefinierte Geschäftslogik unmittelbar vor der Zahlungsbestätigung ausführen
Navigieren Sie zu Schritt 5 im Leitfaden zum Abschließen von Zahlungen, um Ihre nutzerdefinierte Geschäftslogik unmittelbar vor der Zahlungsbestätigung auszuführen. Führen Sie andernfalls die folgenden Schritte für eine einfachere Integration aus, die stripe.
auf dem Client verwendet, um die Zahlung zu bestätigen und alle nächsten Aktionen abzuwickeln.
Zahlung an Stripe sendenClientseitig
Verwenden Sie stripe.confirmPayment, um die Zahlung mit den Angaben aus dem Payment Element abzuschließen.
Geben Sie eine return_url für diese Funktion an, um anzugeben, wohin Stripe den/die Nutzer/in nach Abschluss der Zahlung weiterleitet. Ihre Nutzer/innen werden möglicherweise zunächst an eine Zwischenwebsite, z. B. eine Bankautorisierungsseite, weitergeleitet, bevor sie zur return_
weitergeleitet werden. Bei Kartenzahlungen erfolgt die Weiterleitung zur return_
sofort, wenn eine Zahlung erfolgreich ist.
Wenn Sie bei Kartenzahlungen nach Abschluss der Zahlung keine Weiterleitung wünschen, können Sie redirect auf if_
festlegen. Dadurch werden nur Kundinnen/Kunden weitergeleitet, die mit auf Weiterleitung basierenden Zahlungsmethoden bezahlen.
Ereignisse nach der Zahlung verarbeiten
Das BACS-Lastschriftverfahren ist eine Zahlungsmethode mit verzögerter Benachrichtigung, so dass Gelder nicht sofort verfügbar sind.
Zeitpläne
Bei Bacs Direct Debit kann es mehrere Werktage dauern, bis der Betrag auf Ihrem Stripe-Guthaben verfügbar ist. Die Anzahl der Werktage, die es dauert, bis die Gelder verfügbar sind, wird als Abwicklungszeit bezeichnet. Zahlungen, die nach dem täglichen Annahmeschluss eingereicht werden, werden am nächsten Werktag bearbeitet.
Die Bestätigung des Erfolgs oder Misserfolgs einer Bacs-Lastschriftzahlung dauert 4 Werktage, wenn bereits ein Mandat vorliegt. Wenn Sie ein neues Mandat einholen müssen, beträgt die Bearbeitungszeit 7 Werktage.
In einigen Fällen zeigt uns die Bank möglicherweise eine fehlgeschlagene Zahlung an, nachdem die Zahlung in Ihrem Stripe-Konto bereits als erfolgreich gekennzeichnet wurde. In diesem Fall wird die fehlgeschlagene Zahlung als angefochtene Zahlung mit entsprechendem Ursachencode ausgewiesen.
In der folgenden Tabelle werden die Zahlungsabwicklungen für Bacs Direct Debit Zahlungen beschrieben, die Stripe anbietet.
Abwicklungsart | Erfolgreiche Zahlung | Verfügbare Gelder | Ablauffrist |
---|---|---|---|
Standardabwicklung | T+3 at 21:00 UTC | T+4 at 00:00 UTC | 20:00 Europe/London |
Webhooks einrichten
Stripe sendet beim Zahlungsvorgang und nach erfolgter Zahlung mehrere Ereignisse. Verwenden Sie das Webhook-Tool im Dashboard oder befolgen Sie die Webhook-Anleitung, um diese Ereignisse zu empfangen und führen Sie Aktionen aus, wie beispielsweise das Senden einer Bestellbestätigung per E-Mail, das Protokollieren des Verkaufs in der Datenbank oder das Starten eines Versand-Workflows.
Bei BACS-Lastschriftverfahren müssen Sie das Ereignis payment_intent.succeeded verarbeiten, um zu bestätigen, dass die Zahlung erfolgreich war. Stripe empfiehlt außerdem die Verarbeitung der Ereignisse payment_intent.processing und payment_intent.payment_failed.
Verwenden Sie die Stripe-CLI, um Webhooks lokal zu testen. Nach der Installation können Sie Ereignisse an Ihren Server weiterleiten:
stripe listen --forward-to localhost:4242/webhook Ready! Your webhook signing secret is '{{WEBHOOK_SIGNING_SECRET}}' (^C to quit)
Erfahren Sie mehr über die Einrichtung von Webhooks.
Integration testen
Es gibt mehrere Testbankkontonummern, die Sie in einer Sandbox verwenden können. So können Sie sicherstellen, dass diese Integration bereit ist.
Bankleitzahl | Kontonummer | Beschreibung |
---|---|---|
108800 | 00012345 | Die Zahlung ist erfolgreich und der PaymentIntent von wird von processing auf succeeded umgestellt. |
108800 | 90012345 | Die Zahlung erfolgt innerhalb von drei Minuten und der PaymentIntent von wird von processing auf succeeded umgestellt. |
108800 | 33333335 | Die Zahlung wird akzeptiert, schlägt dann aber unmittelbar fehl. Die Fehlerkennung debit_ wird ausgegeben und PaymentIntent wird von processing auf requires_ umgestellt. Das Mandat wechselt zu inactive und die PaymentMethod kann nicht erneut verwendet werden. |
108800 | 93333335 | Die Zahlung schlägt nach drei Minuten fehl. Die Fehlerkennung debit_ wird ausgegeben und der PaymentIntent wird von processing auf requires_ umgestellt. Das Mandat wechselt zu inactive und die PaymentMethod kann nicht erneut verwendet werden. |
108800 | 22222227 | Die Zahlung schlägt fehl, die Fehlerkennung insufficient_ wird ausgegeben und der PaymentIntent wird von processing auf requires_ umgestellt. Das Mandat bleibt active und die PaymentMethod kann erneut verwendet werden. |
108800 | 92222227 | Die Zahlung schlägt nach drei Minuten fehl, die Fehlerkennung insufficient_ wird ausgegeben und der PaymentIntent wird von processing auf requires_ umgestellt. Das Mandat bleibt active und die PaymentMethod kann erneut verwendet werden. |
108800 | 55555559 | Die Zahlung erfolgt innerhalb von drei Minuten und der PaymentIntent wechselt von processing zu succeeded . Eine Zahlungsanfechtung wird jedoch sofort erstellt. |
108800 | 00033333 | Die Zahlungsmethode wurde erfolgreich erstellt, das Mandat wird jedoch von der Kundenbank verweigert und sofort deaktiviert. |
108800 | 00044444 | Die Anfrage zur Einrichtung eines Bacs-Lastschriftverfahrens wird aufgrund einer ungültigen Kontonummer sofort abgelehnt. Die Kund/innen werden aufgefordert, ihre Angaben vor dem Absenden zu prüfen. Zahlungsinformationen werden nicht erfasst. |
108800 | 34343434 | Die Zahlung schlägt mit dem Fehlercode charge_ fehl, da der Zahlungsbetrag dazu führt, dass das Konto sein wöchentliches Zahlungsvolumenlimit überschreitet. |
108800 | 12121212 | Die Zahlung schlägt mit dem Fehlercode charge_ fehl, da der Zahlungsbetrag das Transaktionsvolumenlimit des Kontos überschreitet. |
Sie können die oben aufgeführten Kontonummern nach Belieben testen. Da die Verarbeitung von Zahlungen per Bacs-Lastschriftverfahren mehrere Tage in Anspruch nimmt, verwenden Sie bitte die Testkontonummern. Bei diesen ist eine dreiminütige Verzögerung eingebaut, um tatsächliche Zahlungen möglichst exakt nachzubilden.
Notiz
Standardmäßig sendet Stripe den Kundinnen und Kunden bei der erstmaligen Erfassung ihrer Zahlungsinformationen sowie bei jeder Kontobelastung automatisch E-Mails. Diese Benachrichtigungen werden nicht in Sandboxes gesendet.
Fehlgeschlagene Zahlungen
Zahlungen können aus verschiedenen Gründen fehlschlagen. Die Ursache für einen Fehler kann über charge.failure_code abgerufen werden. Nur Zahlungen mit bestimmten Fehlercodes können erneut durchgeführt werden. Wenn eine Zahlung nicht wiederholt werden kann, empfehlen wir Ihnen, Kontakt zu den Betroffenen aufzunehmen und diese aufzufordern, die Zahlung mit einem anderen Bankkonto oder einer anderen Zahlungsmethode erneut zu tätigen.
Unten finden Sie eine Liste der aktuellen Fehlercodes für das BACS-Lastschriftverfahren. Die Liste wird laufend ergänzt. Gehen Sie also davon aus, dass noch andere Fehlertypen existieren.
Fehlercode | Beschreibung | Wiederholbar |
---|---|---|
account_ | Das Bankkonto wurde geschlossen. | Nein |
bank_ | Das Konto wurde an einen anderen Zahlungsanbieter übertragen. Prüfen Sie, ob Ihnen dessen Angaben vorliegen. Andernfalls müssen Sie von den Betroffenen ein neues Lastschriftmandat einholen. | Nein |
debit_ | Die Zahlung wurde als nicht autorisiert gemeldet oder der Auszahlungsbank liegt kein entsprechendes Mandat vor. | Nein |
generic_ | Diese Zahlung konnte nicht bearbeitet werden. | Ja |
insufficient_ | Das Kundenkonto ist für diese Zahlung nicht ausreichend gedeckt. | Ja |
invalid_ | Die Kontonummer ist ungültig. Möglicherweise bezieht sie sich auf ein Konto in einer anderen Währung als GBP. Oder über das Konto können keine Zahlungen per Lastschrift verarbeitet werden. | Nein |
Um Zahlungen noch einmal zu versuchen, bestätigen Sie den PaymentIntent erneut mit derselben PaymentMethod.
Um die Erfolgsaussichten zu erhöhen, empfehlen wir vor dem erneuten Zahlungsversuch eine Kontaktaufnahme mit dem Zahler.