# Kanadische vorab autorisierte Lastschriftzahlungen annehmen Erstellen Sie ein nutzerspezifisches Zahlungsformular für die Verwendung mit Stripe Checkout, um Zahlungen per vorab autorisierter Lastschriftzahlung in Kanada anzunehmen. # Bezahlvorgang > This is a Bezahlvorgang for when payment-ui is checkout. View the full page at https://docs.stripe.com/payments/acss-debit/accept-a-payment?payment-ui=checkout. Für die Annahme vorab autorisierter kanadischer Lastschriftzahlungen (PAD) 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 und Verifizierung des Bankkontos Ihrer Kundin oder Ihres Kunden an Stripe übermittelt werden. Mit Checkout können Sie eine Checkout-Sitzung mit `acss_debit` als Art der Zahlungsmethode erstellen, um alle Zahlungsstatus bis zum Abschluss der Zahlung zu verfolgen und zu verarbeiten. > Pre-authorized debit in Canada ist eine **Zahlungsmethode mit verzögerter Benachrichtigung**. Dies bedeutet, dass Gelder nicht sofort nach der Zahlung verfügbar sind. Eine Zahlung benötigt in der Regel **5 business days** bis zum Eingang auf Ihrem Konto. ## Kompatibilität bestimmen **Kundenregion**: Canada **Unterstützte Währungen**: `cad, usd` **Transaktionswährungen**: `cad, usd` **Zahlungsmodus**: Yes **Einrichtungsmodus**: Yes **Abonnementmodus**: [Contact us](mailto:payment-methods-feedback@stripe.com?subject=PADs%20Subscription%20Mode%20User%20Interest) Für die Unterstützung von Zahlungen per vorab autorisierter Lastschrift in Kanada muss eine Checkout-Sitzung alle folgenden Bedingungen erfüllen: - Sie können nur einmalige Posten verwenden (*Abonnements* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) werden in Checkout noch nicht unterstützt). - Die *Preise* (Prices define how much and how often to charge for products. This includes how much the product costs, what currency to use, and the interval if the price is for subscriptions) für alle Posten müssen in kanadischen oder US-Dollar angegeben werden (Währungscode `cad` bzw. `usd`). - Die Preise sämtlicher Posten müssen in derselben Währung sein. Falls Posten in verschiedenen Währungen vorhanden sind, muss für jede Währung eine separate Checkout-Sitzung erstellt werden. ### Dargestellte Währung Die meisten Bankkonten in Kanada werden in kanadischen Dollar (CAD) geführt, nur wenige in anderen Währungen wie dem US-Dollar (USD). PAD-Zahlungen können sowohl in CAD als auch in USD angenommen werden. Zur Vermeidung von Zahlungsfehlschlägen ist es jedoch wichtig, die korrekte Währung für Ihre Kundinnen und Kunden zu wählen. Im Gegensatz zu den meisten kartenbasierten Zahlungsmethoden können Sie ein CAD-Konto ggf. nicht erfolgreich in USD belasten und umgekehrt ein USD-Konto nicht in CAD belasten. In den meisten Fällen kommt es bei einem solchen Versuch noch nach bis zu fünf Werktagen zu einem verzögerten Fehlschlagen der Zahlung. Um solche Fehlschläge zu vermeiden, sollten Sie PAD-Zahlungen möglichst in CAD annehmen, sei denn, Sie sind sicher, dass das Konto Ihrer Kundin oder Ihres Kunden Lastschriften in USD akzeptiert. ## Zahlung annehmen > Erstellen Sie zunächst eine Integration, um mit Checkout [Zahlungen anzunehmen](https://docs.stripe.com/payments/accept-a-payment.md?integration=checkout), bevor Sie mit diesem Leitfaden fortfahren. Dieser Leitfaden führt Sie durch die Aktivierung von ACH Direct Debit und zeigt die Unterschiede zwischen der Annahme von Zahlungen mit dynamischen Zahlungsmethoden und der manuellen Konfiguration von Zahlungsmethoden. ### Kanadische vorab autorisierte Lastschriftzahlungen als Zahlungsmethode aktivieren Führen Sie bei der Erstellung einer neuen [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions.md) folgende Schritte aus: 1. Fügen Sie `acss_debit` zur Liste der `payment_method_types` hinzu. - Wenn Sie Zahlungsmethoden im Dashboard verwalten, müssen Sie `payment_method_types` nicht in den Bezahlvorgang aufnehmen, da [dynamische Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md) standardmäßig aktiviert sind. Sie müssen jedoch noch `payment_method_options` einfügen. 1. Stellen Sie sicher, dass alle `line_items` die Währung `cad` verwenden. 1. Geben Sie zusätzliche [payment_method_options](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-acss_debit)-Parameter an, die Ihre Transaktion beschreiben. Nachfolgend finden Sie weitere Details. Bei Zahlungen muss ein [Zahlungsplan](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-acss_debit-mandate_options-payment_schedule) festgelegt werden, den Kundinnen/Kunden beim Bezahlvorgang autorisieren können. Unter [PAD-Mandate](https://docs.stripe.com/payments/acss-debit.md#mandates) finden Sie weitere Informationen dazu, wie Sie die passenden Mandatsoptionen für Ihr Unternehmen auswählen: | Parameter | Wert | Erforderlich | | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | | `payment_method_options[acss_debit][mandate_options][payment_schedule]` | Der Zahlungsplan des Mandats. Folgende Werte werden unterstützt: `interval`, `sporadic` oder `combined`. In der Übersicht [PAD-Mandate](https://docs.stripe.com/payments/acss-debit.md#mandates) können Sie die passende Intervallbeschreibung für Ihr Unternehmen wählen. | Ja | | `payment_method_options[acss_debit][mandate_options][interval_description]` | Textbeschreibung des Zahlungsplans. In der Übersicht [PAD-Mandate](https://docs.stripe.com/payments/acss-debit.md#mandates) können Sie die passende Intervallbeschreibung für Ihr Unternehmen erstellen. | Erforderlich, wenn der Wert `payment_schedule` `interval` oder `combined` ist | | `payment_method_options[acss_debit][mandate_options][transaction_type]` | Die Art der Transaktionen, für die Sie das Mandat verwenden werden, entweder `personal` (wenn die Transaktionen aus persönlichen Gründen erfolgen) oder `business` (wenn die Transaktionen aus Gründen des Unternehmens erfolgen). | Ja | ### Checkout-Sitzung erstellen #### Von Stripe gehostete Seite ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=cad" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ -d "payment_method_options[acss_debit][mandate_options][interval_description]=First day of every month" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_types[0]=acss_debit" \ --data-urlencode "success_url=https://example.com/success" ``` #### Vollständige eingebettete Seite ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price_data][currency]=cad" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d mode=payment \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ -d "payment_method_options[acss_debit][mandate_options][interval_description]=First day of every month" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_types[0]=acss_debit" \ --data-urlencode "return_url=https://example.com/return" \ -d ui_mode=embedded_page ``` Während der Checkout-Sitzung wird den Kund/innen ein Modal der Nutzeroberfläche angezeigt, das die Erfassung der Bankkontodaten und eine sofortige Verifizierung handhabt, bei der optional auf eine Verifizierung mittels Testeinzahlungen ausgewichen werden kann. Für den eher unüblichen Fall, dass sich Kund/innen für die Verifizierung per Testeinzahlung entscheiden, zahlt Stripe automatisch zwei kleine Beträge auf das angegebene Bankkonto ein. Es dauert 1–2 Werktage, bis diese Einzahlungen auf dem Online-Kontoauszug der Kund/innen angezeigt werden. Kurz bevor die Einzahlungen erfolgen, erhalten die Kund/innen eine E-Mail mit einem Link zur Bestätigung dieser Beträge und zur Verifizierung des Bankkontos bei Stripe. Nach der Verifizierung wird die Zahlung verarbeitet. ### Abwicklung Ihrer Bestellungen Informieren Sie sich über die [Ausführung von Bestellungen](https://docs.stripe.com/checkout/fulfillment.md), nachdem Sie eine Zahlung angenommen haben. ## Integration testen ### E-Mail zur Verifizierung der Testeinzahlung erhalten So erhalten Sie die E-Mail zur Verifizierung der Testeinzahlung in einer *Sandbox* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes): 1. Geben Sie in Checkout eine E-Mail-Adresse in Form von `{any_prefix}+test_E-Mail@{any_domain}` an. 1. Klicken Sie auf **Bezahlen**. 1. Klicken Sie im Modal **Bankkonto zur Zahlung verknüpfen** auf **Zustimmen**. 1. Wählen Sie **Verifizierung mit Testeinzahlung verwenden** aus. 1. Verwenden Sie eine der folgenden Test-Kontonummern. 1. Klicken Sie auf **Bestätigen**. 1. Klicken Sie auf **Zustimmen**, um die **Vereinbarung für vorab autorisierte Lastschriften** zu akzeptieren. ### Token für Testzahlungsmethoden Verwenden Sie Token für Testzahlungsmethoden, um Ihre Integration zu testen, ohne Bankkontodaten manuell eingeben zu müssen. Diese Token umgehen die Schritte zur Erfassung und Überprüfung des Bankkontos. | Token | Szenario | | --------------------------------- | ------------------------------------------------------------------------ | | `pm_acssDebit_success` | Die Zahlung erfolgt unmittelbar nach Annahme des Mandats. | | `pm_acssDebit_noAccount` | Die Zahlung schlägt fehl, weil kein Konto gefunden wird. | | `pm_acssDebit_accountClosed` | Die Zahlung schlägt fehl, weil das Konto geschlossen ist. | | `pm_acssDebit_insufficientFunds` | Die Zahlung schlägt aufgrund unzureichender Deckung fehl. | | `pm_acssDebit_debitNotAuthorized` | Die Zahlung schlägt fehl, weil die Lastschriften nicht autorisiert sind. | | `pm_acssDebit_dispute` | Die Zahlung ist erfolgreich, löst aber eine Zahlungsanfechtung aus. | ### 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. | Institutsnummer | Transitnummer | Kontonummer | Szenario | | --------------- | ------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------- | | `000` | `11000` | `000123456789` | Die Zahlung ist sofort nach Prüfung der Testeinzahlungen erfolgreich. | | `000` | `11000` | `900123456789` | Die Zahlung ist mit einer Verzögerung von drei Minuten nach Prüfung der Testeinzahlungen erfolgreich. | | `000` | `11000` | `000222222227` | Die Zahlung schlägt sofort nach Prüfung der Testeinzahlungen fehl. | | `000` | `11000` | `900222222227` | Die Zahlung schlägt mit einer Verzögerung von drei Minuten nach Prüfung der Testeinzahlungen fehl. | | `000` | `11000` | `000666666661` | Die Testeinzahlungen zur Verifizierung schlagen fehl. | | `000` | `11000` | `000777777771` | Die Zahlung schlägt aufgrund des Zahlungsbetrags fehl, wodurch das Konto sein wöchentliches Zahlungsvolumenlimit überschreitet. | | `000` | `11000` | `000888888881` | Die Zahlung schlägt fehl, weil der Zahlungsbetrag das Transaktionslimit des Kontos überschreitet. | Um erfolgreiche oder fehlgeschlagene Bankkontoverifizierungen in einer Sandbox zu imitieren, verwenden Sie die folgenden aussagekräftigen Beträge für Testeinzahlungen: | Werte für Testeinzahlungen | Szenario | | ----------------------------- | ------------------------------------------------------------------------- | | `32` und `45` | Die Verifizierung des Kontos ist erfolgreich. | | `10` und `11` | Simuliert das Überschreiten der Anzahl zulässiger Verifizierungsversuche. | | Jede andere Zahlenkombination | Die Verifizierung des Kontos schlägt fehl. | ## Mit Rückerstattungen und Zahlungsanfechtungen umgehen Das Rückerstattungszeitfenster für vorab autorisierte Lastschriftzahlungen in Kanada beträgt bis zu 180 Tage nach der Zahlung. Kund/innen können eine Zahlung über Ihre Bank bis zu 90 Kalendertage nach der Zahlung anfechten. Gegen die Entscheidung der Bank kann kein Einspruch erhoben werden. Erfahren Sie mehr über [Anfechtungen vorab autorisierter Lastschriftzahlungen in Kanada](https://docs.stripe.com/payments/acss-debit.md#disputed-payments). ## Zusätzliche Überlegungen ### Fehlschlagen der Verifizierung einer Testeinzahlung Wenn die Verifizierung eines Bankkontos mittels Testeinzahlungen noch aussteht, kann die Verifizierung durch die Kundin/den Kunden aus zwei Gründen fehlschlagen: - Die Testeinzahlungen haben das Bankkonto der Kundin/des Kunden nicht erreicht (z. B. geschlossenes/nicht verfügbares Bankkonto oder falsche Bankkontonummer). - Die Verifizierung des Kontos durch die Kundin/den Kunden ist dreimal fehlgeschlagen. Wird diese Grenze überschritten, kann das Bankkonto nicht mehr verifiziert oder erneut verwendet werden. - Die Kundin/der Kunde hat das Bankkonto nicht innerhalb der Frist von 10 Tagen verifiziert. Wenn die Verifizierung des Bankkontos aus einem der genannten Gründe fehlschlägt, können Sie [das Ereignis `checkout.session.async_payment_failed` verarbeiten](https://docs.stripe.com/api/events/types.md?event_types-invoice.payment_succeeded=#event_types-checkout.session.async_payment_failed), um den Kunden/die Kundin zum Aufgeben einer neuen Bestellung aufzufordern. ## Optional: Nur Sofortverifizierung [Serverseitig] By default, Canadian pre-authorized debit payments allow your customers to use instant bank account verification or micro-deposits. You can optionally require instant bank account verification only using the `payment_method_options[acss_debit][verification_method]` parameter when you create the Checkout session. #### Accounts v2 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=payment \ -d "customer_account={{CUSTOMERACCOUNT_ID}}" \ -d "payment_method_types[0]=acss_debit" \ -d "line_items[0][price_data][currency]=cad" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ --data-urlencode "payment_method_options[acss_debit][mandate_options][interval_description]=On November 25, 2021" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_options[acss_debit][verification_method]=instant" \ --data-urlencode "success_url=https://example.com/success" ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=payment \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[0]=acss_debit" \ -d "line_items[0][price_data][currency]=cad" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ --data-urlencode "payment_method_options[acss_debit][mandate_options][interval_description]=On November 25, 2021" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_options[acss_debit][verification_method]=instant" \ --data-urlencode "success_url=https://example.com/success" ``` ## Optional: Verifizierung nur per Testeinzahlung [Serverseitig] Standardmäßig können Ihre Kund/innen bei vorab autorisierten Lastschriftzahlungen in Kanada die sofortige Bankkontoverifizierung oder Testeinzahlungen verwenden. Optional können Sie die Verifizierung von Testeinzahlungen nur mit dem Parameter `payment_method_options[acss_debit][verification_method]` verlangen, wenn Sie die Checkout-Sitzung erstellen. Der #### Accounts v2 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=payment \ -d "customer_account={{CUSTOMERACCOUNT_ID}}" \ -d "payment_method_types[0]=acss_debit" \ -d "line_items[0][price_data][currency]=cad" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ --data-urlencode "payment_method_options[acss_debit][mandate_options][interval_description]=On November 25, 2021" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_options[acss_debit][verification_method]=microdeposits" \ --data-urlencode "success_url=https://example.com/success" ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=payment \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[0]=acss_debit" \ -d "line_items[0][price_data][currency]=cad" \ -d "line_items[0][price_data][product_data][name]=T-shirt" \ -d "line_items[0][price_data][unit_amount]=2000" \ -d "line_items[0][quantity]=1" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ --data-urlencode "payment_method_options[acss_debit][mandate_options][interval_description]=On November 25, 2021" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_options[acss_debit][verification_method]=microdeposits" \ --data-urlencode "success_url=https://example.com/success" ``` ## Optional: Abbuchungsdatum für Kunde/Kundin konfigurieren [Serverseitig] Mit dem [Zieldatum](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_method_options-acss_debit-target_date) können Sie das Datum steuern, an dem Stripe das Bankkonto einer Kundin oder eines Kunden belastet. Das Zieldatum muss mindestens drei Tage in der Zukunft und maximal 15 Tage nach dem aktuellen Datum liegen. Mit dem Zieldatum wird geplant, dass das Geld das Konto der Kundin oder des Kunden am Zieldatum verlässt. Zieldaten, die eines der folgenden Kriterien erfüllen, verzögern die Abbuchung bis zum nächsten verfügbaren Werktag: - 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. > Sie können die [Verifizierungsmethode](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_method_options-acss_debit-verification_method) nicht auf `Mikroeinzahlungen` festlegen, wenn Sie ein [Zieldatum](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-payment_method_options-acss_debit-target_date) verwenden, da die Dauer des Verifizierungsprozesses das Zieldatum überschreiten könnte und Zahlungen dann später als erwartet eintreffen könnten. ## See also - [Weitere Informationen zu vorab autorisierten Lastschriftzahlungen in Kanada](https://docs.stripe.com/payments/acss-debit.md) - [Mandate verwalten](https://docs.stripe.com/payments/acss-debit.md#mandates) - [Checkout-Ausführung](https://docs.stripe.com/checkout/fulfillment.md) - [Checkout anpassen](https://docs.stripe.com/payments/checkout/customization.md) # Direct API > This is a Direct API for when payment-ui is direct-api. View the full page at https://docs.stripe.com/payments/acss-debit/accept-a-payment?payment-ui=direct-api. Für die Annahme vorab autorisierter kanadischer Lastschriftzahlungen (PAD) 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 und Verifizierung des Bankkontos Ihrer Kundin oder Ihres Kunden an Stripe übermittelt werden. Stripe verwendet dieses Zahlungsobjekt, den [Payment Intent](https://docs.stripe.com/payments/payment-intents.md), zur Dokumentation und Verarbeitung aller Zahlungsstatus bis zum Zahlungsabschluss. ## Stripe einrichten [Serverseitig] Zunächst benötigen Sie ein Stripe-Konto. [Registrieren Sie sich jetzt](https://dashboard.stripe.com/register). Nutzen Sie unsere offiziellen Bibliotheken für den Zugriff auf die Stripe-API über Ihre Anwendung: #### Ruby ```bash # Available as a gem sudo gem install stripe ``` ```ruby # If you use bundler, you can add this line to your Gemfile gem 'stripe' ``` ## Kund/innen erstellen oder abrufen [Serverseitig] Um ein Bankkonto für zukünftige Zahlungen wiederzuverwenden, fügen Sie es einem Objekt bei, das Ihren Kunden/Ihre Kundin darstellt. > #### Verwenden Sie die Accounts v2 API zum Darstellen von Kundinnen und Kunden > > Die Accounts v2 API ist allgemein für Connect-Nutzer/innen verfügbar und für andere Stripe-Nutzer/innen in der öffentlichen Vorschau. Wenn an der Accounts v2 Vorschau teilnehmen, müssen Sie eine [Vorschauversion](https://docs.stripe.com/api-v2-overview.md#sdk-and-api-versioning) in Ihrem Code angeben. > > Um Zugriff auf die Accounts v2 Vorschau anzufordern, {% collect-email modal=true modal_link_text=“sign up.” list=“payin-payout-reuse-waitlist@stripe.com” send_direct_email=true intro_text=“Sind Sie am frühzeitigen Zugang zur Vorschau der Accounts v2 API interessiert?" body_text=“Wir sind gerade dabei, die Vorschau von Accounts v2 bereitzustellen. Um Zugang zu beantragen, geben Sie unten Ihre E-Mail-Adresse ein.” form_cta_text=“Registrieren” success_text=“Danke! Wir melden uns bald.” show_email_confirmation=wahr /%} > > Für die meisten Anwendungsfälle empfehlen wir, [Ihre Kundinnen und Kunden als vom Kunden bzw. von der Kundin konfigurierte Account-Objekte abzubilden](https://docs.stripe.com/accounts-v2/use-accounts-as-customers.md), anstatt [Customer](https://docs.stripe.com/api/customers.md)-Objekte zu verwenden. Erstellen Sie ein kundenkonfiguriertes [Konto](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer) oder [einen Kunden/eine Kundin](https://docs.stripe.com/api/customers/create.md), wenn Ihr Kunde/Ihre Kundin ein Konto bei Ihrem Unternehmen anlegt oder wenn er/sie eine Zahlungsmethode speichert. Verknüpfen Sie die ID des Objekts mit Ihrer eigenen internen Darstellung eines Kunden/einer Kundin. Erstellen Sie einen neuen Kunden/eine neue Kundin oder rufen Sie einen bestehenden Kunden/eine bestehende Kundin ab, um ihn/sie mit dieser Zahlung zu verknüpfen. #### Accounts v2 ```curl curl -X POST https://api.stripe.com/v2/core/accounts \ -H "Authorization: Bearer <>" \ -H "Stripe-Version: 2026-04-22.preview" \ --json '{ "contact_email": "jenny.rosen@example.com", "display_name": "Jenny Rosen", "configuration": { "customer": {} }, "include": [ "configuration.customer" ] }' ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ -d "name=Jenny Rosen" \ --data-urlencode "email=jenny.rosen@example.com" ``` ## PaymentIntent erstellen [Serverseitig] Ein [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) ist ein Objekt, das Ihre Absicht darstellt, eine Zahlung von einer Kundin/einem Kunden einzuziehen, und das den Lebenszyklus des Zahlungsvorgangs in [jeder Phase](https://docs.stripe.com/payments/paymentintents/lifecycle.md) verfolgt. Um vorab autorisierte Lastschriftzahlungen in Kanada verwenden zu können, müssen Sie mithilfe einer vorab autorisierten Lastschriftvereinbarung (siehe [PAD-Mandate](https://docs.stripe.com/payments/acss-debit.md#mandates)) die Zustimmung Ihrer Kundin/Ihres Kunden für einmalige und wiederkehrende Lastschriften einholen. Das [Mandate](https://docs.stripe.com/api/mandates.md)-Objekt zeichnet diese Vereinbarung und Autorisierung auf. Erstellen Sie zunächst einen `PaymentIntent` auf Ihrem Server und geben Sie die Kundin/den Kunden, den einzuziehenden Betrag und die Währung ([in der Regel `cad`](https://docs.stripe.com/payments/acss-debit.md#presentment-currency)) an. Wenn Ihre Integration bereits die [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md) verwendet, fügen Sie der Liste der [Zahlungsmethoden-Typen](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_types) für Ihren `PaymentIntent` `acss_debit` hinzu. Falls Sie die Zahlungsmethode künftig wiederverwenden möchten, geben Sie den Parameter [setup_future_usage](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-setup_future_usage) mit dem Wert `off_session` an. Um einen Zahlungsplan und eine Verifizierungsmethode im [Mandat](https://docs.stripe.com/api/mandates.md) für diesen PaymentIntent zu definieren, fügen Sie noch die nachfolgenden Parameter hinzu: | Parameter | Wert | Erforderlich | | --------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | `payment_method_options[acss_debit][mandate_options][payment_schedule]` | Der Zahlungsplan des Mandats. Folgende Werte werden unterstützt: `interval`, `sporadic` oder `combined`. In der Übersicht [PAD-Mandate](https://docs.stripe.com/payments/acss-debit.md#mandates) können Sie die passende Intervallbeschreibung für Ihr Unternehmen wählen. | Ja | | `payment_method_options[acss_debit][mandate_options][interval_description]` | Textbeschreibung des Zahlungsplanintervalls. In der Übersicht [PAD-Mandate](https://docs.stripe.com/payments/acss-debit.md#mandates) können Sie die passende Intervallbeschreibung für Ihr Unternehmen erstellen. | Wenn `payment_schedule` als `interval` oder `combined` festgelegt ist | | `payment_method_options[acss_debit][mandate_options][transaction_type]` | Die Art der Transaktionen, für die Sie das Mandat verwenden werden, entweder `personal` (wenn die Transaktionen aus persönlichen Gründen erfolgen) oder `business` (wenn die Transaktionen aus Gründen des Unternehmens erfolgen). | Ja | #### Accounts v2 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=cad \ -d setup_future_usage=off_session \ -d "customer_account={{CUSTOMERACCOUNT_ID}}" \ -d "payment_method_types[]=acss_debit" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ -d "payment_method_options[acss_debit][mandate_options][interval_description]=First day of every month" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=cad \ -d setup_future_usage=off_session \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[]=acss_debit" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ -d "payment_method_options[acss_debit][mandate_options][interval_description]=First day of every month" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" ``` ### Client-Geheimnis abrufen Im PaymentIntent ist ein *Client-Geheimnis* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)) enthalten, das auf dem Client verwendet wird, um Zahlungen sicher abzuschließen. Es gibt verschiedene Verfahren zum Übergeben des Client-Geheimnisses an den Client. #### Einseitige Anwendung Rufen Sie das Client-Geheimnis von einem Endpoint auf Ihrem Server ab, indem Sie die Browser-Funktion `fetch` verwenden. Diese Vorgehensweise funktioniert am besten, wenn es sich bei Ihrer Client-Seite um eine einseitige Anwendung handelt, insbesondere wenn sie mit einem modernen Frontend-Framework wie React erstellt wurde. Erstellen Sie den Server-Endpoint, der das Client-Geheimnis bereitstellt: #### Ruby ```ruby get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end ``` Und dann rufen Sie das Client-Geheimnis mit JavaScript auf der Client-Seite ab: ```javascript (async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })(); ``` #### Serverseitiges Rendering Übergeben Sie das Client-Geheimnis von Ihrem Server an den Client. Diese Vorgehensweise funktioniert am besten, wenn Ihre Anwendung statische Inhalte auf dem Server generiert, bevor sie an den Browser gesendet werden. Fügen Sie das [client_secret](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-client_secret) in Ihr Bezahlformular ein. Rufen Sie in Ihrem serverseitigen Code das Client-Geheimnis aus dem PaymentIntent ab: #### Ruby ```erb
``` ```ruby get '/checkout' do @intent = # ... Fetch or create the PaymentIntent erb :checkout end ``` ## Angaben zur Zahlungsmethode erfassen und weitergeben [Clientseitig] 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](https://docs.stripe.com/payments/elements.md) 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. ```html Checkout ``` Erstellen Sie auf Ihrer Bezahlseite eine Instanz von Stripe.js mit dem folgenden JavaScript. ```javascript // 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('<>'); ``` Anstatt das gesamte PaymentIntent-Objekt an den Client zu übermitteln, verwenden Sie dessen *Client-Geheimnis* (The client secret is a unique key returned from Stripe as part of a PaymentIntent. This key lets the client access important fields from the PaymentIntent (status, amount, currency) while hiding sensitive ones (metadata, customer)) aus dem vorherigen Schritt. Dieses unterscheidet sich von Ihren API-Schlüsseln, mit denen Anfragen der Stripe API authentifiziert werden. Achten Sie aber weiterhin 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 der Kundin/dem Kunden selbst zugänglich gemacht werden. Verwenden Sie [stripe.confirmAcssDebitPayment](https://docs.stripe.com/js/payment_intents/confirm_acss_debit_payment), 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. ```javascript 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. > 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. Bei erfolgreicher Ausführung gibt Stripe ein [PaymentIntent](https://docs.stripe.com/api/payment_intents/object.md)-Objekt mit einem der folgenden möglichen Status zurück: | Status | Beschreibung | Nächster Schritt | | ----------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | `processing` | Das Bankkonto wurde sofort verifiziert oder eine Verifizierung war nicht notwendig. | Schritt 6: [Erfolgreichen PaymentIntent bestätigen](https://docs.stripe.com/payments/acss-debit/accept-a-payment.md#web-confirm-paymentintent-succeeded) | | `requires_action` | Weitere Schritte erforderlich, um die Bankkontoverifizierung abzuschließen. | Schritt 5: [Bankkonten mit Testeinzahlungen verifizieren](https://docs.stripe.com/payments/acss-debit/accept-a-payment.md#web-verify-with-microdeposits) | Nach erfolgreicher Bestätigung des PaymentIntent muss eine Bestätigung des Mandats und der erfassten Bankkontodaten per E-Mail an Ihre Kundinnen/Kunden gesendet werden. Standardmäßig übernimmt Stripe diesen Schritt, allerdings können Sie bei Bedarf auch [nutzerdefinierte Benachrichtigungen](https://docs.stripe.com/payments/acss-debit.md#mandate-and-debit-notification-emails) versenden. > Beim Testen der Integration werden keine E-Mails zur Mandatsbestätigung an die E-Mail-Adresse der Kundin/des Kunden gesendet. Wenn Kund/innen das Modal schließen, ohne den Verifizierungsablauf abzuschließen, gibt Stripe.js den folgenden Fehler zurück: ```json { "error": { "type": "validation_error", "code": "incomplete_payment_details", "message": "Please provide complete payment details." } } ``` ## Bankkonten mit Testeinzahlungen verifizieren [Clientseitig] 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 diesem Fall zahlt Stripe zur Verifizierung automatisch zwei kleine Beträge auf das Bankkonto ein. Es dauert 1 bis 2 Werktage, bis Einzahlungen im Online-Kontoauszug des Kunden/der Kundin erscheinen und die Zahlungsbeschreibungen `ACCTVERIFY` in der Abrechnung enthalten. 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](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-billing_details-email), 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 ein Limit von drei fehlgeschlagenen Verifizierungsversuchen. Wenn dieses Limit ü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 der PaymentIntent wieder neue Angaben zur Zahlungsmethode an. Wenn Sie Ihren Kundinnen und Kunden 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](https://docs.stripe.com/payments/acss-debit.md#mandate-and-debit-notification-emails) 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](https://docs.stripe.com/js/payment_intents/verify_microdeposits_for_payment) verifizieren. ```javascript stripe.verifyMicrodepositsForPayment(clientSecret, { amounts: [32, 45], }); ``` Wenn das Bankkonto erfolgreich verifiziert wurde, gibt Stripe das [PaymentIntent-Objekt](https://docs.stripe.com/api/payment_intents/object.md) mit dem `status` `processing` zurück und übermittelt das *Webhook* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests)-Ereignis `payment_intent.processing`. Die Verifizierung kann aus unterschiedlichen Gründen fehlschlagen. Dieser Fehler kann synchron als direkte Fehlermeldung oder asynchron über das Webhook-Ereignis `payment_intent.payment_failed` auftreten (wie in den folgenden Beispielen dargestellt). #### Synchroner Fehler ```json { "error": { "code": "payment_method_microdeposit_verification_amounts_mismatch", "message": "The amounts provided do not match the amounts that were sent to the bank account. You have {attempts_remaining} verification attempts remaining.", "type": "invalid_request_error" } } ``` #### Webhook-Ereignis ```javascript { "object": { "id": "pi_1234", "object": "payment_intent", "customer": "cus_0246", ... "last_payment_error": { "code": "payment_method_microdeposit_verification_attempts_exceeded", "message": "You have exceeded the number of allowed verification attempts." }, ... "status": "requires_payment_method" } } ``` | Fehlercode | Synchron oder asynchron | Meldungen | Änderung des Status | | ------------------------------------------------------------ | ------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | | `payment_method_microdeposit_failed` | Synchron oder asynchron über ein Webhook-Ereignis | Die Testeinzahlungen sind fehlgeschlagen. Bitte überprüfen Sie die Kontonummer, die Finanzinstitutsnummer und die bereitgestellte Transitnummer. | `status` ist `requires_payment_method` und `last_payment_error` ist festgelegt. | | `payment_method_microdeposit_verification_amounts_mismatch` | Synchron | Die angegebenen Beträge stimmen nicht mit den Beträgen überein, die auf das Bankkonto eingezahlt wurden. Sie haben noch {attempts_remaining} Verifizierungsversuche. | Unverändert | | `payment_method_microdeposit_verification_attempts_exceeded` | Synchron und asynchron über ein Webhook-Ereignis | Anzahl zulässiger Verifizierungsversuche wurde überschritten | `status` ist `requires_payment_method` und `last_payment_error` ist festgelegt. | | `payment_method_microdeposit_verification_timeout` | Asynchron über ein Webhook-Ereignis | Zeitüberschreitung bei der Testeinzahlung. Die Kundin/der Kunde hat das Bankkonto nicht innerhalb der Frist von 10 Tagen verifiziert. | `status` ist `requires_payment_method` und `last_payment_error` ist festgelegt. | ## Erfolgreichen PaymentIntent bestätigen [Serverseitig] Bei vorab autorisierten kanadischen Lastschriftzahlungen handelt es sich um eine Zahlungsmethode mit [verzögerter Benachrichtigung](https://docs.stripe.com/payments/payment-methods.md#payment-notification). Das bedeutet, dass es bis zu fünf Werktage dauern kann, bis Sie nach Initiierung der Lastschrift für das Konto Ihres Kunden/Ihrer Kundin eine Mitteilung über den Erfolg oder das Fehlschlagen einer Zahlung erhalten. Der von Ihnen erstellte PaymentIntent hat zunächst den Status `processing`. Wenn die Zahlung erfolgreich war, wird der PaymentIntent-Status von `processing` in `succeeded` aktualisiert. Die folgenden Ereignisse werden übermittelt, wenn der PaymentIntent-Status aktualisiert wird: | Ereignis | Beschreibung | Nächster Schritt | | ------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | `payment_intent.processing` | Die Zahlung der Kundin/des Kunden wurde erfolgreich an Stripe übermittelt. | Warten Sie, bis die initiierte Zahlung erfolgt oder fehlschlägt. | | `payment_intent.succeeded` | Die Kundenzahlung war erfolgreich. | Wickeln Sie die Bestellung der Kundin/des Kunden ab. | | `payment_intent.payment_failed` | Die Zahlung der Kundin/des Kunden wurde abgelehnt. Dies kann auch bei einer fehlgeschlagenen Verifizierung der Testeinzahlung zutreffen. | Kontaktieren Sie den/die Kund/in per E-Mail oder Push-Benachrichtigung und fordern Sie eine andere Zahlungsmethode an. Wenn der Webhook aufgrund einer fehlgeschlagenen Verifizierung der Testeinzahlung übermittelt wurde, müssen die Nutzer/innen ihre Bankkontodaten erneut eingeben. Danach werden neue Testeinzahlungen durchgeführt. | Wir empfehlen die Verwendung von [Webhooks](https://docs.stripe.com/payments/payment-intents/verifying-status.md#webhooks), um die erfolgreiche Zahlung zu *bestätigen* (Confirming an intent indicates that the customer intends to use the current or provided payment method. Upon confirmation, the intent attempts to initiate the portions of the flow that have real-world side effects) und die Kundinnen/Kunden zu informieren, dass die Zahlung abgeschlossen ist. Sie können sich Ereignisse auch im [Stripe-Dashboard](https://dashboard.stripe.com/test/events) anzeigen lassen. ## Integration testen ### E-Mail zur Verifizierung der Testeinzahlung erhalten Um die E-Mail zur Verifizierung der Testeinzahlung in einer *Sandbox* (A sandbox is an isolated test environment that allows you to test Stripe functionality in your account without affecting your live integration. Use sandboxes to safely experiment with new features and changes)-Umgebung zu erhalten, nachdem Sie die Bankkontodaten erfasst und ein Mandat angenommen haben, geben Sie bei der Bestätigung der Angaben zur Zahlungsmethode im Feld `payment_method[billing_details][email]` eine E-Mail-Adresse im Format an: `{any_prefix}+test_email@{any_domain}` an. ### Token für Testzahlungsmethoden Verwenden Sie Token für Testzahlungsmethoden, um Ihre Integration zu testen, ohne Bankkontodaten manuell eingeben zu müssen. Diese Token umgehen die Schritte zur Erfassung und Überprüfung des Bankkontos. | Token | Szenario | | --------------------------------- | ------------------------------------------------------------------------ | | `pm_acssDebit_success` | Die Zahlung erfolgt unmittelbar nach Annahme des Mandats. | | `pm_acssDebit_noAccount` | Die Zahlung schlägt fehl, weil kein Konto gefunden wird. | | `pm_acssDebit_accountClosed` | Die Zahlung schlägt fehl, weil das Konto geschlossen ist. | | `pm_acssDebit_insufficientFunds` | Die Zahlung schlägt aufgrund unzureichender Deckung fehl. | | `pm_acssDebit_debitNotAuthorized` | Die Zahlung schlägt fehl, weil die Lastschriften nicht autorisiert sind. | | `pm_acssDebit_dispute` | Die Zahlung ist erfolgreich, löst aber eine Zahlungsanfechtung aus. | ### 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. | Institutsnummer | Transitnummer | Kontonummer | Szenario | | --------------- | ------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------- | | `000` | `11000` | `000123456789` | Die Zahlung ist sofort nach Prüfung der Testeinzahlungen erfolgreich. | | `000` | `11000` | `900123456789` | Die Zahlung ist mit einer Verzögerung von drei Minuten nach Prüfung der Testeinzahlungen erfolgreich. | | `000` | `11000` | `000222222227` | Die Zahlung schlägt sofort nach Prüfung der Testeinzahlungen fehl. | | `000` | `11000` | `900222222227` | Die Zahlung schlägt mit einer Verzögerung von drei Minuten nach Prüfung der Testeinzahlungen fehl. | | `000` | `11000` | `000666666661` | Die Testeinzahlungen zur Verifizierung schlagen fehl. | | `000` | `11000` | `000777777771` | Die Zahlung schlägt aufgrund des Zahlungsbetrags fehl, wodurch das Konto sein wöchentliches Zahlungsvolumenlimit überschreitet. | | `000` | `11000` | `000888888881` | Die Zahlung schlägt fehl, weil der Zahlungsbetrag das Transaktionslimit des Kontos überschreitet. | Um erfolgreiche oder fehlgeschlagene Bankkontoverifizierungen in einer Sandbox zu imitieren, verwenden Sie die folgenden aussagekräftigen Beträge für Testeinzahlungen: | Werte für Testeinzahlungen | Szenario | | ----------------------------- | ------------------------------------------------------------------------- | | `32` und `45` | Die Verifizierung des Kontos ist erfolgreich. | | `10` und `11` | Simuliert das Überschreiten der Anzahl zulässiger Verifizierungsversuche. | | Jede andere Zahlenkombination | Die Verifizierung des Kontos schlägt fehl. | ## Optional: Nur Sofortverifizierung [Serverseitig] By default, Canadian pre-authorized debit payments allow your customers to use instant bank account verification or micro-deposits. You can optionally require instant bank account verification only using the [verification_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-acss_debit-verification_method) parameter when you create the PaymentIntent. #### Accounts v2 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=cad \ -d setup_future_usage=off_session \ -d "customer_account={{CUSTOMERACCOUNT_ID}}" \ -d "payment_method_types[]=acss_debit" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ -d "payment_method_options[acss_debit][mandate_options][interval_description]=First day of every month" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_options[acss_debit][verification_method]=instant" ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=cad \ -d setup_future_usage=off_session \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[]=acss_debit" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ -d "payment_method_options[acss_debit][mandate_options][interval_description]=First day of every month" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_options[acss_debit][verification_method]=instant" ``` ## Optional: Verifizierung nur per Testeinzahlung [Serverseitig] Standardmäßig können Ihre Kund/innen bei vorab autorisierten Lastschriftzahlungen in Kanada die sofortige Bankkontoverifizierung oder Testeinzahlungen verwenden. Optional können Sie die Verifizierung von Testeinzahlungen nur mit dem Parameter [verification_method](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-acss_debit-verification_method)-Parameter wird verwendet, wenn Sie den PaymentIntent erstellen. #### Accounts v2 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=cad \ -d setup_future_usage=off_session \ -d "customer_account={{CUSTOMERACCOUNT_ID}}" \ -d "payment_method_types[]=acss_debit" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ -d "payment_method_options[acss_debit][mandate_options][interval_description]=First day of every month" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_options[acss_debit][verification_method]=microdeposits" ``` #### Customers v1 ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1099 \ -d currency=cad \ -d setup_future_usage=off_session \ -d customer={{CUSTOMER_ID}} \ -d "payment_method_types[]=acss_debit" \ -d "payment_method_options[acss_debit][mandate_options][payment_schedule]=interval" \ -d "payment_method_options[acss_debit][mandate_options][interval_description]=First day of every month" \ -d "payment_method_options[acss_debit][mandate_options][transaction_type]=personal" \ -d "payment_method_options[acss_debit][verification_method]=microdeposits" ``` ## Optional: Abbuchungsdatum für Kunde/Kundin konfigurieren [Serverseitig] Das Datum, an dem Stripe das Bankkonto eines Kunden/einer Kundin belastet, können Sie über das [Zieldatum](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-payment_method_options-acss_debit-target_date) 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](https://docs.stripe.com/api/payment_intents/cancel.md), 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. > Sie können die [Verifizierungsmethode](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-payment_method_options-acss_debit-verification_method) nicht auf `microdeposits` festlegen, wenn Sie ein [Zieldatum](https://docs.stripe.com/api/payment_intents/object.md#payment_intent_object-payment_method_options-acss_debit-target_date) verwenden, da der Verifizierungsvorgang längern dauern könnte als vorgesehen (Zieldatum), sodass die Zahlungen später als erwartet eintreffen. ## See also - [Vorab autorisierte Lastschriftzahlungen in Kanada für künftige Zahlungen speichern](https://docs.stripe.com/payments/acss-debit/set-up-payment.md)