Weiter zum Inhalt
Konto erstellen oder anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellenAnmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
APIs und SDKsHilfe
ÜbersichtZahlung annehmenAktualisieren Sie Ihre Integration
Online-Zahlungen
ÜbersichtIhren Use case finden
Payment Links verwenden
Vorgefertigte Checkout-Seite verwenden
Erstellen Sie eine benutzerdefinierte Integration mit Elements
In-App-Integration erstellen
Verwenden Sie Managed Payments
Wiederkehrende Zahlungen
Präsenzzahlungen
Terminal
Zahlungsmethoden
Zahlungsmethoden hinzufügen
    Übersicht
    Optionen für die Integration von Zahlungsmethoden
    Standardzahlungsmethoden im Dashboard verwalten
    Arten von Zahlungsmethoden
    Karten
    Mit Stripe-Guthaben bezahlen
    Stablecoin-Zahlungen
    Lastschriften
      ACH Direct Debit
      BACS-Lastschriftverfahren
      Vorab autorisierte Lastschriften in Kanada
      BECS-Lastschriftverfahren (Australien)
      BECS-Lastschriftverfahren in Neuseeland
      SEPA-Lastschrift
        Zahlung annehmen
        Bankverbindung speichern
    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
Zahlungsvorgänge
Analytik
Salden und Abwicklungsdauer
Compliance und Sicherheit
Währungen
Abgelehnte Zahlungen
Anfechtungen
Betrugsprävention
Betrugsprävention von Radar
Auszahlungen
ZahlungsbelegeRückerstattungen und Stornierungen
Erweiterte Integrationen
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
Off-Session-Zahlungen
Multiprozessor-Orchestrierung
Mehr als Zahlungen
Unternehmensgründung
Krypto
Agentenbasierter Handel
Maschinelle Zahlungen
Financial Connections
Climate
Identitäten verifizieren
Vereinigte Staaten
Deutsch
StartseiteZahlungenAdd payment methodsBank debitsSEPA Direct Debit

SEPA-Lastschriftzahlungen annehmen

So nehmen Sie SEPA-Lastschriftzahlungen an.

Hinweis

Bei der Abwicklung von SEPA-Lastschriftzahlungen mit der Gläubiger-Identifikationsnummer von Stripe empfehlen wir Ihnen, die vorgefertigte Checkout-Seite zu verwenden, um SEPA-Lastschriftmandate einzuholen.

Für die Annahme von SEPA-Lastschriftzahlungen auf Ihrer Website müssen ein Objekt zum Überprüfen von Zahlungen erstellt, Informationen zur Zahlungsmethode und die Mandatsbestätigung erfasst und Zahlungen zur Verarbeitung an Stripe übermittelt werden. Stripe verwendet das Zahlungsobjekt, die PaymentIntent, zur Dokumentation und Verarbeitung aller Zahlungsstatus bis zum Zahlungsabschluss.

Sie können auch ein SEPA-Lastschrift-PaymentMethod einrichten, indem Ihre Kundin/Ihr Kunde ihre/seine Bankdaten über Bancontact oder iDEAL authentifiziert.

Stripe einrichten
Serverseitig

Als Erstes 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'

Kund/innen erstellen oder abrufen
Serverseitig

Um ein SEPA-Lastschriftkonto für zukünftige Zahlungen wiederzuverwenden, muss es einem Customer-Objekt zugeordnet werden.

Sie sollten ein Customer-Objekt erstellen, wenn Ihre Kund/innen ein Konto bei Ihrem Unternehmen anlegen. Wenn Sie die ID des Customer-Objekts mit Ihrer eigenen Darstellung einer Kundin/eines Kunden verknüpfen, können Sie später die gespeicherten Angaben zur Zahlungsmethode abrufen und verwenden.

Legen Sie neue Kund/innen an oder rufen Sie bestehende Kund/innen ab, um sie mit dieser Zahlung zu verknüpfen. Fügen Sie den folgenden Code auf Ihrem Server ein, um neue Kund/innen 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
:"

PaymentIntent erstellen
Serverseitig

Ein PaymentIntent ist ein Objekt, das Ihre Absicht darstellt, eine Zahlung von einer Kundin/einem Kunden einzuziehen und das den Lebenszyklus des Zahlungsprozesses in jeder Phase verfolgt. Erstellen Sie zunächst ein PaymentIntent auf Ihrem Server und geben Sie den einzuziehenden Betrag und die Währung eur an (andere Währungen werden von SEPA-Lastschriftverfahren nicht unterstützt). Wenn Sie bereits eine Integration mit der Payment Intents API haben, fügen Sie sepa_debit zur Liste der Zahlungsmethoden für Ihren PaymentIntent hinzu. Geben Sie die ID der Kundin/des Kunden an.

