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
Entwickler-Tools
Ü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
      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
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 debitsSEPA Direct Debit

SEPA-Lastschriftzahlungen annehmen

So nehmen Sie SEPA-Lastschriftzahlungen an.

Seite kopieren

Notiz

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 eine PaymentMethod vom Typ SEPA-Lastschrift einrichten, indem Sie Kundinnen/Kunden ihre Bankdaten mit Bancontact, iDEAL oder Sofort authentifizieren lassen.

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
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# 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
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

PaymentIntent erstellen
Serverseitig

Ein PaymentIntent ist ein Objekt, das Ihre Absicht, Zahlungen von Kundinnen und Kunden einzuziehen, repräsentiert und den gesamten Zahlungsvorgang dokumentiert. Erstellen Sie zunächst einen PaymentIntent auf Ihrem Server und geben Sie den einzuziehenden Betrag und die Währung eur an (andere Währungen werden von SEPA-Lastschrift nicht unterstützt). Falls Sie bereits über eine Integration verfügen, die die Payment Intents API nutzt, fügen Sie der Liste der Zahlungsmethoden für Ihren PaymentIntent die Zahlungsmethode sepa_debit 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
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_checker]"="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/v3/"></script> </head>

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

const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); const elements = stripe.elements();

IBAN-Element hinzufügen und konfigurieren

Weisen Sie Elements in Ihrem Zahlungsformular einen festen Platz zu. Erstellen Sie in Ihrem Zahlungsformular leere DOM-Knoten (Container) mit eindeutigen IDs und übergeben Sie diese IDs dann an Elements. Außerdem müssen Ihre Kundinnen und Kunden das SEPA-Lastschriftmandat lesen und akzeptieren.

Zeigen Sie den folgenden Standard-Autorisierungstext an, damit Ihre Kund/innen das Mandat implizit akzeptieren.

Ersetzen Sie Rocket Rides durch den Namen Ihres Unternehmens.

Authorization text template

By providing your payment information and confirming this payment, you authorise (A) and Stripe, our payment service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights are explained in a statement that you can obtain from your bank. You agree to receive notifications for future debits up to 2 days before they occur.

Kopieren

Beim Einrichten einer Zahlungsmethode oder Bestätigen einer PaymentIntent wird das akzeptierte Mandat erstellt. Da die Kund/innen das Mandat implizit akzeptiert haben, müssen Sie diese Bedingungen in Ihrem Formular oder per E-Mail mitteilen.

submit_payment.html
HTML
<form action="/charge" method="post" id="payment-form"> <div class="form-row inline"> <div class="col"> <label for="accountholder-name"> Name </label> <input id="accountholder-name" name="accountholder-name" placeholder="Jenny Rosen" required /> </div> <div class="col"> <label for="email"> Email Address </label> <input id="email" name="email" type="email" placeholder="jenny.rosen@example.com" required /> </div> </div> <div class="form-row"> <!-- Using a label with a for attribute that matches the ID of the Element container enables the Element to automatically gain focus when the customer clicks on the label. --> <label for="iban-element"> IBAN </label> <div id="iban-element"> <!-- A Stripe Element will be inserted here. --> </div> </div> <!-- Add the client_secret from the PaymentIntent as a data attribute --> <button id="submit-button" data-secret="{{CLIENT_SECRET}}">Submit Payment</button> <!-- Display mandate acceptance text. --> <div id="mandate-acceptance"> By providing your payment information and confirming this payment, you authorise (A) Rocket Rides and Stripe, our payment service provider and/or PPRO, its local service provider, to send instructions to your bank to debit your account and (B) your bank to debit your account in accordance with those instructions. As part of your rights, you are entitled to a refund from your bank under the terms and conditions of your agreement with your bank. A refund must be claimed within 8 weeks starting from the date on which your account was debited. Your rights are explained in a statement that you can obtain from your bank. You agree to receive notifications for future debits up to 2 days before they occur. </div> <!-- Used to display form errors. --> <div id="error-message" role="alert"></div> </form>

Wenn das Formular geladen wurde, erstellen Sie eine Instanz des IBAN-Elements und verbinden Sie sie mit dem Element-Container:

// Custom styling can be passed to options when creating an Element. const style = { base: { color: '#32325d', fontSize: '16px', '::placeholder': { color: '#aab7c4' }, ':-webkit-autofill': { color: '#32325d', }, }, invalid: { color: '#fa755a', iconColor: '#fa755a', ':-webkit-autofill': { color: '#fa755a', }, }, }; const options = { style, supportedCountries: ['SEPA'], // Elements can use a placeholder as an example IBAN that reflects // the IBAN format of your customer's country. If you know your // customer's country, we recommend passing it to the Element as the // placeholderCountry. placeholderCountry: 'DE', }; // Create an instance of the IBAN Element const iban = elements.create('iban', options); // Add an instance of the IBAN Element into the `iban-element` <div> iban.mount('#iban-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.

Achten Sie aber auf einen vorsichtigen Umgang mit dem Client-Geheimnis, da mit ihm die Zahlung abgeschlossen werden kann. Es darf nicht protokolliert, in URLs eingebettet oder Personen außer den Kund/innen selbst zugänglich gemacht werden.

Verwenden Sie stripe.confirmSepaDebitPayment, damit die Zahlung abgeschlossen wird, wenn der/die Nutzer/in das Formular absendet. Die Angabe des Namens und der E-Mail-Adresse der Kundinnen/Kunden in der Eigenschaft billing_details des Parameters payment_method ist erforderlich, um die PaymentMethod SEPA-Lastschrift zu erstellen. Zusätzlich werden die Eigenschaften country and line1 der Eigenschaft billing_details.address für IBANs mit diesen Ländercodes benötigt: AD, PF, TF, GI, GB, GG, VA, IM, JE, MC, NC, BL, PM, SM, CH, WF. Überwachen Sie das change-Ereignis des IBAN-Elements, um den Ländercode der IBAN zu erhalten.

const form = document.getElementById('payment-form'); const accountholderName = document.getElementById('accountholder-name'); const email = document.getElementById('email'); const submitButton = document.getElementById('submit-button'); const clientSecret = submitButton.dataset.secret; form.addEventListener('submit', (event) => { event.preventDefault(); stripe.confirmSepaDebitPayment( clientSecret, { payment_method: { sepa_debit: iban, billing_details: { name: accountholderName.value, email: email.value, }, }, } ); });

Erfolgreiche PaymentIntent bestätigen

SEPA-Lastschrift ist eine Zahlungsmethode mit verzögerter Benachrichtigung. Das bedeutet, dass Gelder nicht sofort verfügbar sind. Wenn die Zahlung erfolgreich übermittelt wurde, wird der Status des PaymentIntent von requires_confirmation auf processing aktualisiert. Nach erfolgreicher Zahlung wird der PaymentIntent-Status von processing auf succeeded aktualisiert.

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
KontonummerBeschreibung
BE62510007547061Der Status des PaymentIntent wechselt von processing zu succeeded.
BE78510007547064Der Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu succeeded.
BE68539007547034Der Status des PaymentIntent wechselt von processing zu requires_payment_method.
BE51510007547065Der Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu requires_payment_method.
BE08510007547063Der Status des PaymentIntent wechselt von processing zu succeeded, es wird jedoch sofort eine Zahlungsanfechtung erstellt.
BE90510000343434Die Zahlung schlägt mit dem Fehlercode charge_exceeds_source_limit fehl, da der Zahlungsbetrag den wöchentlichen Grenzwert für das Zahlungsvolumen überschreitet.
BE52510000121212Die Zahlung schlägt mit dem Fehlercode charge_exceeds_weekly_limit fehl, da der Zahlungsbetrag das Transaktionsvolumenlimit des Kontos überschreitet.
BE90510002222227Die Zahlung schlägt mit dem Fehlercode insufficient_funds fehl.

OptionalIBAN-Element validieren

OptionalAbbuchungsdatum für Kunde/Kundin konfigurieren

OptionalMandatsreferenzen mit einem Präfix anpassen

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