Weiter zum Inhalt
Konto erstellen oder anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellenAnmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
APIs und SDKsHilfe
Übersicht
Billing
ÜbersichtÜber die Billing APIs
Abonnements
    Übersicht
    So funktionieren Abonnements
    Jetzt starten
    Quickstart
    Konzipieren einer Integration
    Erstellen Sie eine Integration
      Wiederkehrende Preismodelle
      Pauschalpreise einrichten
      Preise pro Nutzer/in einrichten
      Nutzungsbasierte Preisgestaltung einrichten
      Gestaffelte Preisgestaltung einrichten
    Preistabelle einbetten
    Abozahlungen aufschieben
    Abonnements zu Stripe migrieren
    Abonnement-Ereignisse konfigurieren
    Abonnements verwalten
    Abrechnungszyklen einrichten
    Testzeiträume einrichten
    Schalten Sie den Abrechnungsmodus ein
    Abos mit gemischten Intervallen verwenden
    Gutscheine anwenden
    Berechtigungen
    Abonnements bearbeiten
    Abonnement kündigen
    Abonnements auf iOS verwalten
    Rechnungen stellen und Zahlungen einziehen
    Rechnungen für Abonnements
    Konfigurieren Sie die Einzugsmethoden
    Verwalten Sie die Zahlungsmethoden für Abonnements
    Zahlungseinzug unterbrechen
    Integration mit Drittanbietern von Zahlungsdienstleistungen
    Vertriebsorientierte Abrechnung
    Abonnementpläne
    Abonnements zurückdatieren
    Analytik
Invoicing
Nutzungsbasierte Abrechnung
Nutzungsbasierte Abrechnung Advanced
Angebote
Kundenverwaltung
Abrechnung mit anderen Produkten
Umsatzsicherung
Automatisierungen
Integration testen
Steuer
Übersicht
Stripe Tax verwenden
Compliance-Management
Berichte
Übersicht
Bericht auswählen
Berichte konfigurieren
Berichte für mehrere Konten
API für Berichte
Umsatzrealisierung
Daten
Übersicht
Abfrage von Unternehmensdaten
Sigma
Data Pipeline
Externe Daten importieren
Vereinigte Staaten
Deutsch
StartseiteUmsatzSubscriptions

Abonnement-Integration erstellen

Abonnements und wiederkehrende Zahlungen erstellen und verwalten

Bezahlvorgang Abo-Seite
Low-Code

Logo, Bilder und Farben anpassen.

Verwenden Sie vorgefertigte gehostete Seiten, um Zahlungen einzuziehen und Abos zu verwalten.

Kopieren Sie eine Beispielintegration von GitHub.

Eine ausführliche Version dieses Leitfadens finden Sie im Quickstart zur Billing-Integration.

Sehen Sie sich das Beispiel auf GitHub oder die Demo an.

Sie werden Folgendes entwickeln

In diesem Leitfaden wird erläutert, wie Sie mit Stripe Checkout monatliche Festpreis-Abos verkaufen.

Dieser Leitfaden bietet Informationen zu den folgenden Vorgehensweisen:

  • Modellieren Sie Ihr Unternehmen, indem Sie einen Produktkatalog erstellen.
  • Fügen Sie eine Checkout-Sitzung zu Ihrer Seite hinzu, einschließlich einer Schaltfläche sowie Erfolgs- und Abbruchseiten.
  • Überwachen Sie Abo-Ereignisse und stellen Sie den Zugang zu Ihrer Dienstleistung bereit.
  • Richten Sie das Kundenportal ein.
  • Fügen Sie eine Kundenportal-Sitzung zu Ihrer Seite hinzu, einschließlich einer Schaltfläche und einer Umleitung.
  • Lassen Sie Ihre Kund/innen über das Portal ihre eigenen Abos verwalten.
  • Erfahren Sie, wie Sie im flexiblen Abrechnungsmodus auf ein verbessertes Abrechnungsverhalten und zusätzliche Funktionen zugreifen können.

Wenn Sie zur Codierung einer Integration nicht bereit sind, können Sie einfache Abos manuell im Dashboard einrichten oder Payment Links nutzen, um Abos einzurichten, ohne Code schreiben zu müssen.

Erfahren Sie mehr über das Entwerfen einer Integration, um zu verstehen, welche Entscheidungen Sie für eine vollständige Integration treffen müssen und welche Ressourcen Sie benötigen.

Nachdem Sie die Integration abgeschlossen haben, können Sie sie auf Folgendes erweitern:

  • Steuern anzeigen
  • Rabatte anwenden
  • Kund/innen einen kostenlosen Testzeitraum anbieten
  • Zahlungsmethoden hinzufügen
  • Gehostete Rechnungsseite integrieren
  • Checkout im Einrichtungsmodus verwenden
  • Nutzungsbasierte Abrechnung, Preisstufen und nutzungsbasierte Preise einrichten
  • Anteilmäßige Verrechnung verwalten
  • Ermöglichen Sie es Kund/innen, mehrere Produkte zu abonnieren
  • Berechtigungen integrieren, um den Zugriff auf die Funktionen Ihres Produkts zu verwalten

Stripe einrichten

Installieren Sie den Stripe-Client Ihrer Wahl:

Command Line
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Available as a gem sudo gem install stripe
Gemfile
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

Installieren Sie optional die Stripe CLI. Die CLI bietet Webhook-Tests und kann zum Erstellen Ihrer Produkte und Preise ausgeführt werden.

Command Line
Homebrew
Aus Quelle installieren
No results
# Install Homebrew to run this command: https://brew.sh/ brew install stripe/stripe-cli/stripe # Connect the CLI to your dashboard stripe login

Weitere Installationsoptionen finden Sie unter Mit der Stripe-CLI loslegen.

Preismodell erstellen
Dashboard oder Stripe-CLI

Wiederkehrende Preismodelle umfassen die Produkte und Dienstleistungen, die Sie anbieten, die Preise dafür, welche Währungen Sie für Zahlungen verwenden und den Leistungszeitraum (für Abos). Verwenden Sie zum Aufbau des Preismodells Produkte (was Sie anbieten) und Preise (Höhe und Abrechnungsintervall).

In diesem Beispiel wird ein Pauschalpreisdienst mit zwei verschiedenen Service-Optionen verwendet: Basis und Premium. Für jede Service-Option müssen Sie ein Produkt und einen wiederkehrenden Preis erstellen. Um eine einmalige Gebühr, z. B. für die Einrichtung, hinzufügen möchten, erstellen Sie ein drittes Produkt mit einem einmaligen Preis.

Jedes Produkt wird in monatlichen Intervallen abgerechnet. Der Preis für das Basisprodukt beträgt 5 USD. Der Preis für das Premiumprodukt beträgt 15 USD. Ein Beispiel mit drei Stufen finden Sie im Leitfaden zu Pauschalpreismodellen.

Gehen Sie zur Seite Produkt hinzufügen und erstellen Sie zwei Produkte. Fügen Sie für jedes Produkt einen Preis hinzu, jeweils mit einem monatlich wiederkehrenden Abrechnungszeitraum:

  • Premium-Produkt: Premium-Dienstleistung mit zusätzlichen Funktionen

    • Preis: Pauschalpreis | 15 USD
  • Basic-Produkt: Basic-Dienstleistung mit minimalem Funktionsumfang

    • Preis: Pauschalpreis | 5 USD

Zeichnen Sie nach Erstellung der Preise die Preis-IDs auf, sodass diese in anderen Schritten verwendet werden können. Preis-IDs sehen in etwa wie folgt aus: price_G0FvDp6vZvdwRZ.

Wenn Sie bereit sind, verwenden Sie die Schaltfläche In Live-Modus kopieren oben rechts auf der Seite, um Ihr Produkt aus der Sandbox in den Live-Modus zu kopieren.

Wenn Sie mehrere Rechnungsstellungszeiträume anbieten, verwenden Sie Checkout, um Kundinnen und Kunden längere Rechnungsstellungszeiträume als Upsell anzubieten und mehr Umsatz im Voraus zu erzielen.