Um ein SEPA-Lastschriftkonto für eine erneute Verwendung zu speichern, legen Sie den Parameter setup_future_usage auf off_session fest. SEPA-Lastschrift akzeptiert für diesen Parameter nur den Wert off_session.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1099 \ -d currency=eur \ -d setup_future_usage=off_session \ -d customer=
"{{CUSTOMER_ID}}"
\ -d "payment_method_types[]"=sepa_debit \ -d "metadata[integration_check]"=sepa_debit_accept_a_payment

Angaben zur Zahlungsmethode und Mandatsbestätigung erfassen
Clientseitig

Sie können jetzt mit Stripe Elements Zahlungsinformationen auf dem Client erfassen. Elements beinhaltet vorgefertigte Komponenten der Nutzeroberfläche zur Erfassung von Zahlungsdetails.

Ein Stripe Element enthält ein iframe, dass die Zahlungsdaten über eine HTTPS-Verbindung sicher an Stripe sendet. Die Adresse der Bezahlseite muss ebenfalls mit https:// beginnen, nicht mit http://, damit Ihre Integration funktioniert.

Sie können Ihre Integration ohne HTTPS testen. Dann müssen Sie das Protokoll aber aktivieren, bevor Sie Ihre ersten Live-Zahlungen empfangen.

Stripe Elements einrichten

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

submit_payment.html
<head> <title>Submit Payment</title> <script src="https://js.stripe.com/clover/stripe.js"></script> </head>

Erstellen Sie eine Instanz von Elements mit dem folgenden JavaScript auf Ihrer Zahlungsseite. Übergeben Sie den Modus, die Währungen und den Betrag, damit das Payment Element Zahlungsdetails für SEPA-Lastschriften einziehen kann:

const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const options = { mode: 'payment', currency: 'eur', amount: 1099, // Automatically save the payment method for future payments setup_future_usage: 'off_session', }; const elements = stripe.elements(options);

Payment-Element hinzufügen

Das Payment-Element benötigt einen Platz in Ihrem Zahlungsformular. Erstellen Sie in Ihrem Zahlungsformular einen leeren DOM-Knoten (Container) mit einer eindeutigen ID. Das Payment-Element zeigt das SEPA-Lastschriftsformular und den Mandatsannahmetext automatisch an, wenn „SEPA-Lastschrift“ aktiviert ist

submit_payment.html
<form action="/charge" method="post" id="payment-form"> <div id="payment-element"> <!-- The Payment Element will be inserted here. --> </div> <!-- Add the client_secret from the PaymentIntent as a data attribute --> <button id="submit-button" data-secret="{{CLIENT_SECRET}}">Submit Payment</button> <!-- Used to display form errors. --> <div id="error-message" role="alert"></div> </form>

Wenn das Formular geladen wird, erstellen Sie eine Instanz für das Payment-Element und verbinden Sie sie mit dem Element-Container. Das Payment-Element erfasst automatisch den Namen, die E-Mail-Adresse und die IBAN der Kundin/des Kunden und zeigt den Text für die Mandatsannahme an:

// Create and mount the Payment Element const paymentElement = elements.create('payment'); paymentElement.mount('#payment-element');

Zahlung an Stripe senden
Clientseitig

Anstatt das gesamte PaymentIntent-Objekt an den Client zu senden, verwenden Sie dessen Client-Geheimnis aus Schritt 3. Dieses unterscheidet sich von Ihren API-Schlüsseln, mit denen Anfragen der Stripe-API authentifiziert werden.

The client secret should still be handled carefully because it can complete the charge. Don’t log it, embed it in URLs, or expose it to anyone but the customer.

Verwenden Sie stripe.confirmPayment, um die Zahlung abzuschließen, wenn die Nutzerin/der Nutzer das Formular absendet. Das Payment Element erfasst automatisch den Namen, die E-Mail-Adresse und die IBAN der Kundin/des Kunden und übernimmt die Annahme des Mandats:

const form = document.getElementById('payment-form'); const submitButton = document.getElementById('submit-button'); const clientSecret = submitButton.dataset.secret; form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ elements, clientSecret, confirmParams: { return_url: 'https://example.com/order/complete', }, }); if (error) { // Show error to your customer (for example, payment details incomplete) const errorMessage = document.getElementById('error-message'); errorMessage.textContent = error.message; } else { // Your customer will be redirected to your `return_url`. } });

Erfolgreiche PaymentIntent bestätigen

SEPA Direct Debit is a delayed notification payment method, so funds aren’t immediately available. When the payment has been submitted successfully, the PaymentIntent status is updated from requires_confirmation to processing. After the payment has succeeded, the PaymentIntent status is updated from processing to succeeded.

Die folgenden Ereignisse werden übermittelt, wenn der PaymentIntent-Status aktualisiert wird:

EreignisBeschreibungNächste Schritte
payment_intent.processingDie Zahlung der Kundin/des Kunden wurde erfolgreich an Stripe übermittelt.Warten Sie, bis die initiierte Zahlung erfolgt oder fehlschlägt.
payment_intent.succeededDie Kundenzahlung war erfolgreich.Wickeln Sie die Bestellung des/der Kund/in ab.
payment_intent.payment_failedDie Zahlung des/der Kund/in wurde abgelehnt.Kontaktieren Sie Ihre/n Kund/in per E-Mail oder Push-Benachrichtigung und fordern Sie eine andere Zahlungsmethode an.

Wir empfehlen die Verwendung von Webhooks, um die erfolgreiche Abbuchung zu bestätigen und die Kundinnen/Kunden zu informieren, dass die Zahlung abgeschlossen ist.

Beachten Sie, dass die PaymentMethod dem Customer-Objekt zugeordnet wird, sobald die Zahlung den Status processing hat, da setup_future_usage und Kunde/Kundin festgelegt wurden. Diese Zuordnung erfolgt unabhängig davon, ob die Zahlung später erfolgt oder fehlschlägt.

Integration testen

Stripe stellt mehrere Testnummern zur Verfügung, um sicherzustellen, dass Ihre Integration für den Einsatz in einer Produktionsumgebung bereit ist. Verwenden Sie die Testnummern für SEPA-Lastschriften, wenn Sie Ihre Checkout-Integration mit SEPA-Lastschriften testen.

Test-IBANs

Sie können diese Test-IBANs mit dem Payment Element verwenden, um Ihre SEPA-Lastschrift-Integration zu testen. Wenn Sie einen dieser Testwerte eingeben , validiert das Payment Element automatisch die IBAN und zeigt das Mandat an.

KontonummerTokenBeschreibung
BE62510007547061pm_success_beDer Status des PaymentIntent wechselt von processing zu succeeded.
BE78510007547064pm_successDelayed_beDer Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu succeeded.
BE68539007547034pm_failed_beDer Status des PaymentIntent wechselt von processing zu requires_payment_method.
BE51510007547065pm_failedDelayed_beDer Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu requires_payment_method.
BE08510007547063pm_disputed_beDer Status des PaymentIntent wechselt von processing zu succeeded, es wird jedoch sofort eine Zahlungsanfechtung erstellt.
BE90510000343434pm_exceedsWeeklyVolumeLimit_beDie Zahlung schlägt mit dem Fehlercode charge_exceeds_source_limit fehl, da der Zahlungsbetrag den wöchentlichen Grenzwert für das Zahlungsvolumen überschreitet.
BE52510000121212pm_exceedsWeeklyTransactionLimit_beDie Zahlung schlägt mit dem Fehlercode charge_exceeds_weekly_limit fehl, da der Zahlungsbetrag das Transaktionsvolumenlimit des Kontos überschreitet.
BE90510002222227pm_insufficientFunds_beDie Zahlung schlägt mit dem Fehlercode insufficient_funds fehl.

Hinweis

Das Payment Element validiert automatisch die IBAN und andere Zahlungsdetails, während die Kundin bzw. der Kunde sie eingibt. Fehlermeldungen werden direkt im Payment Element angezeigt, sodass Sie die Validierung nicht manuell durchführen müssen.

OptionalAbbuchungsdatum für Kunde/Kundin konfigurieren

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.

OptionalMandatsreferenzen mit einem Präfix anpassen

Sie können die Mandatsreferenzen für SEPA-Lastschriften anpassen, um die Mandatsidentifikation zu vereinfachen. Geben Sie dazu den optionalen Wert payment_method_options.sepa_debit.mandate_options.reference_prefix an. Wir fügen das reference_prefix an den Anfang einer eindeutigen Sequenz an, um sicherzustellen, dass die gesamte Referenz einzigartig bleibt.

Der reference_prefix muss folgende Anforderungen erfüllen:

  • Maximale Länge: 12 Zeichen
  • Muss mit einer Zahl oder einem Großbuchstaben beginnen
  • Zulässige Zeichen:
    • Großbuchstaben
    • Zahlen
    • Freie Zeichen
    • Sonderzeichen: ., /, &, -, _
  • Darf nicht mit STRIPE beginnen

Fügen Sie jedes gewünschte Trennzeichen in das Präfix ein, da wir standardmäßig keines hinzufügen. Wir kürzen nachgestellte Leerzeichen auf maximal ein Leerzeichen. Bei einem gültigen Präfix ist der resultierende Verweis immer 24 Zeichen lang.

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d currency=eur \ -d amount=100 \ -d "payment_method_types[]"=sepa_debit \ -d "payment_method_options[sepa_debit][mandate_options][reference_prefix]"=EX4MPL3-

Die generierte Referenz sieht wie folgt aus: EX4MPL3-19CNCI920C2M02O3.

FehlercodeNachricht
invalid_sepa_mandate_reference_prefix_formatDer reference_prefix muss mindestens 12 Zeichen lang sein und darf nur aus Großbuchstaben, Ziffern, Leerzeichen oder den folgenden Sonderzeichen bestehen: /, _, -, & und .. Er darf nicht mit STRIPE beginnen.

Siehe auch

  • Daten von SEPA-Lastschriften für künftige Zahlungen speichern
  • Connect-Zahlungen
War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Chatten Sie mit Entwicklern/Entwicklerinnen von Stripe auf Discord.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc