customer:plan:switch.
Der Ablauf
Optionen abrufen
GET /api/customer/subscriptions/{id}/plan-options liefert die aktuelle Stufe und alle erreichbaren Zielstufen, jeweils mit Richtung (upgrade oder downgrade) und einer Kostenvorschau. Referenz: Tarifoptionen abrufen.Vorschau berechnen
POST /api/customer/subscriptions/{id}/plan-tier-preview berechnet die Kosten für eine konkrete Zielstufe, optional mit Mengenanpassungen. Dieser Aufruf ändert nichts. Referenz: Wechsel-Vorschau.Wechsel ausführen
POST /api/customer/subscriptions/{id}/switch-plan-tier führt den Wechsel aus. Alle Positionen der aktuellen Stufe werden durch die Positionen der Zielstufe ersetzt. Referenz: Tarif wechseln.Erreichbarkeit
Nicht jede Stufe ist von jeder anderen aus erreichbar. Eine Zielstufe ist erreichbar, wenn- sie zum selben Plan gehört wie die aktuelle Stufe,
- sie eine andere Position hat (die Richtung ergibt sich aus dem Vergleich der Positionen), und
- jede Stufe auf dem Weg dorthin in der passenden Richtung verlassen werden darf.
upgradeable sein. Für einen Abstieg gilt dasselbe mit downgradeable. Die Zielstufe selbst wird nicht geprüft, sie wird ja betreten, nicht verlassen.
Mengenanpassungen
Erlaubt eine Position editierbare Mengen, kannst du imitems-Feld der Vorschau und des Wechsels abweichende Mengen senden:
minQuantity und maxQuantity der Position liegen, und die Position muss editierbar sein (quantityEditable: true). Andernfalls antwortet die API mit 422.
Anteilige Berechnung
Ob und wie beim Wechsel anteilig abgerechnet wird, bestimmenchangeTiming und creditType der Zielstufe. Der Kunde hat darauf keinen Einfluss, das Verhalten steckt in der Konfiguration der Stufe.
changeTiming | creditType | Verhalten |
|---|---|---|
immediately | pro_rata | Wechsel sofort. Für die ungenutzte Zeit der bisherigen Positionen gibt es eine Gutschrift, für den angebrochenen Zeitraum der neuen Positionen eine anteilige Berechnung. |
immediately | none | Wechsel sofort, ohne Gutschrift für die ungenutzte Zeit. |
end_of_period | none | Wechsel zum Ende der laufenden Periode. Keine anteilige Berechnung, da kein Zeitraum angebrochen wird. |
full und last_invoiced stehen für Pläne nicht zur Verfügung, und bei end_of_period ist nur none zulässig.
Vorschau lesen
Die Vorschau (SwitchPreview) liefert die Beträge als positive Dezimalzahlen, die Richtung ergibt sich aus dem Feldnamen:
| Feld | Bedeutung |
|---|---|
creditAmount | Gutschrift für die ungenutzte Zeit der bisherigen Positionen. 0.00, wenn die Zielstufe nicht gutschreibt. |
chargeAmount | Berechnung für den angebrochenen Zeitraum der neuen Positionen. |
recurringTotal | Der wiederkehrende Betrag der Zielstufe pro Periode (netto, Steuer, brutto). |
effectiveAt | Datum, für das gerechnet wird. |
warnings | Hinweise auf Nebenwirkungen, zum Beispiel active_discount_will_be_lost. |
Ein aktiver Rabatt auf den bisherigen Positionen wird bei einem Wechsel nicht automatisch übernommen. Die Vorschau weist mit
active_discount_will_be_lost darauf hin. Plane diesen Fall in deiner Oberfläche ein.