Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Entwickler-Tools
Jetzt starten
Zahlungen
Finanzautomatisierung
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Ü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
    Lastschriften
      ACH Direct Debit
      BACS-Lastschriftverfahren
        Zahlung annehmen
        BACS-Daten aus Stripe exportieren
        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
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
Orchestrierung
Präsenzzahlungen
Terminal
Andere Stripe-Produkte
Financial Connections
Krypto
Climate
StartseiteZahlungenAdd payment methodsBank debitsBacs Direct Debit

Zahlungen per Bacs-Lastschriftverfahren

So nehmen Sie Bacs-Lastschriftzahlungen an.

Seite kopieren

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 weiterhin manuell konfigurieren möchten, welche Zahlungsmethoden Ihren Kundinnen/Kunden mit Checkout angezeigt werden sollen, können Sie sich an diesem Leitfaden orientieren. Aktualisieren Sie andernfalls Ihre Integration, um Zahlungsmethoden im Dashboard zu konfigurieren.

Stripe-Nutzer/innen im Vereinigten Königreich können Checkout im Zahlungsmodus verwenden, um Zahlungen per Bacs-Lastschriftverfahren zu akzeptieren.

Eine Checkout-Sitzung repräsentiert die Details der Kaufabsicht Ihres Kunden/Ihrer Kundin. Sie erstellen eine Checkout-Sitzung, wenn Ihr Kunde/Ihre Kundin für etwas bezahlen möchte. Nachdem Ihre Kundinnen/Kunden zu einer Checkout-Sitzung umgeleitet wurden, präsentiert Stripe ein Zahlungsformular, von dem aus sie ihren Kauf abschließen können. Nachdem Ihre Kundinnen/Kunden einen Kauf getätigt haben, werden sie wieder auf Ihre Website zurückgeleitet.

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
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Produkte und Preise erstellen

Um Checkout zu verwenden, müssen Sie zuerst ein Produkt und einen Preis erstellen. Verschiedene physische Waren oder Dienstleistungsebenen sollten durch Produkte dargestellt werden. Die Preisgestaltung ist durch einen oder mehrere Preise dargestellt.

Sie können beispielsweise ein T-Shirt-Produkt erstellen, das zwei Preise für verschiedene Währungen hat: 20 GBP und 25 EUR. Auf diese Weise können Sie Preise ändern und hinzufügen, ohne die Details der zugrundeliegenden Produkte ändern zu müssen. Sie können ein Produkt oder einen Preis entweder über die API oder im Dashboard erstellen.

Wenn Sie Ihren Preis beim Bezahlvorgang ermitteln (der Kunde/die Kundin legt beispielsweise einen Spendenbetrag fest), oder wenn Sie es vorziehen, Preise nicht im Voraus zu erstellen, können Sie Preise ad-hoc bei der Erstellung der Checkout-Sitzung mit einem vorhandenen Produkt erstellen.

Vorsicht

Wenn Sie bereits eine Checkout-Integration haben, die Prices nicht nutzt, beachten Sie bitte, dass die Checkout API seit der Einführung von Prices geändert wurde. Verwenden Sie diesen Migrationsleitfaden, um ein Upgrade durchzuführen, oder behalten Sie Ihre vorhandene Integration bei.

Notiz

Products created in a sandbox can be copied to live mode so that you don’t need to re-create them. In the Product detail view in the Dashboard, click Copy to live mode in the upper right corner. You can only do this once for each product created in a sandbox. Subsequent updates to the test product are not reflected for the live product.

Make sure you’re in a sandbox, and define the items you want to sell. To create a new product and price:

  • Navigieren Sie im Dashboard zum Abschnitt Produkte.
  • Klicken Sie auf Produkt hinzufügen.
  • Wählen Sie beim Festlegen des Preises Einmalig aus.

Informationen wie Produktname, Beschreibung und Bild, die Sie angeben, werden Kund/innen beim Bezahlvorgang angezeigt.

Checkout-Sitzung erstellen
Clientseitig
Serverseitig

Fügen Sie Ihrer Website eine Schaltfläche zum Bezahlen hinzu, über die ein serverseitiger Endpoint aufgerufen wird, um eine Checkout-Sitzung zu erstellen.

index.html
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>

Erstellen Sie eine Checkout-Sitzung mit line_items. Posten geben an, welche Artikel die Kundinnen/Kunden erwerben.

Wenn Ihre Kund/innen eine Zahlung abschließen, werden sie an die success_url weitergeleitet. Dabei handelt es sich um eine Seite auf Ihrer Website, auf der sie darüber informiert werden, dass ihre Zahlungsinformationen erfasst wurden und die Zahlung bearbeitet wird.

Wenn Ihre Kund/innen in einer Checkout-Sitzung auf Ihr Logo klicken, ohne eine Zahlung abzuschließen, leitet Checkout sie über die cancel_url zurück zu Ihrer Website. In der Regel ist dies die Seite auf Ihrer Website, die die Kund/innen vor der Weiterleitung zu Checkout besucht haben.

Mit Checkout können Zahlungen akzeptiert und Zahlungsmethoden für eine erneute Verwendung gespeichert werden. Gespeicherte Zahlungsmethoden können per PaymentIntent für künftige Zahlungen wiederverwendet werden. Leiten Sie Ihre Kundinnen/Kunden nach dem Erstellen der Checkout-Sitzung zu der in der Antwort zurückgegebenen URL weiter.

Command Line
curl
curl https://api.stripe.com/v1/checkout/sessions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "payment_method_types[]"="bacs_debit" \ -d "line_items[][price]"="{{PRICE_ID}}" \ -d "line_items[][quantity]"=1 \ -d "mode"="payment" \ -d "customer"="{{CUSTOMER_ID}}" \ -d "payment_intent_data[setup_future_usage]"="off_session" \ -d "success_url"="https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d "cancel_url"="https://example.com/cancel"

Notiz

Gemäß den Regeln zum Bacs-Lastschriftverfahren schickt Stripe bei der erstmaligen Erfassung von Zahlungsinformationen sowie bei jeder Kontobelastung standardmäßig Lastschriftankündigungen per E-Mail. Standardmäßig versendet Stripe diese E-Mails für Sie.

Beim Erstellen einer Checkout-Sitzung wird eine Sitzungs-ID zurückgegeben. Stellen Sie die Sitzungs-ID auf Ihrer Erfolgsseite zur Verfügung, indem Sie die Vorlagenvariable {CHECKOUT_SESSION_ID} wie im obigen Beispiel in die success_url einfügen.

Vorsicht

Verlassen Sie sich beim Erkennen von initiierten Zahlungen nicht allein auf die Weiterleitung auf die success_url:

  • Böswillige Nutzer/innen könnten, ohne zu bezahlen, direkt auf die success_url zugreifen und sich so unberechtigt Zugang zu Waren und Dienstleistungen verschaffen.
  • In manchen Fällen werden Kund/innen nach erfolgreicher Zahlung nicht zur success_url weitergeleitet. Möglicherweise haben sie die Registerkarte im Browser geschlossen, bevor die Weiterleitung erfolgt ist.

Ereignisse nach der Zahlung verarbeiten
Serverseitig

Wenn Ihre Kund/innen ihre Zahlung erfolgreich abschließen, werden sie von Stripe an die URL weitergeleitet, die Sie im success_url-Parameter angegeben haben. Hierbei handelt es sich in der Regel um eine Seite auf Ihrer Website, auf der Ihre Kund/innen darüber informiert werden, dass ihre Zahlung erfolgreich durchgeführt wurde.

Beim Bacs-Lastschriftverfahren handelt es sich jedoch um eine Zahlungsmethode mit verzögerter Benachrichtigung, was bedeutet, das Gelder nicht sofort verfügbar sind. Bei einer Zahlung mit Bacs-Lastschriftverfahren dauert es in der Regel 3 Werktage, bis die Gelder verfügbar sind. Deshalb sollten Sie mit der Ausführung warten, bis das Geld auf Ihrem Konto ist. Nach erfolgreicher Zahlung ändert sich der zugrunde liegende PaymentIntent-Status von processing in succeeded.

Die folgenden Checkout-Ereignisse werden übermittelt, wenn sich der Zahlungsstatus ändert:

EreignisnameBeschreibungNächste Schritte
checkout.session.completedDer/die Kund/in hat die Lastschriftzahlung erfolgreich autorisiert, indem das Checkout-Formular eingereicht wurde.Warten Sie, bis die Zahlung erfolgt ist oder fehlschlägt.
checkout.session.async_payment_succeededDie Kundenzahlung war erfolgreich.Wickeln Sie die Kundenbestellung ab.
checkout.session.async_payment_failedDie Zahlung wurde abgelehnt oder ist aus einem anderen Grund fehlgeschlagen.Kontaktieren Sie den Kunden/die Kundin per E-Mail und fordern Sie eine neue Bestellung von ihm/ihr an.

Ihr Webhook-Code muss alle drei dieser Checkout-Ereignisse verarbeiten können.

Jede Nutzlast des Checkout-Webhooks beinhaltet das Checkout-Sitzungsobjekt, das Informationen über die Kundinnen/Kunden und den PaymentIntent enthält.

Der Webhook checkout.session.completed wird an Ihren Server übermittelt, bevor Ihre Kund/innen weitergeleitet werden. Ihre Annahme des Webhooks (ein beliebiger 2xx-Statuscode) löst die Weiterleitung der Kund/innen an die success_url aus. Wenn Stripe innerhalb von 10 Sekunden nach erfolgreicher Zahlung keine volle Empfangsbestätigung erhält, werden Ihre Kund/innen automatisch zur success_url-Seite weitergeleitet.

Zeigen Sie Ihren Kundinnen/Kunden auf Ihrer success_url-Seite eine Meldung über den Zahlungserfolg an und informieren Sie sie, dass die Ausführung der Bestellung einige Tage dauert, da die Zahlung mit dem Bacs-Lastschriftverfahren nicht sofort erfolgt.

Wenn Sie neben Zahlungen mit verzögerter Benachrichtigung auch Sofortzahlungen (wie Kreditkarten) akzeptieren, aktualisieren Sie Ihren Webhook-Endpoint, um beim Empfang eines checkout.session.completed-Ereignisses beide Zahlungsarten zu verarbeiten.

Ruby
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
# You can find your endpoint's secret in your webhook settings endpoint_secret = 'whsec_...' # Using Sinatra post '/webhook' do payload = request.body.read event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. sig_header = request.env['HTTP_STRIPE_SIGNATURE'] begin event = Stripe::Webhook.construct_event( payload, sig_header, endpoint_secret ) rescue JSON::ParserError => e # Invalid payload status 400 return rescue Stripe::SignatureVerificationError => e # Invalid signature status 400 return end case event['type'] when 'checkout.session.completed' session = event['data']['object'] # Check if the order is paid (for example, from a card payment) payment_intent = Stripe::PaymentIntent.retrieve(session.payment_intent) # A delayed notification payment will have the status 'processing' order_paid = payment_intent.status == "succeeded" # Save an order in your database, marked as 'awaiting payment' create_order(session) if order_paid fulfill_order(session) end when 'checkout.session.async_payment_succeeded' session = event['data']['object'] # Fulfill the purchase... fulfill_order(session) when 'checkout.session.async_payment_failed' session = event['data']['object'] # Send an email to the customer asking them to retry their order email_customer_about_failed_payment(session) end status 200 end

Sie können Informationen über die Kund/innen und die Zahlung abrufen, indem Sie die Customer- oder PaymentIntent-Objekte abrufen, auf die von den Eigenschaften customer, payment_intent in der Webhook-Payload verwiesen wird.

Webhooks lokal testen

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

Mittlerweile sollten Sie über eine grundlegende Integration des Bacs-Lastschriftverfahrens verfügen, die Bankverbindungen erfassen und Zahlungen akzeptieren kann.

There are several test bank account numbers you can use in a sandbox to make sure this integration is ready.

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.
10880034343434The payment fails with a charge_exceeds_source_limit failure code due to the payment amount causing the account to exceed its weekly payment volume limit.
10880012121212The payment fails with a charge_exceeds_weekly_limit failure code due to the payment amount exceeding the account’s transaction volume limit.

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

By default, Stripe automatically sends emails to the customer when payment details are initially collected and each time a debit will be made on their account. These notifications aren’t sent in sandboxes.

Fehlgeschlagene Zahlungen

Für fehlgeschlagene Zahlungen gibt es verschiedene Ursachen. Diese entnehmen Sie dem charge.failure_code. Sie können nur Zahlungen mit bestimmten Fehlercodes erneut versuchen. Wenn Sie keine Wiederholung durchführen können, 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 bei der Erstellung und Wartung Ihres Codes 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 Kund/innen haben die Zahlung ihrer Bank 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 der zahlenden Person.

Siehe auch

  • Payment-Intent-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