# Zahlungen für Abonnements mit PayTo akzeptieren Erfahren Sie, wie Sie ein Abo mit PayTo erstellen und die Zahlung dafür einziehen können. Verwenden Sie diese Anleitung, um ein *Abonnement* (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) mit [PayTo](https://docs.stripe.com/payments/payto.md) als Zahlungsmethode einzurichten. # Von Stripe gehostete Seite > This is a Von Stripe gehostete Seite for when api-integration is checkout. View the full page at https://docs.stripe.com/billing/subscriptions/payto?api-integration=checkout. Sie können die [Checkout API](https://docs.stripe.com/api/checkout/sessions.md) verwenden, um ein Abonnement mit einer vorgefertigten Bezahlvorgangsseite zu erstellen und zu bestätigen. ## Produkt und Preis erstellen [Dashboard] [Produkte](https://docs.stripe.com/api/products.md) stehen für den von Ihnen angebotenen Artikel oder Dienst. [Preise](https://docs.stripe.com/api/prices.md) 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 AUD berechnet werden. Um dies zu modellieren: 1. Gehen Sie zur Seite [Produkte](https://dashboard.stripe.com/products?active=true) und klicken Sie auf **Produkt erstellen**. 1. Geben Sie einen **Namen** für das Produkt an. Sie können optional eine **Beschreibung** hinzufügen und ein Bild des Produkts hochladen. 1. Wählen Sie einen **Produktsteuercode** aus. Erfahren Sie mehr über [Produktsteuercodes](https://docs.stripe.com/tax/tax-codes.md). 1. Wählen Sie **Wiederkehrend** aus. Geben Sie im Anschluss daran **15** für den Preis ein und wählen Sie **AUD** als Währung aus. 1. Wählen Sie, ob die **Steuer im Preis berücksichtigt** werden soll. Sie können entweder den Standardwert aus Ihren [Steuereinstellungen](https://dashboard.stripe.com/test/settings/tax) verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel **Auto** aus. 1. Wählen Sie **Monatlich** als **Abrechnungszeitraum** aus. 1. Klicken Sie auf **Weitere Preisoptionen**. Wählen Sie dann **Pauschalpreis** als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über [Pauschalpreise](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und andere [Preismodelle](https://docs.stripe.com/products-prices/pricing-models.md). 1. Fügen Sie eine interne **Preisbeschreibung** und einen [Lookup-Schlüssel](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren. 1. Klicken Sie auf **Weiter**. Klicken Sie dann auf **Produkt hinzufügen**. 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`. ## Checkout-Sitzung erstellen [Serverseitig] Ihre Kundinnen und Kunden müssen Sie autorisieren, ihr Konto für zukünftige Zahlungen über Stripe Checkout zu verwenden. So können Sie PayTo-Zahlungen akzeptieren. Fügen Sie eine Schaltfläche für den Bezahlvorgang in Ihre Website ein, die einen serverseitigen Endpoint aufruft, um eine [Checkout Session](https://docs.stripe.com/api/checkout/sessions.md) zu erstellen. ```html Checkout
``` Erstellen Sie eine Checkout-Sitzung im `subscription`-Modus, um die erforderlichen Informationen erfassen zu können. Nachdem Sie die Checkout-Sitzung erstellt haben, leiten Sie Ihren Kunden/Ihre Kundin auf die [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url) um, die die Antwort zurückgibt. Begrenzen Sie den Betrag auf Ihren Mandaten, indem Sie `amount` in den `payment_method_options` einstellen, da einige Banken [Mandate ohne Angabe eines Betrags](https://docs.stripe.com/payments/payto.md#bank-limits) immer ablehnen. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ --data-urlencode "success_url=https://example.com/success" \ -d "line_items[0][price]={{RECURRING_PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "payment_method_types[0]=card" \ -d "payment_method_types[1]=payto" \ -d "payment_method_options[payto][mandate_options][amount]=1500" \ -d mode=subscription ``` ## Ihre Integration testen Testen Sie Ihre PayTo-Integration mit Ihren Test-API-Schlüsseln, indem Sie die verschiedenen Test-PayIDs und Bankkontodaten unten verwenden. Jeder Datensatz hat ein anderes Szenario zufolge, mit dem Ihre Integration im Live-Modus häufig konfrontiert wird. #### PayID | PayID | Beschreibung | | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `{any_prefix}+succeed@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat geht in den Status `active` über. | | `{any_prefix}+decline@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `invalid_authorization` zurück. Das Mandat geht in den Status `inactive` über. | | `{any_prefix}+expire@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Minuten von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `generic_decline` zurück. Das Mandat geht in den Status `inactive` über. | | `{any_prefix}+insufficient_funds@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `requires_payment_method` . Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `insufficient_funds` zurück. Das Mandat geht in den Status `inactive` über. | | `{any_prefix}+revoke@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat beginnt im Status `active` und wechselt nach 1 Minute zu `inactive`. | | `{any_prefix}+agreement_type_not_supported@{any_domain}` | Der PaymentIntent Status wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` zurück. Das Mandat geht in den Status `inactive` über. | #### Konto- + BSB-Nummern | BSB-Nummer | Kontonummer | Beschreibung | | ---------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `000000` | `000123456` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat geht in den Status `active` über. | | `000000` | `333333335` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `invalid_authorization` zurück. Das Mandat geht in den Status `inactive` über. | | `000000` | `333333337` | Der Status des PaymentIntent wechselt nach 10 Minuten von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `generic_decline` zurück. Das Mandat geht in den Status `inactive` über. | | `000000` | `222222227` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `requires_payment_method` . Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `insufficient_funds` zurück. Das Mandat geht in den Status `inactive` über. | | `000000` | `444444447` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat beginnt im Status `active` und wechselt nach 1 Minute zu `inactive`. | | `000000` | `666666667` | Der PaymentIntent Status wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` zurück. Das Mandat geht in den Status `inactive` über. | # Subscriptions API > This is a Subscriptions API for when api-integration is subscription. View the full page at https://docs.stripe.com/billing/subscriptions/payto?api-integration=subscription. Erstellen und bestätigen Sie ein Abo mit zwei API-Aufrufen. Der [erste API-Aufruf](https://docs.stripe.com/billing/subscriptions/payto.md#pi-create-subscription) sendet Kunden- und Produktdaten an die [Subscriptions API](https://docs.stripe.com/api/subscriptions.md), um ein Abo und PaymentIntent in einem Aufruf zu erstellen. Die Antwort enthält eine PaymentIntent-ID, die Sie in einem [Payment Intents API](https://docs.stripe.com/api/payment_intents.md)-Aufruf verwenden müssen, um [eine Zahlung zu bestätigen](https://docs.stripe.com/billing/subscriptions/payto.md#pi-confirm-payment). ## Produkt und Preis erstellen [Dashboard] [Produkte](https://docs.stripe.com/api/products.md) stehen für den von Ihnen angebotenen Artikel oder Dienst. [Preise](https://docs.stripe.com/api/prices.md) 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 AUD berechnet werden. Um dies zu modellieren: 1. Gehen Sie zur Seite [Produkte](https://dashboard.stripe.com/products?active=true) und klicken Sie auf **Produkt erstellen**. 1. Geben Sie einen **Namen** für das Produkt an. Sie können optional eine **Beschreibung** hinzufügen und ein Bild des Produkts hochladen. 1. Wählen Sie einen **Produktsteuercode** aus. Erfahren Sie mehr über [Produktsteuercodes](https://docs.stripe.com/tax/tax-codes.md). 1. Wählen Sie **Wiederkehrend** aus. Geben Sie im Anschluss daran **15** für den Preis ein und wählen Sie **AUD** als Währung aus. 1. Wählen Sie, ob die **Steuer im Preis berücksichtigt** werden soll. Sie können entweder den Standardwert aus Ihren [Steuereinstellungen](https://dashboard.stripe.com/test/settings/tax) verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel **Auto** aus. 1. Wählen Sie **Monatlich** als **Abrechnungszeitraum** aus. 1. Klicken Sie auf **Weitere Preisoptionen**. Wählen Sie dann **Pauschalpreis** als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über [Pauschalpreise](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und andere [Preismodelle](https://docs.stripe.com/products-prices/pricing-models.md). 1. Fügen Sie eine interne **Preisbeschreibung** und einen [Lookup-Schlüssel](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren. 1. Klicken Sie auf **Weiter**. Klicken Sie dann auf **Produkt hinzufügen**. 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`. ## Ein Abonnement erstellen [Serverseitig] Erstellen Sie ein [Abonnement](https://docs.stripe.com/api/subscriptions.md), das einen Preis und einen Kunden/eine Kundin mit dem Status `incomplete` hat, indem Sie den Parameter [payment_behavior](https://docs.stripe.com/api/subscriptions/create.md#create_subscription-payment_behavior) mit dem Wert `default_incomplete` versehen. Legen Sie den Parameter `payment_settings.save_default_payment_method=on_subscription` fest, um eine Zahlungsmethode zu speichern, wenn ein Abonnement aktiviert wird. Begrenzen Sie den Betrag auf Ihren Mandaten, indem Sie `amount` in den `payment_method_options` einstellen, da einige Banken [Mandate ohne Angabe eines Betrags](https://docs.stripe.com/payments/payto.md#bank-limits) immer ablehnen. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d payment_behavior=default_incomplete \ -d "items[0][price]={{PRICE_ID}}" \ -d "payment_settings[save_default_payment_method]=on_subscription" \ -d "payment_settings[payment_method_options][payto][mandate_options][amount]=1500" \ -d "expand[0]=latest_invoice.payments" \ -d "expand[1]=latest_invoice.confirmation_secret" ``` Die Antwort enthält die erste *Abonnement-* (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) [Rechnung](https://docs.stripe.com/api/invoices.md). Diese enthält die Zahlungen der Rechnung, darunter einen Standard-PaymentIntent, den Stripe für diese Rechnung generiert hat, und das Bestätigungsgeheimnis, das Sie auf der Client-Seite verwenden können, um die Zahlung sicher abzuwickeln, anstatt das gesamte PaymentIntent-Objekt zu übergeben. Geben Sie das `latest_invoice.confirmation_secret.client_secret` an das Frontend zurück, um die Zahlung abzuschließen. Holen Sie sich die PaymentIntent-ID, die Sie zur Bestätigung einer Zahlung verwenden müssen, von `latest_invoice.payments`. ## Eine Zahlungen bestätigen [Serverseitig] Bestätigen Sie eine Zahlung mit [PaymentIntents](https://docs.stripe.com/api/payment_intents.md) unter Verwendung der PaymentIntent ID aus der Abonnement-Antwort. Dann fügen Sie die PaymentIntent-ID zum URL-Pfad hinzu und setzen den Wert des Parameters `payment_method_types` auf `payto`: ```curl curl https://api.stripe.com/v1/payment_intents/:id/confirm \ -u "<>:" \ -d "payment_method_data[type]=payto" \ --data-urlencode "return_url=https://www.stripe.com" \ -d "mandate_data[customer_acceptance][type]=online" \ -d "mandate_data[customer_acceptance][online][ip_address]=127.0.0.0" \ -d "mandate_data[customer_acceptance][online][user_agent]=device" \ -d "mandate_data[customer_acceptance][accepted_at]=1660000000" ``` Die PaymentIntent-Antwort enthält den Status `requires_action`, der anzeigt, dass Ihr/e Nutzer/in sich bei PayTo authentifizieren muss, um den PaymentIntent abzuschließen. Nach einer erfolgreichen Zahlung wird das Abo aktiv und speichert die Zahlungsmethode als Standardzahlungsmethode. ## Ihre Integration testen Testen Sie Ihre PayTo-Integration mit Ihren Test-API-Schlüsseln, indem Sie die verschiedenen Test-PayIDs und Bankkontodaten unten verwenden. Jeder Datensatz hat ein anderes Szenario zufolge, mit dem Ihre Integration im Live-Modus häufig konfrontiert wird. #### PayID | PayID | Beschreibung | | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `{any_prefix}+succeed@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat geht in den Status `active` über. | | `{any_prefix}+decline@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `invalid_authorization` zurück. Das Mandat geht in den Status `inactive` über. | | `{any_prefix}+expire@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Minuten von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `generic_decline` zurück. Das Mandat geht in den Status `inactive` über. | | `{any_prefix}+insufficient_funds@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `requires_payment_method` . Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `insufficient_funds` zurück. Das Mandat geht in den Status `inactive` über. | | `{any_prefix}+revoke@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat beginnt im Status `active` und wechselt nach 1 Minute zu `inactive`. | | `{any_prefix}+agreement_type_not_supported@{any_domain}` | Der PaymentIntent Status wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` zurück. Das Mandat geht in den Status `inactive` über. | #### Konto- + BSB-Nummern | BSB-Nummer | Kontonummer | Beschreibung | | ---------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `000000` | `000123456` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat geht in den Status `active` über. | | `000000` | `333333335` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `invalid_authorization` zurück. Das Mandat geht in den Status `inactive` über. | | `000000` | `333333337` | Der Status des PaymentIntent wechselt nach 10 Minuten von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `generic_decline` zurück. Das Mandat geht in den Status `inactive` über. | | `000000` | `222222227` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `requires_payment_method` . Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `insufficient_funds` zurück. Das Mandat geht in den Status `inactive` über. | | `000000` | `444444447` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat beginnt im Status `active` und wechselt nach 1 Minute zu `inactive`. | | `000000` | `666666667` | Der PaymentIntent Status wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` zurück. Das Mandat geht in den Status `inactive` über. | # SetupIntents API > This is a SetupIntents API for when api-integration is setupintents. View the full page at https://docs.stripe.com/billing/subscriptions/payto?api-integration=setupintents. Erstellen und bestätigen Sie ein Abonnement mit zwei API-Aufrufen. Der [erste API-Aufruf](https://docs.stripe.com/billing/subscriptions/payto.md#create-setup-intent) verwendet die [Setup Intents API](https://docs.stripe.com/api/setup_intents.md), um PayTo als Zahlungsmethode festzulegen. Der [zweite API-Aufruf](https://docs.stripe.com/billing/subscriptions/payto.md#create-subscription) sendet Informationen zur Kundin/zum Kunden, zum Produkt und zur Zahlungsmethode an die [Subscriptions API](https://docs.stripe.com/api/subscriptions.md), um in einem Aufruf ein Abonnement zu erstellen und eine Zahlung zu bestätigen. ## Produkt und Preis erstellen [Dashboard] [Produkte](https://docs.stripe.com/api/products.md) stehen für den von Ihnen angebotenen Artikel oder Dienst. [Preise](https://docs.stripe.com/api/prices.md) 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 AUD berechnet werden. Um dies zu modellieren: 1. Gehen Sie zur Seite [Produkte](https://dashboard.stripe.com/products?active=true) und klicken Sie auf **Produkt erstellen**. 1. Geben Sie einen **Namen** für das Produkt an. Sie können optional eine **Beschreibung** hinzufügen und ein Bild des Produkts hochladen. 1. Wählen Sie einen **Produktsteuercode** aus. Erfahren Sie mehr über [Produktsteuercodes](https://docs.stripe.com/tax/tax-codes.md). 1. Wählen Sie **Wiederkehrend** aus. Geben Sie im Anschluss daran **15** für den Preis ein und wählen Sie **AUD** als Währung aus. 1. Wählen Sie, ob die **Steuer im Preis berücksichtigt** werden soll. Sie können entweder den Standardwert aus Ihren [Steuereinstellungen](https://dashboard.stripe.com/test/settings/tax) verwenden oder den Wert manuell festlegen. Wählen Sie in diesem Beispiel **Auto** aus. 1. Wählen Sie **Monatlich** als **Abrechnungszeitraum** aus. 1. Klicken Sie auf **Weitere Preisoptionen**. Wählen Sie dann **Pauschalpreis** als Preismodell für dieses Beispiel aus. Erfahren Sie mehr über [Pauschalpreise](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und andere [Preismodelle](https://docs.stripe.com/products-prices/pricing-models.md). 1. Fügen Sie eine interne **Preisbeschreibung** und einen [Lookup-Schlüssel](https://docs.stripe.com/products-prices/manage-prices.md#lookup-keys) hinzu, um bestimmte Preise in Zukunft zu organisieren, abzufragen und zu aktualisieren. 1. Klicken Sie auf **Weiter**. Klicken Sie dann auf **Produkt hinzufügen**. 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`. ## SetupIntent erstellen [Serverseitig] Erstellen Sie einen [SetupIntent](https://docs.stripe.com/api/setup_intents.md) um die Zahlungsmethode eines Kunden/einer Kundin für zukünftige Zahlungen zu speichern. Der `SetupIntent` wickelt die Schritte dieses Einrichtungsvorgangs ab. Begrenzen Sie den Betrag auf Ihren Mandaten, indem Sie `amount` in den `payment_method_options` einstellen, da einige Banken [Mandate ohne Angabe eines Betrags](https://docs.stripe.com/payments/payto.md#bank-limits) immer ablehnen. ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -d confirm=true \ --data-urlencode "return_url=https://www.stripe.com" \ -d usage=off_session \ -d customer=cus_ODQluYFNl44ODI \ -d "payment_method_data[type]=payto" \ -d "payment_method_types[]=payto" \ -d "payment_method_options[payto][mandate_options][amount]=1500" \ -d "mandate_data[customer_acceptance][type]=online" \ -d "mandate_data[customer_acceptance][online][ip_address]=127.0.0.0" \ -d "mandate_data[customer_acceptance][online][user_agent]=device" ``` Das SetupIntent-Objekt enthält ein `client_secret`, einen eindeutigen Schlüssel, den Sie auf der Client-Seite an Stripe.js übergeben müssen, um Ihre/n Käufer/in zu PayTo umzuleiten und das Mandat zu autorisieren. ## Ein Abonnement erstellen [Serverseitig] Erstellen Sie ein Abonnement mit einem Preis und einer Kundin/einem Kunden. Legen Sie den Wert des Parameters `default_payment_method` auf die PaymentMethod-ID aus der SetupIntent-Antwort fest. ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d customer={{CUSTOMER_ID}} \ -d "items[0][price]={{PRICE_ID}}" \ -d default_payment_method={{PAYMENT_METHOD_ID}} \ -d off_session=true ``` Bei der Erstellung von Abonnements werden Kundinnen und Kunden aufgrund der voreingestellten Standard-Zahlungsmethode automatisch abgewickelt. Nach einer erfolgreichen Zahlung ändert sich der Status im Stripe-Dashboard auf **Aktiv**. Der Preis, den Sie zuvor festgelegt haben, bestimmt den Betrag für zukünftige Abrechnungen. ## Ihre Integration testen Testen Sie Ihre PayTo-Integration mit Ihren Test-API-Schlüsseln, indem Sie die verschiedenen Test-PayIDs und Bankkontodaten unten verwenden. Jeder Datensatz hat ein anderes Szenario zufolge, mit dem Ihre Integration im Live-Modus häufig konfrontiert wird. #### PayID | PayID | Beschreibung | | -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `{any_prefix}+succeed@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat geht in den Status `active` über. | | `{any_prefix}+decline@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `invalid_authorization` zurück. Das Mandat geht in den Status `inactive` über. | | `{any_prefix}+expire@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Minuten von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `generic_decline` zurück. Das Mandat geht in den Status `inactive` über. | | `{any_prefix}+insufficient_funds@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `requires_payment_method` . Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `insufficient_funds` zurück. Das Mandat geht in den Status `inactive` über. | | `{any_prefix}+revoke@{any_domain}` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat beginnt im Status `active` und wechselt nach 1 Minute zu `inactive`. | | `{any_prefix}+agreement_type_not_supported@{any_domain}` | Der PaymentIntent Status wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` zurück. Das Mandat geht in den Status `inactive` über. | #### Konto- + BSB-Nummern | BSB-Nummer | Kontonummer | Beschreibung | | ---------- | ----------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `000000` | `000123456` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat geht in den Status `active` über. | | `000000` | `333333335` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `invalid_authorization` zurück. Das Mandat geht in den Status `inactive` über. | | `000000` | `333333337` | Der Status des PaymentIntent wechselt nach 10 Minuten von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `generic_decline` zurück. Das Mandat geht in den Status `inactive` über. | | `000000` | `222222227` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `requires_payment_method` . Stripe gibt den Fehlercode `payment_method_provider_decline` und den Ablehnungscode `insufficient_funds` zurück. Das Mandat geht in den Status `inactive` über. | | `000000` | `444444447` | Der Status des PaymentIntent wechselt nach 10 Sekunden von `requires_action` zu `processing` und dann nach weiteren 5 Sekunden zu `succeeded`. Das Mandat beginnt im Status `active` und wechselt nach 1 Minute zu `inactive`. | | `000000` | `666666667` | Der PaymentIntent Status wechselt nach 10 Sekunden von `requires_action` zu `requires_payment_method`. Stripe gibt den Fehlercode `payment_method_provider_decline` zurück. Das Mandat geht in den Status `inactive` über. |