Weitere Preismodelle finden Sie unter Abrechnungsbeispiele.

Checkout-Sitzung erstellen
Client und Server

Fügen Sie Ihrer Website eine Schaltfläche zum Bezahlen hinzu, die einen serverseitigen Endpoint aufruft, um eine Checkout-Sitzung zu erstellen.

index.html
Vollständiges Beispiel anzeigen
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <!-- Note: If using PHP set the action to /create-checkout-session.php --> <input type="hidden" name="priceId" value="price_G0FvDp6vZvdwRZ" /> <button type="submit">Checkout</button> </form> </body> </html>

Definieren Sie im Backend Ihrer Anwendung einen Endpoint, der die Sitzung erstellt, die von Ihrem Frontend aufgerufen werden kann. Sie brauchen dazu folgende Werte:

  • Die Preis-ID des Abos, das der/die Kund/in abschließt (Ihr Frontend übergibt diesen Wert)
  • Ihre success_url, eine Seite auf Ihrer Website, an die Kund/innen nach Abschluss der Zahlung weitergeleitet werden

Sie können optional Folgendes tun:

  • Konfigurieren Sie in diesem Aufruf einen Abrechnungszyklusanker für Ihr Abo.
  • Verwenden Sie einen benutzerdefinierten Text, um Ihre Abo- und Kündigungsbedingungen sowie einen Link anzugeben, über den Ihre Kundinnen und Kunden ihr Abo aktualisieren oder kündigen können. Wir empfehlen Ihnen, E-Mail-Erinnerungen und Benachrichtigungen für Ihre Abonnentinnen und Abonnenten zu konfigurieren.

Wenn Sie in Schritt 2 einen einmaligen Preis erstellt haben, übergeben Sie auch diese Preis-ID. Leiten Sie Ihre Kund/innen nach dem Erstellen einer Checkout-Sitzung an die in der Antwort zurückgegebene URL weiter.

Sie können beim Erstellen einer Checkout-Sitzung ein genaueres und besser vorhersehbares Aboverhalten aktivieren, indem Sie den Typ des Abrechnungsmodus auf flexible einstellen. Sie müssen die Stripe API Version 2025-06-30.basil oder höher verwenden.

Hinweis

Sie können lookup_keys anstelle von Preis-IDs verwenden, um Preise abzurufen. Ein Beispiel finden Sie in der Beispielanwendung.

server.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Vollständiges Beispiel anzeigen
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
# The price ID passed from the front end. # price_id = params['priceId'] price_id = '{{PRICE_ID}}' session = Stripe::Checkout::Session.create({ success_url: 'https://example.com/success.html?session_id={CHECKOUT_SESSION_ID}', mode: 'subscription', line_items: [{ # For usage-based billing, don't pass quantity quantity: 1, price: price_id }], subscription_data: { billing_mode: { type: 'flexible' } } }) # Redirect to the URL returned on the session # redirect session.url, 303

In diesem Beispiel wird die success_url durch Anhängen der Sitzungs-ID angepasst. Erfahren Sie mehr über das Anpassen Ihrer Erfolgsseite.

Aktivieren Sie in Ihrem Dashboard die Zahlungsmethoden, die Sie von Ihren Kund/innen akzeptieren möchten. Checkout unterstützt mehrere Zahlungsmethoden.

Abos bereitstellen und überwachen
Server

Vergleichen Sie die Referenzen von Customers v1 und Accounts v2

Wenn Ihre Connect-Plattform verwendet kundenkonfigurierte Konten, benutze unser Anleitung Ersetzen Customer und Ereignisreferenzen in Ihrem Code mit den entsprechenden Accounts v2 API-Referenzen.

Nach erfolgreicher Registrierung eines Abonnements wird der Kunde zur success_url Ihrer Website zurückgeleitet, wodurch ein checkout.session.completed Webhook ausgelöst wird. Wenn Sie ein checkout.session.completed-Ereignis empfangen, können Sie mit entitlements das Abo bereitstellen. Führen Sie die Bereitstellung monatlich fort (bei monatlicher Abrechnung), indem Sie auf die invoice.paid-Ereignisse reagieren. Erhalten Sie hingegen ein invoice.payment_failed-Ereignis, benachrichtigen Sie bitte Ihre Kundschaft und leiten Sie diese zum Kundenportal weiter, um die Zahlungsmethode zu aktualisieren.

Um den nächsten Schritt für die Logik Ihres Systems zu bestimmen, überprüfen Sie den Ereignistyp und analysieren Sie die Payload jedes Ereignisobjekts, etwa invoice.paid. Speichern Sie die Ereignisobjekte subscription.id und customer.id zur Überprüfung in Ihrer Datenbank.

Zu Testzwecken können Sie Ereignisse auf der Registerkarte Ereignisse in Workbench überwachen. Richten Sie für die Produktion einen Webhook-Endpoint ein und abonnieren Sie die entsprechenden Ereignistypen. Wenn Sie Ihren STRIPE_WEBHOOK_SECRET-Schlüssel nicht kennen, gehen Sie zur Zieldetailsansicht der Registerkarte Webhooks in Workbench, um ihn anzuzeigen.

server.rb
Ruby
Python
PHP
Java
Node.js
Gehen Sie zu
.NET
No results
Vollständiges Beispiel anzeigen
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/webhook' do webhook_secret =
'{{STRIPE_WEBHOOK_SECRET}}'
payload
= request.body.read if !webhook_secret.empty? # Retrieve the event by verifying the signature using the raw body and secret if webhook signing is configured. sig_header = request.env['HTTP_STRIPE_SIGNATURE'] event = nil begin event = Stripe::Webhook.construct_event( payload, sig_header, webhook_secret ) rescue JSON::ParserError => e # Invalid payload status 400 return rescue Stripe::SignatureVerificationError => e # Invalid signature puts '⚠️ Webhook signature verification failed.' status 400 return end else data = JSON.parse(payload, symbolize_names: true) event = Stripe::Event.construct_from(data) end # Get the type of webhook event sent event_type = event['type'] data = event['data'] data_object = data['object'] case event_type when 'checkout.session.completed' # Payment is successful and the subscription is created. # You should provision the subscription and save the customer ID to your database. when 'invoice.paid' # Continue to provision the subscription as payments continue to be made. # Store the status in your database and check when a user accesses your service. # This approach helps you avoid hitting rate limits. when 'invoice.payment_failed' # The payment failed or the customer doesn't have a valid payment method. # The subscription becomes past_due. Notify your customer and send them to the # customer portal to update their payment information. else puts "Unhandled event type: \#{event.type}" end status 200 end

Überwachen Sie mindestens folgende Ereignistypen:

EreignisnameBeschreibung
checkout.session.completedWird gesendet, wenn ein/e Kund/in die Checkout-Sitzung erfolgreich abschließt, und informiert Sie über einen neuen Kauf.
invoice.paidWird in jedem Rechnungsstellungszeitraum gesendet, wenn eine Zahlung erfolgreich ist.
invoice.payment_failedWird in jedem Rechnungsstellungszeitraum gesendet, wenn es ein Problem mit der Zahlungsmethode Ihrer Kundin/Ihres Kunden gibt.

Weitere zu überwachende Ereignisse finden Sie unter Abo-Webhooks.

Konfigurieren Sie das Kundenportal
Dashboard

Über das Kundenportal können Ihre Kund/innen ihre bestehenden Abos und Rechnungen direkt verwalten.

Verwenden Sie das Dashboard, um das Portal zu konfigurieren. Konfigurieren Sie das Portal mindestens so, dass Kundinnen und Kunden ihre Zahlungsmethoden aktualisieren können.

Eine Portalsitzung erstellen
Server

Definieren Sie einen Endpoint, der die Kundenportalsitzung erstellt, die Ihr Frontend aufruft. Die CUSTOMER_ID bezieht sich auf die von einer Checkout-Sitzung erstellte Kunden-ID, die Sie bei der Verarbeitung des Ereignisses checkout.session.completed gespeichert haben. Sie können auch einen Standard-Weiterleitungslink für das Portal im Dashboard festlegen.

Übergeben Sie einen optionalen return_url-Wert für die Seite auf Ihrer Website, auf die Ihre Kund/innen nach der Verwaltung ihres Abos weitergeleitet werden:

server.rb
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Vollständiges Beispiel anzeigen
# Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
# This is the URL that users are redirected to after they're done # managing their billing. return_url =
'{{DOMAIN_URL}}'
customer_id
=
'{{CUSTOMER_ID}}'
session
= Stripe::BillingPortal::Session.create({ customer: customer_id, return_url: return_url, }) # Redirect to the URL for the session # redirect session.url, 303

Kunden zum Kundenportal senden
Client

Fügen Sie im Frontend eine Schaltfläche auf der Seite unter der success_url hinzu, die auf das Kundenportal verweist:

success.html
Vollständiges Beispiel anzeigen
<html> <head> <title>Manage Billing</title> </head> <body> <form action="/customer-portal" method="POST"> <!-- Note: If using PHP set the action to /customer-portal.php --> <button type="submit">Manage Billing</button> </form> </body> </html>

Nach dem Verlassen des Kundenportals kehren die Kund/innen über die return_url auf Ihre Website zurück. Fahren Sie fort mit Ereignisse überwachen, um den Abo-Status der Kund/innen zu tracken.

Wenn Sie das Kundenportal so konfigurieren, dass Aktionen wie die Kündigung eines Abos zugelassen werden, überwachen Sie zusätzliche Ereignisse.

Testen Sie Ihre Integration.

Zahlungsmethoden testen

Verwenden Sie die folgende Tabelle, um verschiedene Zahlungsmethoden und -szenarien zu testen.

ZahlungsmethodeSzenarioSo führen Sie den Test durch
BECS-LastschriftIhr/e Kund/in zahlt erfolgreich mit dem BECS-Lastschriftverfahren.Füllen Sie das Formular mit der Kontonummer 900123456 und BSB 000000 aus. Der bestätigte PaymentIntent geht zunächst in den Status processing über und dann drei Minuten später in den Status succeeded.
BECS-LastschriftDie Zahlung Ihres/Ihrer Kund/in schlägt fehl mit Code account_closed fehl.Füllen Sie das Formular mit der Kontonummer 111111113 und BSB 000000 aus.
KreditkarteDie Kartenzahlung ist erfolgreich, und es ist keine Authentifizierung erforderlich.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer 4242 4242 4242 4242 mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
KreditkarteFür die Kartenzahlung ist eine Authentifizierung erforderlich.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer 4000 0025 0000 3155 mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
KreditkarteDie Karte wird mit einem Ablehnungscode wie insufficient_funds abgelehnt.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer 4000 0000 0000 9995 mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
SEPA-LastschriftIhr/e Kund/in zahlt erfolgreich mit dem SEPA-Lastschriftverfahren.Füllen Sie das Formular mit der Kontonummer AT321904300235473204 aus. Die bestätigte PaymentIntent geht zunächst in den Status „wird verarbeitet“ und dann drei Minuten später in den Status „erfolgreich“ über.
SEPA-LastschriftDer Status der PaymentIntent Ihrer Kundin/Ihre Kundin wechselt von processing zu requires_payment_method.Füllen Sie das Formular mit der Kontonummer AT861904300235473202 aus.

Ereignisse überwachen

Richten Sie Webhooks ein, um Änderungsereignisse für Abos wie Upgrades und Kündigungen zu überwachen. Sie können Webhook-Ereignisse für Abos im Dashboard oder mit Stripe CLI anzeigen.

Erfahren Sie mehr über das Testen Ihrer Abrechnungsintegration.

Siehe auch

  • Kund/innen einen kostenlosen Testzeitraum anbieten
  • Rabatte anwenden
  • Anteilmäßige Verrechnung verwalten
  • Berechtigungen integrieren, um den Zugriff auf die Funktionen Ihres Produkts zu verwalten
War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc