Abonnementpläne
Erfahren Sie mehr über Abonnementpläne und wie Sie diese verwenden können.
Verwenden Sie Abonnementpläne, um Änderungen an Abonnements im Verlauf der Zeit zu automatisieren. Sie können Abonnements direkt über einen Zeitplan erstellen oder einen Zeitplan zu einem bestehenden Abonnement hinzufügen. Verwenden Sie das Attribut phases, um die am Abonnement vorzunehmenden Änderungen zu definieren. Sobald ein Zeitplan alle Phasen beendet hat, wird er gemäß seinem end_behavior abgeschlossen.
Folgende Änderungen könnten für Sie interessant sein:
- Starten eines Abonnements an einem Datum in der Zukunft
- Rückdatieren eines Abonnements auf ein Datum in der Vergangenheit
- Herauf- oder Herabstufen eines Abonnements
Abonnementpläne sind sowohl im Stripe Billing-Dashboard als auch in der API verfügbar. Im folgenden kurzen Video erklären wir Ihnen die Funktionsweise von Abonnementplänen im Dashboard:
Abonnementpläne im Dashboard
In den folgenden Abschnitten der Dokumentation werden Abonnementpläne ausführlicher erläutert. Auf der Seite „Anwendungsszenarien“ finden Sie eine Reihe von Beispielen.
Phasen
Verwenden Sie beim Erstellen eines Abonnementplans das Attribut phases, um zu definieren, wann Änderungen auftreten und welche Eigenschaften des Abonnements geändert werden sollen. Zum Beispiel könnten Sie einen Gutschein über 50 % Rabatt für die ersten drei Monate eines Abonnements anbieten. In diesem Szenario würden Sie einen Abonnementplan mit einer dreimonatigen ersten Phase erstellen, in der der Gutschein über 50 % Rabatt angewendet wird. In der zweiten Phase würde das Abonnement wieder auf den regulären Preis angepasst und der Gutschein wieder entfernt werden. Phasen müssen fortlaufend ausgeführt werden, wodurch zu einem bestimmten Zeitpunkt immer nur eine Phase aktiv sein kann. Sie können bis zu 10 Phasen haben.
Die Länge einer Phase festlegen
Das Intervall eines Preises bestimmt, wie häufig ein Abonnement abgerechnet werden soll. Zum Beispiel wird ein monatliches Intervall pro Monat abgerechnet. Phasen haben ein iterations-Attribut, mit dem Sie die Dauer einer Phase festlegen können. Um die Länge der Phase zu bestimmen, multiplizieren Sie diesen Wert mit dem Intervall. Wenn bei einem Abonnementplan ein Preis mit einem monatlichen Intervall verwendet wird und Sie iterations=2
festgelegt haben, erstreckt sich die Phase über zwei Monate.
Das end_
einer Phase muss dem start_
der nächsten Phase entsprechen. Durch die Verwendung von iterations
werden start_
und end_
automatisch ordnungsgemäß angegeben. Diese Werte können zwar auch manuell festgelegt werden, aber Stripe empfiehlt stattdessen die Verwendung von iterations
. Da das manuelle Festlegen des Start- und Enddatums anfällig für Fehler ist, sollten Sie es nur für erweiterte Anwendungsszenarien verwenden.
In die nächste Phase wechseln
Phasenwechsel erfolgen automatisch nach dem Erreichen des end_
für eine Phase. Wenn eine Phase startet, aktualisiert Stripe das Abonnement entsprechend den Attributen der nächsten Phase. Sie können optional die anteilmäßige Verrechnung aktivieren, um den Nutzer/innen die nicht genutzten Artikel oder die nicht genutzte Zeit auf dem Abonnementplan gutzuschreiben.
Testzeiträume verwenden
Sie können Testzeiträume hinzufügen, indem Sie trial end für eine Phase festlegen. Wenn die gesamte Phase ein Test sein soll, legen Sie den Wert von trial_
auf den gleichen Zeitpunkt wie das end_
der Phase fest. Wenn nur ein Teil der Phase als Testzeitraum gelten soll, können Sie den Wert für trial_
auch auf einen Zeitpunkt vor dem end_
festlegen. Beim Terminieren von Aktualisierungen müssen Sie das neue trial_
für jede Phase angeben.
Einen Zeitplan abschließen
Abonnementpläne enden nach dem Beenden der letzten Phase. Zu diesem Zeitpunkt bleibt das Abonnement bestehen und ist nicht mehr mit dem Zeitplan verknüpft. Wenn Sie ein Abonnement nach Ende der letzten Phase eines Zeitplans kündigen möchten, können Sie end_behavior auf cancel
festlegen.
Phasen-Attribute übernehmen
Wenn eine Phase aktiv wird, werden alle in der Phase festgelegten Attribute auch für das Abonnement festgelegt. Die Attribute bleiben nach dem Ende der Phase unverändert, es sei denn, sie werden durch die folgende Phase geändert oder der Zeitplan hat keine Standardeinstellung. Sie können einige Attribute sowohl für Zeitpläne als auch für Phasen festlegen. Dazu gehören unter anderem:
Wenn eines der Attribute im Zeitplan definiert ist, wird es zur Standardeinstellung für alle Phasen. Wenn die gleiche Eigenschaft sowohl im Zeitplan als auch in der Phase definiert ist, überschreibt das Phasen-Attribut das Zeitplan-Attribut. Dieses Verfahren wird weiter unten erläutert:
Zeitplan-Attribut vorhanden | Phasen-Attribut vorhanden | Ergebnis |
---|---|---|
Nein | Nein | Standardmäßig werden die Kunden- oder Kontoeinstellungen übernommen |
Ja | Nein | Zeitplan-Attribut festgelegt |
Ja | Ja | Phasen-Attribut festgelegt |
Nein | Ja | Phasen-Attribut festgelegt |
Metadaten für Phasen verwenden
Sie können Phasen in Abonnementplänen verwenden, um Metadaten für das zugrunde liegende Abonnement festzulegen. Auf diese Weise können Sie die Metadaten eines Abonnements mit geplanten Aktualisierungen steuern.
Erfahren Sie, wie Sie Abonnementmetadaten in Abonnementrechnungen kopieren.
Abonnementpläne erstellen
Die Seite „Anwendungsszenarien“ enthält ausführliche Beispiele. Im Folgenden finden Sie ein einfaches Beispiel für die Erstellung eines Abonnementplans mit einer Kundin/einem Kunden. Wenn Sie einen Zeitplan so erstellen, wird automatisch auch das Abonnement erstellt.
Notiz
Anders als bei der direkten Erstellung eines Abonnements verhält sich die erste Rechnung eines Abonnementplans, bei der collection_
auf charge_
festgelegt ist, wie eine wiederkehrende Rechnung und wird nicht sofort finalisiert, wenn das Abonnement des Zeitplans erstellt wird. Die Rechnung beginnt im Status draft
und wird von Stripe etwa 1 Stunde nach Erstellung finalisiert.
Dies bedeutet, dass zum Beispiel beim Erstellen eines zahlungspflichtigen Abonnementplans mit start_
auch ein Abonnement und eine Rechnung im Status draft
erstellt werden. So erhalten Sie ein Zeitfenster von einer Stunde, um Änderungen an der Rechnung vorzunehmen. Später wird die Rechnung je nach Ergebnis des asynchronen Zahlungsversuchs zum Abschlusszeitpunkt automatisch in den Status open
oder paid
versetzt.
Abonnementpläne aktualisieren
Sie können nur die aktuellen und zukünftigen Phasen von Abonnementplänen aktualisieren.
Eine Rechnung anzeigen
Verwenden Sie den Parameter schedule unter Vorschau erstellen, um eine Vorschau der nächsten Rechnung für ein Abonnement zu anzuzeigen.
Vorschau der Erstellung und Aktualisierung von Zeitplänen anzeigen
Verwenden Sie die Parameter in schedule_details, um eine Vorschau auf die Erstellung oder Aktualisierung eines Abonnementplans zu erhalten. Übergeben Sie einen vorhandenen schedule-Parameter, um Stripe mitzuteilen, ob es sich um eine Erstellung oder eine Aktualisierung handelt.
Übergeben Sie alle aktuellen und zukünftigen Phasen, die Sie in der Vorschau anzeigen.
Der folgende Code zeigt beispielsweise eine Vorschau der ersten Rechnung für einen Abonnementzeitplan mit der Phase 1
an, der über 12
Abrechnungszeiträume dauert.
Weitere Überlegungen
Abonnementpläne unterliegen in der Regel denselben Einschränkungen wie Abonnements, führen jedoch auch einige eigene Einschränkungen ein. Darüber hinaus kann die Interaktion zwischen Abonnementplänen und Abonnements zu unerwartetem Verhalten führen. Lesen Sie die folgenden Abschnitte, um Einschränkungen, das Produktverhalten und allgemeine Best Practices bei der Verwendung von Abonnementplänen zu verstehen.
Einschränkungen
- Sie können nur bis zu 10 aktuelle oder zukünftige Phasen gleichzeitig in einem Abonnementplan definieren. Vergangene Phasen werden nicht auf dieses Limit angerechnet.
- Abonnementplanphasen unterliegen denselben Einschränkungen wie Abonnements, wenn Abonnementplanphasen mit mehreren Elementen erstellt werden.
Dashboard-Beschränkungen
Sie können Abonnementpläne ohne Code im Dashboard erstellen und aktualisieren.
Im Dashboard können Sie die folgenden Einstellungen global für alle Phasen festlegen, jedoch nicht pro Phase:
- Abrechnungsschwellen
- Zahlungsmethoden
- Rechnungseinstellungen
- Abonnementbeschreibung
- Testtage (nur in der ersten Phase möglich)
Die folgenden Parameter werden im Dashboard nicht unterstützt:
- Metadaten des Abonnementplan
- Metadaten des Phasenelements
- Währung
- Alle Connect-Parameter
Abonnement wird aktualisiert, wenn ein Zeitplan angehängt ist
Verwenden Sie Abonnementpläne, um Abonnements automatisch zu ändern, wenn die Zeit verstrichen ist und die nächste Phase des Zeitplans beginnt. Einige Änderungen, die Sie direkt am Abonnement vornehmen, werden auf die Phasen des Abonnementplans übertragen, andere jedoch nicht. Das bedeutet, dass alle Änderungen, die Sie direkt am Abonnement vornehmen, beim Eintritt in die nächste Phase durch den Abonnementplan überschrieben werden können.
Wenn Sie Änderungen an einem Abonnement planen, befolgen Sie diese Best Practices:
- Wenn ein Abonnementplan an ein Abonnement angefügt ist, verwenden Sie zum Ändern des Abonnements die Subscription Schedule AP anstelle der Subscriptions API.
- Speichern Sie die Abonnement-Zeitplan-IDs neben der Abonnement-ID für zukünftige API-Updates. Die Abonnementzeitplan-ID wird zurückgegeben, wenn Sie die API verwenden, um sie zu erstellen oder über den Webhook subscription_schedule.created, wenn Stripe sie automatisch erstellt, zum Beispiel wenn ein Kunde/eine Kundin ein Downgrade im Kundenportal geplant hat.
- Verwerfen Sie die Abonnementplan-IDs, wenn ein Abonnementplan veröffentlicht wird. Sie können Änderungen an den Abonnements direkt vornehmen oder einen neuen Abonnementplan erstellen. Die Abonnementplan-ID wird zurückgegeben, wenn sie mit der API oder über das Webhook-Ereignis subscription_schedule .released freigegeben wird, wenn der Abonnementplan freigegeben wird.
- Verwenden Sie möglichst das Dashboard, um Abonnements zu ändern, wodurch alle angehängten Abonnementpläne automatisch aktualisiert werden.
Insbesondere wenn Sie eines der folgenden Abonnementattribute direkt in einem Abonnement ändern, wird mit dieser Aktion möglicherweise automatisch eine neue Abonnementplanphase erstellt:
discounts
tax_
rates items
trial_
,end trial_
,settings trial_
start application_
fee_ percent add_
invoice_ items automatic_
tax
Angenommen, Sie haben ein Abonnement mit zwei Posten. Dem Abonnement ist ein Abonnementplan mit einer einzigen Phase beigefügt, der den aktuellen Status des Abonnements widerspiegelt. Wenn Sie die API verwenden, um einen der Posten zu löschen, wird die Phase des angehängten Abonnementplans automatisch in zwei Phasen unterteilt:
- Die Phase, die gerade zu Ende ging und zwei Abonnementposten hatte
- Die neue Phase, die nur einen Posten im Abonnement enthält
Wenn die Phasen des Abonnementplans automatisch aufgeteilt werden, werden die folgenden Eigenschaften von der aktuellen Phase in die neue Phase kopiert:
proration_
behavior billing_
cycle_ anchor cancel_
at_ period_ end description
metadata
pause_
collection
Darüber hinaus kann Stripe die folgenden Top-Level-Abonnementattribute in den Abonnementplan oder seine default_
kopieren:
Abonnementattribut | In neue Abonnementplanphase kopiert | In default_ des Abonnementplans kopiert |
---|---|---|
coupon | X | |
trial_ | X | |
tax_ | X | |
application_ | X | X |
discounts | X | |
collection_ | X | X |
invoice_ | X | X |
default_ | X | X |
default_ | X | X |
transfer_ | X | X |
on_ | X | X |
billing_ | X | X |
currency | X | |
add_ | X | |
automatic_ | X | X |
items. | X |
Aktualisierungen der metadata
von Abonnements werden nicht an einen angehängten Abo-Zeitplan weitergegeben.