# Als SaaS-Start-up Abonnements verkaufen Starten Sie als SaaS-Start-up eine vordefinierte Abonnment-Integration. Dieser Leitfaden richtet sich an SaaS-Start-ups, die wiederkehrende Zahlungen (Abonnements) mit einem [Pauschalpreismodell](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) akzeptieren möchten. Das bedeutet, dass Sie zu Beginn eines bestimmten Zeitraums eine Pauschale pro Monat für Ihr Produkt oder Ihre Dienstleistung berechnen. Der Zahlungsablauf leitet Ihre Kundinnen und Kunden auf eine von Stripe gehostete Seite weiter, auf der sie ihre Zahlungsdetails eingeben und leitet sie dann auf Ihre Website zurück. Sie verwenden [Checkout](https://docs.stripe.com/payments/checkout.md), um die von Stripe gehostete Seite zu erstellen, die die [Checkout Sessions API](https://docs.stripe.com/api/checkout/sessions.md) aufruft. ## Stripe-Konto erstellen Vor der Integration mit Stripe müssen Sie ein Stripe-Konto erstellen. 1. [Erstellen Sie ein Konto](https://dashboard.stripe.com/register), indem Sie Ihre E-Mail-Adresse, Ihren vollständigen Namen und Ihr Land eingeben und ein Passwort erstellen. 1. Füllen Sie Ihr Unternehmensprofil aus. 1. Klicken Sie im Dashboard auf **Ihre E-Mail-Adresse verifizieren**. Stripe sendet zur Verifizierung eine E-Mail an Ihre E-Mail-Adresse. 1. Ihre E-Mail-Adresse verifizieren. ## Testprodukt und Preis erstellen Produkte erstellen und Preise im Dashboard festlegen. 1. [Erstellen Sie ein Testprodukt im Dashboard](https://dashboard.stripe.com/test/products/create). 1. Geben Sie die Produkt- und Preisdetails ein: - Name: Geben Sie „Plus“ ein - Preis: Geben Sie „8“ ein - Währung: **USD** auswählen 1. Laden Sie ein Testproduktbild hoch. 1. Wählen Sie **Wiederkehrend** aus. 1. Klicken Sie auf **Testprodukt hinzufügen**. ## Zahlungen für Abonnements annehmen Um Zahlungen zu akzeptieren, erstellen Sie eine Integration mit dem von [Stripe gehosteten Checkout](https://docs.stripe.com/payments/checkout.md), einer vorgefertigten Zahlungsseite. ### Bevor Sie beginnen Lesen Sie die von Stripe gehostete Checkout-[QuickStart](https://docs.stripe.com/checkout/quickstart.md)-Anleitung. Sie können die Beispiel-App herunterladen oder sie im VS-Code öffnen. ### Ihren Server einrichten Ihr Server kommuniziert mit der Stripe API, um den Prozess des Bezahlvorgangs zu initialisieren, doch Stripe hostet das Zahlungsformular sicher. Die Einrichtung Ihres Servers variiert je nach Programmiersprache, erfordert jedoch in der Regel die Installation der Stripe-Bibliothek, die Konfiguration Ihrer API-Schlüssel und die Implementierung der Endpoints, die zum Erstellen von `Checkout Session` und zum Abwickeln von Prozessen nach der Zahlung erforderlich sind. 1. Öffnen Sie die [QuickStart](https://docs.stripe.com/checkout/quickstart.md)-Anleitung und wählen Sie **React** für das Frontend und **Node** für das Backend aus. 1. [Node-Bibliothek von Stripe installieren](https://docs.stripe.com/checkout/quickstart.md#init-stripe). 1. [Checkout-Sitzung erstellen](https://docs.stripe.com/checkout/quickstart.md#create). Eine [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions/create.md) ist ein serverseitiges Objekt in Stripe, das einen Zahlungsablauf für eine Kundin/einen Kunden definiert. Der Endpoint-Pfad muss mit dem Attribut `action` Ihrer [Checkout-Schaltfläche](https://docs.stripe.com/get-started/use-cases/saas-subscriptions.md#create-your-checkout-page) übereinstimmen. 1. [Definieren Sie ein zu verkaufendes Produkt](https://docs.stripe.com/checkout/quickstart.md#line-items). Fügen Sie das Testprodukt („Plus“), das Sie zuvor erstellt haben, im Dashboard hinzu. Nachdem Sie das Testprodukt festgelegt haben, erhalten Sie einen Preis-ID-Wert, den Ihr Frontend übergeben muss, wenn eine `Checkout-Sitzung` erstellt wird. 1. [Wählen Sie einen Zahlungsmodus](https://docs.stripe.com/checkout/quickstart.md#mode). Um wiederkehrende Zahlungen mit Abonnements zu initiieren, setzen Sie den `mode` auf `subscription`. 1. [Geben Sie eine Erfolgs-URL an](https://docs.stripe.com/checkout/quickstart.md#urls). Stripe leitet Ihre Kundinnen und Kunden nach Abschluss oder Abbruch einer Zahlung auf diese Seiten weiter. Hosten Sie diese Seiten auf Ihrer eigenen Website. 1. [Leiten Sie Ihre Kundin/Ihren Kunden an die URL für die Checkout-Seite weiter](https://docs.stripe.com/checkout/quickstart.md#redirect). Dies ist die in der Antwort auf die `Checkout Session` zurückgegebene [URL](https://docs.stripe.com/api/checkout/sessions/object.md#checkout_session_object-url). ### Ihre Bezahlseite erstellen Dies ist eine Seite auf Ihrer Website, die den Kundinnen und Kunden eine Zusammenfassung ihrer Bestellung zeigt, bevor sie mit der Zahlung fortfahren. Sie können ihre Auswahl prüfen und bei Bedarf ändern. 1. [Bestellvorschau-Seite hinzufügen](https://docs.stripe.com/checkout/quickstart.md#preview-page). 1. [Schaltfläche für Bezahlvorgang hinzufügen](https://docs.stripe.com/checkout/quickstart.md#add-button). Dies ist die Schaltfläche, auf die der Kunde/die Kundin auf der Vorschauseite der Bestellung klickt und die ihn/sie zu der von Stripe gehosteten Zahlungsseite weiterleitet. ### Ihre Checkout-Seite testen 1. Fügen Sie Ihrer Datei `package.json` während der lokalen Entwicklung `“proxy”: “”` hinzu. 1. Führen Sie `npm start` aus und gehen Sie zu . 1. Geben Sie auf Ihrer Bezahlvorgangsseite die Test-Karte `4242424242424242` ein, um als Kundin/Kunde eine Test-Zahlung zu übermitteln. 1. (Optional) Um sich für ein [Link](https://docs.stripe.com/payments/link.md)-Konto zu registrieren, wählen Sie **Meine Daten für einen schnelleren Bezahlvorgang speichern** aus. Sie können Link als Zahlungsmethode testen, um den Bezahlvorgang für wiederkehrende Kundinnen und Kunden anzuzeigen. ## Zusätzliche empfohlene Konfigurationen Erfahren Sie, wie Sie Zahlungsmethoden, Testzeiträume hinzufügen und ein Kundenportal einrichten. ### Zahlungsseite anpassen Sie können benutzerdefiniertes Branding auf Checkout anwenden. Gehen Sie im Dashboard zu [Branding-Einstellungen](https://dashboard.stripe.com/settings/branding/checkout), um Folgendes zu tun: - Ein Logo oder Symbol hochladen - Hintergrundfarbe, Schaltflächenfarbe, Schriftart und Formen der Seite anpassen ### Mehr Zahlungsmethoden Aktivieren Sie auf der Seite [Zahlungsmethoden](https://dashboard.stripe.com/settings/payment_methods) im Dashboard die Zahlungsmethoden, die Sie von Ihren Kundinnen und Kunden akzeptieren möchten. Checkout unterstützt [mehrere Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/payment-method-support.md#product-support) sowie [dynamische Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/dynamic-payment-methods.md). Das bedeutet, dass Stripe die Logik anwendet, um jedem Kunden/jeder Kundin dynamisch die relevantesten zulässigen Zahlungsmethoden anzuzeigen, um die Konversion zu maximieren. Stripe zeigt Kundinnen/Kunden nur die Zahlungsmethoden an, die sie verwenden können, anhand von Faktoren wie ihrem [Standort](https://docs.stripe.com/payments/payment-methods/payment-method-support.md#country-currency-support) oder ob die Zahlungsmethode [Abonnements unterstützt](https://docs.stripe.com/payments/payment-methods/payment-method-support.md#product-support). ### Testzeiträume hinzufügen Konfigurieren Sie eine `Checkout Session`, um dem Abo Ihrer Kundin/Ihres Kunden einen kostenlosen Testzeitraum hinzuzufügen, indem Sie einen der folgenden Parameter übergeben: - [subscription_data.trial_period_days](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-subscription_data-trial_period_days), die Dauer (in Tagen) Ihrer kostenlosen Testversion - [subscription_data.trial_end](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-subscription_data-trial_end), ein Unix-Zeitstempel, der das Ende des Testzeitraums darstellt ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=subscription \ --data-urlencode "success_url=https://example.com/success" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "subscription_data[trial_period_days]=30" ``` ### Kundenportal hinzufügen Ihre Kundinnen und Kunden verwalten ihre bestehenden Abonnements und Rechnungen in einem Kundenportal. Verwenden Sie das [Dashboard](https://dashboard.stripe.com/test/settings/billing/portal), um das Portal zu erstellen. Konfigurieren Sie es mindestens so, dass Kundinnen und Kunden ihre Zahlungsmethoden aktualisieren können. ## Überwachen Sie Ihre Abonnements Um Abonnements für Ihre von Stripe gehostete Checkout-Integration zu überwachen, können Sie einen Endpoint einrichten, um bestimmte Webhook-Ereignisse zu überwachen, die während der Lebensdauer des Abos auftreten. ### Einen Webhook-Endpoint einrichten 1. Erstellen Sie einen Webhook-Endpoint auf Ihrem Server, um Ereignisbenachrichtigungen von Stripe zu erhalten. 1. Registrieren Sie diesen Endpoint im Dashboard in Ihren [Webhook-Einstellungen](https://dashboard.stripe.com/webhooks). 1. Implementieren Sie die Verifizierung der Webhook-Signatur aus Sicherheitsgründen mit Ihrem Webhook-Geheimschlüssel. Wenn Sie Ihren `STRIPE_WEBHOOK_SECRET`-Schlüssel nicht kennen, gehen Sie zur Zieldatenansicht der Registerkarte [Webhooks](https://dashboard.stripe.com/workbench/webhooks) in Workbench, um ihn anzuzeigen. 1. Wählen Sie in [Workbench](https://dashboard.stripe.com/workbench/webhooks) die gewünschten Ereignisse aus. 1. Geben Sie im Dashboard den Namen, die URL und die Beschreibung des Endpoints ein. 1. Überwachen Sie mindestens die folgenden Ereignisse (weitere Ereignisse finden Sie unter [Abonnement-Webhooks](https://docs.stripe.com/billing/subscriptions/webhooks.md)): | Ereignisname | Beschreibung | Ihre Antwort | | ---------------------------- | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `checkout.session.completed` | Wird gesendet, wenn eine Kundin/ein Kunde den Bezahlvorgang erfolgreich abschließt und informiert Sie über einen neuen Kauf. | Verwenden Sie [Berechtigungen](https://docs.stripe.com/billing/entitlements.md), um das Abonnement bereitzustellen. | | `invoice.paid` | Wird in jedem Rechnungsstellungszeitraum gesendet, wenn eine Zahlung erfolgreich ist. | Stellen Sie für die monatliche Abrechnung weiterhin jeden Monat das Abo bereit, wenn Sie Ereignisse des Typs `invoice.paid` erhalten. Untersuchen Sie den Ereignistyp und parsen Sie die Nutzlast jedes Ereignisobjekts. Speichern Sie die Ereignisobjekte `subscription.id` and `customer.id` zu Verifizierungszwecken in Ihrer Datenbank. | | `invoice.payment_failed` | Wird in jedem Rechnungsstellungszeitraum gesendet, wenn es ein Problem mit der Zahlungsmethode Ihrer Kundin/Ihres Kunden gibt. | Benachrichtigen Sie Ihre Kundin/Ihren Kunden und leiten Sie sie/ihn zum Kundenportal weiter, um ihre/seine Zahlungsmethode zu aktualisieren. | ### Abrechnungszyklus festlegen Sie können den Abrechnungszyklusanker eines Abos beim Erstellen einer `Checkout Session` explizit auf ein festes Datum festlegen (z. B. den 1. des nächsten Monats). Der Abrechnungszyklusanker bestimmt das Datum der ersten vollständigen Rechnung, an dem den Kundinnen und Kunden der vollständige Abo-Betrag in Rechnung gestellt wird. Beispielsweise wird ein am 15. Mai erstelltes monatliches Abo mit einem Anker am 1. Juni zunächst am 15. Mai, dann immer am 1. des Monats in Rechnung gestellt. Um einen Abrechnungszyklusanker zu konfigurieren, legen Sie den Parameter [subscription_data.billing_cycle_anchor](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-subscription_data-billing_cycle_anchor) fest, wenn Sie eine `Checkout-Sitzung` im Modus `subscription` erstellen. Der Anker muss ein zukünftiger UNIX-Zeitstempel vor dem nächsten natürlichen Datum der Abo-Abrechnung sein. ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d mode=subscription \ --data-urlencode "success_url=https://example.com/success?session_id={CHECKOUT_SESSION_ID}" \ -d "subscription_data[billing_cycle_anchor]=1611008505" ``` Wenn der Abrechnungszyklusanker in den aktiven Zeitraum einer Sitzung fällt und Kundinnen und Kunden nach dessen Ablauf Zahlungsversuche unternehmen, zeigt Checkout den gesamten Zeitraum an und rechnet diesen ab, beginnend mit dem Abrechnungszyklusanker, und nicht mit dem anteiligen Zeitraum vor dem Abrechnungszyklusanker. Weitere Informationen finden Sie unter [Datum des Abrechnungszyklus festlegen](https://docs.stripe.com/payments/checkout/billing-cycle.md). ## Live gehen 1. Öffnen Sie im Dashboard Ihre [Kontoeinstellungen](https://dashboard.stripe.com/account/onboarding). 1. Geben Sie Ihren Unternehmenstyp, Ihre Steuerangaben, Ihre Unternehmensdaten, Ihre persönlichen Verifizierungsinformationen und Ihre Informationen für die Kundschaft (z. B. eine Zahlungsbeschreibung in der Abrechnung) ein. 1. Fügen Sie Bankdaten hinzu, um zu bestätigen, wo Ihr Geld ausgezahlt werden soll. 1. Richten Sie die Zwei-Schritte-Authentifizierung zum Schutz Ihres Kontos ein. 1. Optional können Sie automatischem Steuereinzug oder umsatzbasierte Klimaspenden hinzufügen. 1. Prüfen Sie die eingegebenen Informationen und klicken Sie auf **Zustimmen und absenden**. 1. Nachdem Sie Ihr Profil aktiviert haben, aktualisiert Stripe Sie vom Sandbox-Modus in den Live-Modus. Learn more about [setting up your Stripe account](https://docs.stripe.com/get-started/account/set-up.md). ## Nächste Schritte Nach der Einrichtung Ihrer Integration empfehlen wir Ihnen, die folgenden Funktionen zu implementieren: - [Aktivieren Sie die automatische Erhebung von Steuern](https://docs.stripe.com/tax/checkout.md) auf Abos in einer `Checkout Session`. - [Stornierung oder Rückerstattung einer Zahlung](https://docs.stripe.com/refunds.md). Sie können eine Zahlung stornieren, bevor sie abgeschlossen ist, oder eine Zahlung ganz oder teilweise zurückerstatten, nachdem sie erfolgreich war. - [Richten Sie Ihr Bankkonto für den Empfang von Auszahlungen ein](https://docs.stripe.com/payouts.md). - [Adaptive Pricing aktivieren](https://docs.stripe.com/payments/currencies/localize-prices/adaptive-pricing.md). So kann Stripe Ihren Kundinnen und Kunden in über 150 Ländern Zahlungen in ihrer Landeswährung ermöglichen.