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
Billing
    Übersicht
    Über die Billing APIs
    Abonnements
      So funktionieren Abonnements
      Quickstart
      Use Cases
      Ihre Integration erstellen
      Funktionen für Abonnements
        Rechnungen für Abonnements
        Abonnementpläne
        Abonnementpreise
        Wiederkehrende Preismodelle
        Preistabelle einbetten
        Abonnements starten
        Mengen festlegen
        Abrechnungszyklen einrichten
        Abonnements zurückdatieren
        Mehrere Artikel abonnieren
        Testzeiträume einrichten
        Gutscheine anwenden
        Abonnements zu Stripe migrieren
        So werden anteilmäßig verrechnete Gutschriften berechnet
        Abonnementzahlungen
        Zahlungsmethoden für Abonnements
          ACH Direct Debit
          Amazon Pay
          BACS-Lastschriften im Vereinigten Königreich
          Banküberweisung
          BECS-Lastschriftverfahren in Australien
          Cash App Pay
          PayPal
          Revolut Pay
          Koreanische Karten
          Kakao Pay
          Naver Pay
          Vorab autorisierte Lastschriften in Kanada
          SEPA-Lastschriften in der EU
          iDEAL mit SEPA-Lastschrift
          Bancontact mit SEPA-Lastschrift
          Sofort mit SEPA Direct Debit
        Integration mit Drittanbietern von Zahlungsdienstleistungen
        Einzugsmethoden
        Teilen Sie einen Link, um die Zahlungsdetails zu aktualisieren
        Starke Kundenauthentifizierung (SCA)
        Abonnements verwalten
        Abonnements bearbeiten
        Ausstehende Aktualisierungen verwalten
      Analytik
    Invoicing
    Nutzungsbasierte Abrechnung
    Connect und Billing
    Tax und Billing
    Angebote
    Umsatzsicherung
    Automatisierungen
    Skripte
    Umsatzrealisierung
    Kundenverwaltung
    Berechtigungen
    Integration testen
Steuer
Berichte
Daten
Start-up-Gründung
StartseiteFinanzautomatisierungBillingSubscriptionsSubscription featuresSubscription payment methods

Ein Abonnement mit vorab autorisierten Lastschriften in Kanada einrichten

Erfahren Sie, wie Sie ein Abonnement mit kanadischen vorab autorisierten Lastschriften erstellen und abrechnen können.

Seite kopieren

Notiz

Der Abonnement-Modus in Checkout wird noch nicht unterstützt. Um mehr über den frühzeitigen Zugriff zu erfahren, wenn diese Funktion verfügbar ist, kontaktieren Sie uns, um sich auf der Warteliste zu registrieren.

Produkt und Preis erstellen
Dashboard

Produkte stehen für den von Ihnen angebotenen Artikel oder Dienst. Preise geben an, wie viel und wie häufig Sie für ein Produkt berechnen. Dies schließt ein, wie viel ein Produkt kostet, welche Währung Sie akzeptieren und ob es sich um eine einmalige oder eine wiederkehrende Zahlung handelt. Wenn Sie nur ein paar wenige Produkte und Preise haben, können Sie diese im Dashboard erstellen und verwalten.

In diesem Leitfaden wird ein Stock-Foto-Service als Beispiel verwendet, für den Kund/innen ein monatliches Abonnement mit dem Betrag von 15 CAD berechnet werden. Um dies zu modellieren:

  1. Navigieren Sie zur Seite Produkt hinzufügen.
  2. Geben Sie einen Namen für das Produkt an.
  3. Geben Sie 15 für den Preis ein.
  4. Wählen Sie als Währung CAD aus.
  5. Klicken Sie auf Produkt speichern.

Zeichnen Sie nach Erstellen des Produkts und des Preises die Preis-ID auf, sodass Sie diese in nachfolgenden Schritten verwenden können. Die ID wird auf der Preisseite angezeigt und sieht in etwa so aus: price_G0FvDp6vZvdwRZ.

Abonnement erstellen
Serverseitig

Notiz

Informationen dazu, wie Sie ein Abonnement mit einer kostenlosen Testphase erstellen, finden Sie unter Abonnement-Testphasen.

Erstellen Sie ein Abonnement mit dem Preis und dem Kunden/der Kundin mit dem Status incomplete, indem Sie den Parameter payment_behavior mit dem Wert default_incomplete angeben.

Command Line
curl
curl https://api.stripe.com/v1/subscriptions \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d "customer"="{{CUSTOMER_ID}}" \ -d "items[0][price]"="price_F52b2UdntfQsfR" \ -d "payment_behavior"="default_incomplete" \ -d "payment_settings[payment_method_types][]"="acss_debit" \ -d "expand[0]"="latest_invoice.payment_intent"

The response includes the subscription’s first Invoice. This contains the invoice’s payments, which includes a default PaymentIntent that Stripe generated for this invoice and the confirmation secret which you can use on the client side to securely complete the payment process instead of passing the entire PaymentIntent object. Return the latest_invoice.confirmation_secret.client_secret to the front end to complete payment.

Angaben zur Zahlungsmethode und Mandatsbestätigung erfassen
Clientseitig

Um vorab autorisierte Lastschriftzahlungen in Kanada verwenden zu können, müssen Sie mithilfe einer vorab autorisierten Lastschriftvereinbarung (siehe PAD-Mandate) die Zustimmung Ihrer Kundin/Ihres Kunden für einmalige und wiederkehrende Lastschriften einholen. Das Mandate-Objekt zeichnet diese Vereinbarung und Autorisierung auf.

Stripe konfiguriert automatisch Mandate für Abonnements und Rechnungen für Sie. Der/die Kund/in muss die Mandatsbedingungen nur einmal bestätigen. Nachfolgende Abonnementzahlungen werden ohne weitere Aktion durchgeführt.

Wenn Kundinnen/Kunden über das „Click to Pay“-Verfahren mit Canadian pre-authorized debit zahlen, empfehlen wir Ihnen, Stripe.js zu verwenden, um die Zahlung an Stripe zu übermitteln. Stripe.js ist unsere grundlegende JavaScript-Bibliothek für die Erstellung von Zahlungsabläufen. Sie übernimmt automatisch komplexe Integrationsaufgaben und ermöglicht es Ihnen, Ihre Integration in Zukunft unkompliziert um andere Zahlungsmethoden zu erweitern.

Binden Sie das Stripe.js-Skript in Ihre Zahlungsseite ein, indem Sie es im head Ihrer HTML-Datei einfügen.

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

Erstellen Sie auf Ihrer Bezahlseite eine Instanz von Stripe.js mit dem folgenden JavaScript.

client.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'
);

Anstatt das gesamte PaymentIntent-Objekt an den Client zu übermitteln, verwenden Sie dessen Client-Geheimnis aus dem vorherigen Schritt. 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.confirmAcssDebitPayment, um Bankkontodaten und Verifizierungen zu erfassen, das Mandat zu bestätigen und die Zahlung abzuschließen, wenn der/die Nutzer/in das Formular übermittelt. Die Angabe der E-Mail-Adresse der Kundinnen/Kunden und des Namens der Kontoinhaber/innen in der Eigenschaft billing_details des Parameters payment_method ist erforderlich, um eine Zahlungsmethode für vorab autorisierte Lastschriften (PAD) zu erstellen.

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', async (event) => { event.preventDefault(); const {paymentIntent, error} = await stripe.confirmAcssDebitPayment( clientSecret, { payment_method: { billing_details: { name: accountholderName.value, email: email.value, }, }, } ); if (error) { // Inform the customer that there was an error. console.log(error.message); } else { // Handle next step based on PaymentIntent's status. console.log("PaymentIntent ID: " + paymentIntent.id); console.log("PaymentIntent status: " + paymentIntent.status); } });

Stripe.js lädt anschließend eine modale On-Page-Nutzeroberfläche, um die Erfassung und Überprüfung der Bankkontodaten abzuwickeln, eine gehostete Mandatsvereinbarung anzuzeigen und die Autorisierung einzuholen.

Notiz

Die Ausführung von stripe.confirmAcssDebitPayment kann einige Sekunden dauern. Während dieser Zeit sollten Sie Ihr Formular deaktivieren, damit keine erneute Übermittlung erfolgen kann. Lassen Sie stattdessen ein Wartesymbol einblenden, wie beispielsweise eine Sanduhr. Tritt ein Fehler auf, lassen Sie eine Fehlermeldung für die Kundin/den Kunden anzeigen, aktivieren Sie das Formular erneut und blenden Sie das Wartesymbol aus.

Wenn der/die Kund/in die Sofortüberprüfung abschließt, wird das Abonnement automatisch active. Lesen Sie andernfalls im folgenden Abschnitt nach, wie die Verifizierung von Testeinzahlungen abgewickelt wird, während das Abonnement incomplete bleibt.

Bankkonto mit Testeinzahlungen verifizieren
Clientseitig

Notiz

Kund/innen haben 10 Tage Zeit, um Testeinzahlungen für ein Abonnements erfolgreich zu verifizieren, statt der normalerweise im Lebenszylus eines Abonnements angegebenen 23 Stunden. Diese Ablauffrist kann jedoch nicht nach dem Datum des Abrechnungszyklus liegen.

Nicht alle Kund/innen können das Bankkonto sofort verifizieren. Dieser Schritt wird nur ausgeführt, wenn Ihre Kundin/Ihr Kunde die Sofortverifizierung im vorherigen Schritt deaktiviert hat.

In this case, Stripe automatically sends two micro-deposits to the customer’s bank account. These deposits take 1–2 business days to appear on the customer’s online statement and have statement descriptors that include ACCTVERIFY.

Das Ergebnis des Aufrufs der Methode stripe.confirmAcssDebitPayment im vorhergehenden Schritt ist ein PaymentIntent mit dem Status requires_action. Der PaymentIntent enthält das Feld next_action, das einige nützliche Informationen zum Abschließen der Verifizierung enthält.

Stripe benachrichtigt Ihre Kundinnen/Kunden über die E-Mail-Adresse für die Rechnungsstellung, wann die Einzahlungen voraussichtlich eingehen werden. Die E-Mail enthält einen Link zu einer von Stripe gehosteten Verifizierungsseite, auf der sie die Beträge der Einzahlungen bestätigen und die Verifizierung abschließen können.

Es besteht eine Grenze von drei fehlgeschlagenen Verifizierungsversuchen. Wenn diese Grenze überschritten wird, kann das Bankkonto nicht mehr verifiziert werden. Zusätzlich gibt es für Verifizierungen von Testeinzahlungen eine Frist von 10 Tagen. Werden Testeinzahlungen nicht innerhalb dieser Zeit verifiziert, fordert die PaymentIntent wieder neue Angaben zur Zahlungsmethode an. Wenn Sie Ihren Kund/innen genau erläutern, was Testeinzahlungen sind und wie sie verwendet werden, können Sie Probleme bei der Verifizierung vermeiden.

Optional: Nutzerdefinierte E-Mails und Verifizierungsseite

Wenn Sie nutzerdefinierte Benachrichtigungen versenden möchten, müssen Sie stattdessen E-Mails an Ihre Kundinnen/Kunden senden. Dafür können Sie die URL verify_with_microdeposits[hosted_verification_url] im Objekt next_action verwenden, um Ihre Kundinnen/Kunden aufzufordern, den Verifizierungsvorgang abzuschließen.

Wenn Sie nutzerdefinierte E-Mails versenden und nicht die von Stripe gehostete Verifizierungsseite verwenden möchten, können Sie auf Ihrer Website ein Formular für Ihre Kundinnen/Kunden zur Weiterleitung dieser Beträge an Sie erstellen und das Bankkonto mit Stripe.js verifizieren.

stripe.verifyMicrodepositsForPayment(clientSecret, { amounts: [32, 45], });

Standard-Zahlungsmethode festlegen
Server

Sie haben jetzt ein aktives Abonnement eines/einer Kund/in mit einer Zahlungsmethode. Diese Zahlungsmethode wird jedoch nicht automatisch für zukünftige Zahlungen verwendet. Um diese Zahlungsmethode in Zukunft automatisch zu belasten, verwenden Sie einen Webhook-Consumer, um das Ereignis invoice.payment_succeeded für neue Abonnements zu überwachen und die Standard-Zahlungsmethode festzulegen.

server.rb
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'
if event.type == 'invoice.payment_succeeded' invoice = event.data.object if invoice['billing_reason'] == 'subscription_create' subscription_id = invoice['parent']['subscription_details']['subscription'] # This example assumes you're using the default PaymentIntent that Stripe generated for the invoice. invoice_payments = Stripe::InvoicePayment.list({invoice: invoice['id']}) payment_intent_id = invoice_payments.data[0].payment.payment_intent # Retrieve the payment intent used to pay the subscription payment_intent = Stripe::PaymentIntent.retrieve(payment_intent_id) # Set the default payment method Stripe::Subscription.update( subscription_id, default_payment_method: payment_intent.payment_method ) end end

Abonnementstatus verwalten
Clientseitig

Sofern die erste Zahlung erfolgreich war, ist der Status des Abonnements active, und es sind keine weiteren Maßnahmen erforderlich. Wenn Zahlungen fehlschlagen, ändert sich der Status in den Abonnementstatus, der in Ihren Einstellungen für den automatischen Einzug konfiguriert ist. Benachrichtigen Sie die Kund/innen, wenn die Zahlung fehlgeschlagen ist und belasten Sie sie mit einer anderen Zahlungsmethode.

Notiz

Kanadische vorab autorisierte Lastschriftzahlungen werden nie automatisch wiederholt, auch dann nicht, wenn Sie einen Wiederholungsplan für andere Zahlungsmethoden konfiguriert haben.

Integration testen

E-Mail zur Verifizierung der Testeinzahlung erhalten

To receive the micro-deposit verification email in a sandbox after collecting the bank account details and accepting a mandate, provide an email in the payment_method[billing_details][email] field in the form of {any_prefix}+test_email@{any_domain} when confirming the payment method details.

Testkontonummern

Stripe stellt mehrere Testnummern zur Verfügung, um sicherzustellen, dass Ihre Integration für manuell eingegebene Bankkontodaten produktionsbereit ist. Alle Testkonten, die eine Zahlung automatisch ausführen oder fehlschlagen lassen, müssen vor dem Zahlungsabschluss anhand der unten aufgeführten Testeinzahlungen überprüft werden.

InstitutsnummerTransitnummerKontonummerSzenario
00011000000123456789Die Zahlung ist sofort nach Prüfung der Testeinzahlungen erfolgreich.
00011000900123456789Die Zahlung ist mit einer Verzögerung von drei Minuten nach Prüfung der Testeinzahlungen erfolgreich.
00011000000222222227Die Zahlung schlägt sofort nach Prüfung der Testeinzahlungen fehl.
00011000900222222227Die Zahlung schlägt mit einer Verzögerung von drei Minuten nach Prüfung der Testeinzahlungen fehl.
00011000000666666661Die Testeinzahlungen zur Verifizierung schlagen fehl.
00011000000777777771Fails the payment due to the payment amount causing the account to exceed its weekly payment volume limit.
00011000000888888881Fails the payment due to the payment amount exceeding the account’s transaction limit.

To mimic successful or failed bank account verifications in a sandbox, use these meaningful amounts for micro-deposits:

Werte für TesteinzahlungenSzenario
32 und 45Die Verifizierung des Kontos ist erfolgreich.
10 und 11Simuliert das Überschreiten der Anzahl zulässiger Verifizierungsversuche.
Jede andere ZahlenkombinationDie Verifizierung des Kontos schlägt fehl.

OptionalAbrechnungszyklus festlegen

OptionalAbonnement-Testphasen

OptionalDetails der Zahlungsmethode für spätere Verwendung speichern

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