Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
Übersicht
Informationen zu Stripe Payments
Aktualisieren Sie Ihre Integration
Zahlungsanalysefunktionen
Online-Zahlungen
ÜbersichtIhren Use case findenZahlungen verwalten
Payment Links verwenden
Bezahlseite erstellen
Erweiterte Integration erstellen
In-App-Integration erstellen
Zahlungsmethoden
Zahlungsmethoden hinzufügen
    Übersicht
    Optionen für die Integration von Zahlungsmethoden
    Standardzahlungsmethoden im Dashboard verwalten
    Arten von Zahlungsmethoden
    Karten
    Mit Stripe-Guthaben bezahlen
    Krypto
    Lastschriften
      ACH Direct Debit
      BACS-Lastschriftverfahren
        Zahlung annehmen
        BACS-Daten in Stripe importieren
        Bankverbindung speichern
      Vorab autorisierte Lastschriften in Kanada
      BECS-Lastschriftverfahren (Australien)
      BECS-Lastschriftverfahren in Neuseeland
      SEPA-Lastschrift
    Bank Redirect
    Banküberweisungen
    Überweisungen (Sources)
    Jetzt kaufen, später bezahlen
    Zahlungen in Echtzeit
    Gutscheine
    Geldbörsen
    Lokale Zahlungsmethoden nach Land aktivieren
    Nutzerdefinierte Zahlungsmethoden
Zahlungsmethoden verwalten
Schnellerer Bezahlvorgang mit Link
Zahlungsschnittstellen
Payment Links
Checkout
Web Elements
In-App-Elements
Zahlungsszenarien
Umgang mit mehreren Währungen
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
Orchestrierung
Präsenzzahlungen
Terminal
Mehr als Zahlungen
Unternehmensgründung
Krypto
Financial Connections
Climate
Betrug verstehen
Betrugsprävention von Radar
Zahlungsanfechtungen verwalten
Identitäten verifizieren
StartseiteZahlungenAdd payment methodsBank debitsBacs Direct Debit

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 einrichten
Serverseitig

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:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Ein/e Kundin / Kunden erstellen oder abrufen
Serverseitig

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:

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

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.

Stripe.js einrichten

Das Payment Element ist ein Feature von Stripe.js und steht damit automatisch zur Verfügung. Fügen Sie das Stripe.js-Skript auf Ihrer Bezahlseite ein, indem Sie es in den head Ihrer HTML-Datei einbinden. Laden Sie Stripe.js immer direkt von js.stripe.com, um die PCI-Konformität zu gewährleisten. Fügen Sie das Skript nicht in ein Paket ein und hosten Sie selbst keine Kopie davon.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>

Erstellen Sie auf Ihrer Zahlungsseite eine Instanz von Stripe mit dem folgenden JavaScript:

checkout.js
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Payment Element zu Ihrer Checkout-Seite hinzufügen

Das Payment Element benötigt einen Platz auf Ihrer Checkout-Seite. Erstellen Sie einen leeren DOM-Knoten (Container) mit einer eindeutigen ID in Ihrem Zahlungsformular:

checkout.html
<form id="payment-form"> <div id="payment-element"> <!-- Elements will create form elements here --> </div> <button id="submit">Submit</button> <div id="error-message"> <!-- Display error message to your customers here --> </div> </form>

Nachdem das obige Formular geladen wurde, erstellen Sie eine Elements-Instanz mit einem Wert für mode, amount und currency. Diese Werte bestimmen, welche Zahlungsmethoden Ihren Kundinnen/Kunden angezeigt werden. Um eine neue Zahlungsmethode in Ihrem Fomular anzugeben, müssen Sie sie unbedingt im Dashboard aktivieren.

