# Abonnements mit gemischten Intervallen Verwalten Sie Abonnements für Posten mit unterschiedlichen Intervallen. Sie können mehrere [Abonnement](https://docs.stripe.com/Abrechnung/Abonnements/%C3%9Cbersicht.md) Artikel mit unterschiedlichen Preisen und Rechnungsstellungszeiträumen in ein einziges Abonnement aufnehmen, und Stripe übernimmt automatisch die Erstellung von Rechnungen. Beispielsweise können Sie, wenn Sie einen Service mit einem jährlichen [Pauschalpreis](https://docs.stripe.com/products-prices/pricing-models.md#flat-rate) und einer monatlichen [nutzungsbasierten Gebühr](https://docs.stripe.com/billing/subscriptions/usage-based.md) anbieten, beide Preise als Positionen im selben Abo einfügen. Stripe erstellt eine einzelne, kombinierte Rechnung, wenn sich die Rechnungsstellungszeiträume der Positionen decken und separate Rechnungen, wenn sich die Rechnungsstellungszeiträume unterscheiden. > Abos mit gemischten Intervallen müssen den [flexiblen Abrechnungsmodus](https://docs.stripe.com/billing/subscriptions/billing-mode.md) verwenden. Sie müssen Ihre API-Version auf `2025-06-30.basil` oder höher aktualisieren, um den flexiblen Abrechnungsmodus im Dashboard und in der API nutzen zu können. # Dashboard > This is a Dashboard for when dashboard-or-api is dashboard. View the full page at https://docs.stripe.com/billing/subscriptions/mixed-interval?dashboard-or-api=dashboard. ## Erstellen Sie ein Abonnement mit gemischten Intervallen. 1. Go to the [Subscriptions page](https://dashboard.stripe.com/subscriptions?status=active) in the Dashboard. 1. Wählen Sie **+Abonnement erstellen**. 1. Fügen Sie Produkte hinzu, die in unterschiedlichen Intervallen abgerechnet werden, z. B. monatliche und jährliche Rechnungsstellungszeiträume. Erfahren Sie, wie Sie [Produkte und Preise](https://docs.stripe.com/products-prices/manage-prices.md) verwalten. 1. Konfigurieren Sie Ihre **Abonnementeinstellungen**. 1. Scrollen Sie nach unten zum Abschnitt **Erweiterte Einstellungen**, stellen Sie den **Abrechnungsmodus** auf **Flexibel**. 1. Schließen Sie das Abonnement ab. ## Fügen Sie Posten für gemischte Intervalle zu einem bestehenden Abonnement hinzu 1. Go to the [Subscriptions page](https://dashboard.stripe.com/subscriptions?status=active) in the Dashboard. 1. Suchen Sie das Abonnement und klicken Sie auf **+Abonnement aktualisieren**. 1. Scrollen Sie nach unten zum Abschnitt **Erweiterte Einstellungen**, stellen Sie den **Abrechnungsmodus** auf **Flexibel**. 1. Klicken Sie auf **+Abonnement aktualisieren**. 1. Suchen Sie das Abonnement und klicken Sie erneut auf **+Abonnement aktualisieren**. 1. Fügen Sie Posten mit unterschiedlichen Intervallen hinzu. 1. Schließen Sie das Abonnement ab. # API > This is a API for when dashboard-or-api is api. View the full page at https://docs.stripe.com/billing/subscriptions/mixed-interval?dashboard-or-api=api. ## Erstellen Sie ein Abonnement mit gemischten Intervallen. Rufen Sie den Endpoint [Abonnement erstellen](https://docs.stripe.com/api/subscriptions/create.md) auf. Das folgende Codebeispiel erstellt ein neues Abonnement, für das ab dem 1. Januar 2024 eine Zahlung von 100 USD pro Quartal und 15 USD pro Monat berechnet wird: ```curl curl https://api.stripe.com/v1/subscriptions \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "items[0][price_data][currency]=usd" \ -d "items[0][price_data][product]={{PRODUCT_ID}}" \ -d "items[0][price_data][recurring][interval]=month" \ -d "items[0][price_data][recurring][interval_count]=1" \ -d "items[0][price_data][unit_amount]=1500" \ -d "items[0][quantity]=1" \ -d "items[1][price_data][currency]=usd" \ -d "items[1][price_data][product]={{PRODUCT_ID}}" \ -d "items[1][price_data][recurring][interval]=month" \ -d "items[1][price_data][recurring][interval_count]=3" \ -d "items[1][price_data][unit_amount]=10000" \ -d "items[1][quantity]=1" \ -d collection_method=send_invoice \ -d days_until_due=5 \ -d proration_behavior=none \ -d "billing_mode[type]=flexible" \ -d "expand[0]=latest_invoice" ``` Das Abonnement wird mit beiden Posten zurückgegeben und auf der ersten Rechnung (`latest_invoice`) abgerechnet: ```json { "object": "subscription", "id": "{{SUBSCRIPTION_ID}}", "current_period_start": 1704067200, // Jan 1 2024 "current_period_end": 1706745600, // Feb 1 2024 "items": { "data": [ { "id": "si_A", "price": "price_id_monthly", "current_period_start": 1704067200, // Jan 1 2024 "current_period_end": 1706745600 // Feb 1 2024 }, { "id": "si_B", "price": "price_id_quarterly", "current_period_start": 1704067200, // Jan 1 2024 "current_period_end": 1711929600 // Apr 1 2024 } ], // ... }, "latest_invoice": { "object": "invoice", "id": "in_A", "created": 1704067200, // Jan 1 2024 "period_start": 1704067200, // Jan 1 2024 "period_end": 1704067200, // Jan 1 2024 "lines": { "data": [ { "description": "1 × Monthly Price (at $15.00 / month)", "period": { "start": 1704067200, // Jan 1 2024 "end": 1706745600 // Feb 1 2024 }, // ... }, { "description": "1 × Quarterly Price (at $100.00 every 3 months)", "period": { "start": 1704067200, // Jan 1 2024 "end": 1711929600 // Apr 1 2024 }, // ... } ] }, // ... }, // ... } ``` Am 1. Februar und 1. März wird das Abonnement verlängert und eine neue Rechnung nur für den monatlichen Posten erstellt. Am 1. April wird bei der Verlängerung des Abonnements eine Rechnung sowohl für den monatlichen als auch für den vierteljährlichen Posten erstellt. ## Abonnementplan mit gemischten Intervallen erstellen Sie können auch Abonnementpläne verwenden, um Abonnements mit Posten mit unterschiedlichen Preisen und Rechnungsstellungszeiträumen zu erstellen. > Wir empfehlen, in den [Abonnementplan](https://docs.stripe.com/api/subscription_schedules/create.md)-Endpoints `duration` zu verwenden. Sie können zeitbasierte Dauerangaben für die Zeiträume des Abonnementplans definieren (z. B. „3 Monate“), anstatt die Anzahl der Phasenwiederholungen zu verwenden. Dies ermöglicht eine klarere Modellierung von Abos mit gemischten Rechnungsstellungszeiträumen. [Phasenwiederholungen](https://docs.stripe.com/api/subscription_schedules/create.md#create_subscription_schedule-phases-iterations) ist veraltet. Mit dem folgenden Code-Beispiel erstellen Sie einen Abonnementplan mit denselben Parametern wie im Beispiel für das Abonnement: ```curl curl https://api.stripe.com/v1/subscription_schedules \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d start_date=now \ -d "phases[0][items][0][price_data][currency]=usd" \ -d "phases[0][items][0][price_data][product]={{PRODUCT_ID}}" \ -d "phases[0][items][0][price_data][recurring][interval]=month" \ -d "phases[0][items][0][price_data][recurring][interval_count]=1" \ -d "phases[0][items][0][price_data][unit_amount]=1500" \ -d "phases[0][items][0][quantity]=1" \ -d "phases[0][items][1][price_data][currency]=usd" \ -d "phases[0][items][1][price_data][product]={{PRODUCT_ID}}" \ -d "phases[0][items][1][price_data][recurring][interval]=month" \ -d "phases[0][items][1][price_data][recurring][interval_count]=3" \ -d "phases[0][items][1][price_data][unit_amount]=10000" \ -d "phases[0][items][1][quantity]=1" \ -d "phases[0][end_date]=1735718400" \ -d "billing_mode[type]=flexible" \ -d "expand[0]=subscription.latest_invoice" ``` Das Abonnement wird mit beiden Posten zurückgegeben und auf der ersten Rechnung (`latest_invoice`) abgerechnet: ```json { "object": "subscription_schedule", "id": "{{SUBSCRIPTION_SCHEDULE_ID}}", "billing_mode": "flexible", "phases": { "data": [ { "start_date": 1704096000, // Jan 1 2024 "end_date": 1735718400, // Jan 1 2025 "items": [ { "price": "price_id_monthly", // ... }, { "price": "price_id_quarterly", // ... } ] } ] }, "subscription": { "items": { "data": [ { "id": "si_A", "price": "price_id_monthly", "current_period_start": 1704067200, // Jan 1 2024 "current_period_end": 1706745600, // Feb 1 2024 // ... }, { "id": "si_B", "price": "price_id_quarterly", "current_period_start": 1704067200, // Jan 1 2024 "current_period_end": 1711929600, // Apr 1 2024 // ... } ], // ... }, "latest_invoice": { "object": "invoice", "id": "in_A", "created": 1704067200, // Jan 1 2024 "period_start": 1704067200, // Jan 1 2024 "period_end": 1704067200, // Jan 1 2024 "lines": { "data": [ { "description": "1 × Monthly Price (at $15.00 / month)", "period": { "start": 1704067200, // Jan 1 2024 "end": 1706745600 // Feb 1 2024 }, // ... }, { "description": "1 × Quarterly Price (at $100.00 every 3 months)", "period": { "start": 1704067200, // Jan 1 2024 "end": 1711929600 // Apr 1 2024 }, // ... } ] }, // ... }, // ... } } ``` ## Ein Abonnement auf ein Abonnement mit gemischtes Intervallen aktualisieren 1. Aktualisieren Sie Ihr Abonnement auf den flexiblen Abrechnungsmodus. 1. Rufen Sie [Endpoint umstellen](https://docs.stripe.com/api/subscriptions/migrate.md) auf und setzen Sie `billing_mode` auf `flexible` für das bestehende Abonnement. 1. Rufen Sie [auf, um das Abonnement](https://docs.stripe.com/api/subscriptions/update.md) zu aktualisieren und Posten mit unterschiedlichen Preisen und Intervallen hinzuzufügen. ## Ein Abonnement kündigen Wenn Sie ein Abonnement oder einen Zeitplan mit gemischten Intervallen kündigen, werden alle Posten des Abonnements storniert, unabhängig von ihrem Intervall. Subscriptions have a single behavior for [dunning](https://docs.stripe.com/billing/revenue-recovery/smart-retries.md). If all retries for a payment fail, even if the failing payment is for an invoice related to only one of the items on the subscription, Stripe cancels the entire subscription and marks it as unpaid or past due, depending on your configured dunning settings. Erfahren Sie mehr über [das Kündigen oder Auflösen von Abonnements](https://docs.stripe.com/no-code/subscriptions.md#create-subscriptions). ## Abrechnungszeiträume für Abonnements mit gemischten Intervallen Jeder Posten des Abonnements hat seinen eigenen [current_period_start](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items-data-current_period_start) und [current_period_end](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-items-data-current_period_end). Die [Abonnementposten](https://docs.stripe.com/api/subscription_items/object.md) verfolgen ihre jeweiligen Rechnungsstellungszeiträume direkt und nicht als gemeinsamen Rechnungsstellungszeitraum auf oberster Ebene der Ressource [Abonnement](https://docs.stripe.com/api/subscriptions/object.md). Beispiel: Ein am 1. Januar erstelltes Abonnement mit einem monatlichen, zweimonatlichen und vierteljährlichen Posten hat die folgenden Zeiträume: | | current_period_start | current_period_end | | ------------------------ | -------------------- | ------------------ | | Monatlicher Posten | 1. Januar | Februar | | Zweimonatlicher Posten | 1. Januar | 1. März | | Vierteljährlicher Posten | 1. Januar | 1. April | | Subscription | 1. Januar | Februar | Nach der Verlängerung am 1. Februar (`subscription.current_period_end` wird der aktuelle Zeitraum des Abonnements so angepasst, dass er mit dem spätesten `current_period_start` und frühesten `current_period_end` aller Elemente übereinstimmt: | | current_period_start | current_period_end | | ------------------------ | -------------------- | ------------------ | | Monatlicher Posten | Februar | 1. März | | Zweimonatlicher Posten | 1. Januar | 1. März | | Vierteljährlicher Posten | 1. Januar | 1. April | | Subscription | Februar | 1. März | Nach einem dritten Zyklus: | | current_period_start | current_period_end | | ------------------------ | -------------------- | ------------------ | | Monatlicher Posten | 1. März | 1. April | | Zweimonatlicher Posten | 1. März | Mai | | Vierteljährlicher Posten | 1. Januar | 1. April | | Subscription | 1. März | 1. April | ### Kostenloser Testzeitraum Die Daten der Abrechnungszeiträume auf Postenebene sind, ähnlich wie bei regulären Abonnements, von den Enddaten der kostenlosen Testversion betroffen. Wenn das [trial_end](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-trial_end)-Datum eines Abonnements in der Zukunft hat, werden alle `current_period_end`-Daten (Abonnement und Posten) auf das `trial_end`-Datum festgelegt. ### Nach Ablauf der Testphase unterbrechen und fortsetzen Sie können ein Abonnement mit gemischten Intervallen so konfigurieren, dass es am Ende der Testphase pausiert, wenn die Zahlungsmethode fehlt. Dies geschieht über den Parameter [trial_settings.end_behavior.missing_payment_method](https://docs.stripe.com/api/subscriptions/object.md#subscription_object-trial_settings-end_behavior-missing_payment_method) wie bei regulären Abonnements. Wie bei regulären Abonnements können Sie pausierte Abonnements mit [stripe.subscription.resume](https://docs.stripe.com/api/subscriptions/resume.md) [wieder aufnehmen](https://docs.stripe.com/billing/subscriptions/trials/free-trials.md?how=api#resume-a-paused-subscription). > Bei der Wiederaufnahme eines Abonnements mit gemischten Intervallen mit `billing_cycle_anchor: 'unchanged'` und `proration_behavior: 'none'` wird die anteilmäßige Debit-Verrechnung für den Teilzeitraum zwischen dem Datum der Wiederaufnahme und dem Ende des aktuellen Rechnungsstellungszeitraums für die einzelnen Posten nicht erstellt oder verrechnet. Siehe ein Beispiel unten: Bei einem Abonnement mit unterschiedlichen Intervallen mit einem monatlichen und einem zweimonatlichen Posten mit - `billing_cycle_anchor` = 1. Januar - `trial_end` = 1. Februar - `trial_settings.end_behavior.missing_payment_method` = „Unterbrechen“ In diesem Beispiel wird davon ausgegangen, dass dieses Abonnement am 1. Februar aufgrund einer fehlenden Zahlungsmethode pausiert wurde und am 15. Februar mit `proration_behavior: 'none'` wieder aufgenommen wird: | | billing_cycle_anchor: ‘unchanged’ | billing_cycle_anchor: ‘now’ | | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Monatlicher Posten | Aktueller Zeitraum für den Posten: 1. Februar bis 1. März - Für diesen Zeitraum erfolgt keine Abrechnung, daher wird keine neue Rechnung erstellt - Monatlicher Posten wird das nächste Mal am 1. März für den Zeitraum vom 1. März bis zum 1. April abgerechnet | Aktueller Zeitraum für den Posten: 15. Februar bis 15. März - Generiert eine neue Rechnung und stellt einen monatlichen Posten vom 15. Februar bis 15. März in Rechnung | | Zweimonatlicher Posten | Aktueller Zeitraum für den Posten: 1. Februar bis 1. April - Für diesen Zeitraum erfolgt keine Abrechnung, daher wird keine neue Rechnung erstellt - Der zweimonatliche Posten wird das nächste Mal am 1. April für den Zeitraum vom 1. April bis zum 1. Juni in Rechnung gestellt. | Aktueller Zeitraum für den Posten: 15. Februar bis 15. April - Generiert eine neue Rechnung und stellt einen monatlichen Posten vom 15. Februar bis 15. April in Rechnung | | Subscription | - billing_cycle_anchor: 1. Februar - Das Abonnement wird sofort aktiv | - Erstellen Sie ein Abonnement mit ausstehender Aktualisierung für billing_cycle_anchor: 15. Februar (gilt, wenn die Wiederaufnahmerechnung bezahlt wird) - Das Abonnement bleibt unterbrochen, bis die Wiederaufnahmerechnung bezahlt wurde | ### Intervallausrichtung Bei Abonnements mit gemischten Intervallen muss das Preisintervall eines jeden Postens (die Kombination aus `price.recurring.interval` und `price.recurring.interval_count`) ein Vielfaches des kürzesten Preisintervalls im Abonnement sein. Einige Preisintervallkombinationen werden bei Abonnements mit gemischten Intervallen nicht unterstützt. - **Beispiele für unterstützte Intervallkombinationen**: Bei der Überprüfung, ob die Intervalle Ihres Abonnements übereinstimmen, betrachtet Stripe die folgenden Intervalle als gleichwertig: - 1 Woche und 7 Tage - 12 Monate und 1 Jahr - 1 Monat, 3 Monate - 1 Monat, 1 Jahr - 1 Tag, 1 Woche - 1 Tag, 3 Monate - 1 Tag, 2 Jahre - 2 Wochen, 4 Wochen - 2 Monate, 4 Monate, 6 Monate - **Beispiele für nicht unterstützte Intervallkombinationen**: Es gibt keine Äquivalenzen zwischen den folgenden [Preisintervalltypen](https://docs.stripe.com/api/prices/object.md#price_object-recurring-interval): - Woche und Monat - Woche und Jahr - Tag und Monat - Tag und Jahr - 2 Monate, 3 Monate - 4 Monate, 6 Monate - 1 Woche, 1 Monat - 2 Tage, 1 Woche - 5 Monate, 1 Jahr ## Beschränkungen Abonnements für gemischte Intervalle unterliegen den folgenden Einschränkungen: - Das veraltete [cancel_at_period_end](https://docs.stripe.com/api/subscriptions/update.md#update_subscription-cancel_at_period_end) kann nicht erkennen, welcher Posten des Abonnements `current_period_end` als Kündigungsdatum verwendet werden soll, daher wird standardmäßig `min_period_end` verwendet. Alternativ dazu: - Verwenden Sie den Parameter `cancel_at`, um ein Abonnement zu einem zukünftigen Datum zu kündigen. - Verwenden Sie die Hilfsfunktionen `min_period_end` oder `max_period_end`, um zu bestimmen, welcher Posten am Ende des Zeitraums die Kündigung des Abonnements auslöst. - Bei Abonnements mit gemischten Intervallen kann die Gesamtzahl der [Iterationen](https://docs.stripe.com/api/subscription_schedules/create.md#create_subscription_schedule-phases-iterations) nicht genau berechnet werden. Verwenden Sie stattdessen `duration` zur Angabe des Abonnementplans. - Sie können keinen Gutschein für gemischte Intervall-Abonnements über das Kundenportal anwenden. - Sie können derzeit keine gemischten Intervall-Abonnements als [Bezahlvorgang](https://docs.stripe.com/api/checkout/sessions/create.md) erstellen.