checkout.js
const options = { mode: 'payment', amount: 1099, currency: 'gbp', // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout form const elements = stripe.elements(options); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

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 PaymentIntent
Serverseitig

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.confirmPayment auf dem Client verwendet, um die Zahlung zu bestätigen und alle nächsten Aktionen abzuwickeln.

Wenn der Kunde/die Kundin Ihr Zahlungsformular absendet, verwenden Sie einen PaymentIntent, um den Bestätigungs- und Zahlungsvorgang zu vereinfachen. Erstellen Sie einen PaymentIntent auf Ihrem Server mit einem amount und einer currency. Um zu verhindern, dass böswillige Kundinnen/Kunden ihre eigenen Preise wählen, entscheiden Sie, wie viel Sie berechnen möchten, immer auf der Serverseite (einer vertrauenswürdigen Umgebung) und nicht auf dem Client.

Zu einem PaymentIntent gehört ein Client-Geheimnis. Geben Sie diesen Wert an Ihren Client zurück, damit Stripe.js den Zahlungsvorgang sicher abschließen kann.

main.rb
Ruby
Python
PHP
Node.js
Java
Go
.NET
No results
require 'stripe' Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/create-intent' do intent = Stripe::PaymentIntent.create({ # To allow saving and retrieving payment methods, provide the Customer ID. customer: customer.id, amount: 1099, currency: 'gbp', }) {client_secret: intent.client_secret}.to_json end

Zahlung an Stripe senden
Clientseitig

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_url weitergeleitet werden. Bei Kartenzahlungen erfolgt die Weiterleitung zur return_url sofort, wenn eine Zahlung erfolgreich ist.

Wenn Sie bei Kartenzahlungen nach Abschluss der Zahlung keine Weiterleitung wünschen, können Sie redirect auf if_required festlegen. Dadurch werden nur Kundinnen/Kunden weitergeleitet, die mit auf Weiterleitung basierenden Zahlungsmethoden bezahlen.

checkout.js
const form = document.getElementById('payment-form'); const submitBtn = document.getElementById('submit'); const handleError = (error) => { const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; submitBtn.disabled = false; } form.addEventListener('submit', async (event) => { // We don't want to let default form submission happen here, // which would refresh the page. event.preventDefault(); // Prevent multiple form submissions if (submitBtn.disabled) { return; } // Disable form submission while loading submitBtn.disabled = true; // Trigger form validation and wallet collection const {error: submitError} = await elements.submit(); if (submitError) { handleError(submitError); return; } // Create the PaymentIntent and obtain clientSecret const res = await fetch("/create-intent", { method: "POST", }); const {client_secret: clientSecret} = await res.json(); // Confirm the PaymentIntent using the details collected by the Payment Element const {error} = await stripe.confirmPayment({ elements, clientSecret, confirmParams: { return_url: 'https://example.com/order/123/complete', }, }); if (error) { // This point is only reached if there's an immediate error when // confirming the payment. Show the error to your customer (for example, payment details incomplete) handleError(error); } else { // Your customer is redirected to your `return_url`. For some payment // methods like iDEAL, your customer is redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } });

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.

AbwicklungsartErfolgreiche ZahlungVerfügbare GelderAblauffrist
StandardabwicklungT+3 at 21:00 UTCT+4 at 00:00 UTC20: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:

Command Line
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.

BankleitzahlKontonummerBeschreibung
10880000012345Die Zahlung ist erfolgreich und der PaymentIntent von wird von processing auf succeeded umgestellt.
10880090012345Die Zahlung erfolgt innerhalb von drei Minuten und der PaymentIntent von wird von processing auf succeeded umgestellt.
10880033333335Die Zahlung wird akzeptiert, schlägt dann aber unmittelbar fehl. Die Fehlerkennung debit_not_authorized wird ausgegeben und PaymentIntent wird von processing auf requires_payment_method umgestellt. Das Mandat wechselt zu inactive und die PaymentMethod kann nicht erneut verwendet werden.
10880093333335Die Zahlung schlägt nach drei Minuten fehl. Die Fehlerkennung debit_not_authorized wird ausgegeben und der PaymentIntent wird von processing auf requires_payment_method umgestellt. Das Mandat wechselt zu inactive und die PaymentMethod kann nicht erneut verwendet werden.
10880022222227Die Zahlung schlägt fehl, die Fehlerkennung insufficient_funds wird ausgegeben und der PaymentIntent wird von processing auf requires_payment_method umgestellt. Das Mandat bleibt active und die PaymentMethod kann erneut verwendet werden.
10880092222227Die Zahlung schlägt nach drei Minuten fehl, die Fehlerkennung insufficient_funds wird ausgegeben und der PaymentIntent wird von processing auf requires_payment_method umgestellt. Das Mandat bleibt active und die PaymentMethod kann erneut verwendet werden.
10880055555559Die Zahlung erfolgt innerhalb von drei Minuten und der PaymentIntent wechselt von processing zu succeeded. Eine Zahlungsanfechtung wird jedoch sofort erstellt.
10880000033333Die Zahlungsmethode wurde erfolgreich erstellt, das Mandat wird jedoch von der Kundenbank verweigert und sofort deaktiviert.
10880000044444Die 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.
10880034343434Die Zahlung schlägt mit dem Fehlercode charge_exceeds_source_limit fehl, da der Zahlungsbetrag dazu führt, dass das Konto sein wöchentliches Zahlungsvolumenlimit überschreitet.
10880012121212Die Zahlung schlägt mit dem Fehlercode charge_exceeds_weekly_limit 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.

FehlercodeBeschreibungWiederholbar
account_closedDas Bankkonto wurde geschlossen.Nein
bank_ownership_changedDas 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_not_authorizedDie Zahlung wurde als nicht autorisiert gemeldet oder der Auszahlungsbank liegt kein entsprechendes Mandat vor.Nein
generic_could_not_processDiese Zahlung konnte nicht bearbeitet werden.Ja
insufficient_fundsDas Kundenkonto ist für diese Zahlung nicht ausreichend gedeckt.Ja
invalid_account_numberDie 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.

OptionalAbbuchungsdatum für Kundin / Kunden konfigurieren

OptionalMandatsreferenzen mit einem Präfix anpassen

Siehe auch

  • PaymentIntent-Webhooks
  • Mandate verwalten
War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc