Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Adds helpers to cancel subscriptions for billing periods with mixed intervals


Adds helpers to cancel subscriptions for billing periods with mixed intervals

What’s new

We introduced the following cancel_at enum values to simplify canceling a mixed interval subscription at the end of a billing period:

  • min _ period _ end : Schedules cancelation of the subscription at the earliest items. data. current _ period _ end across all subscription items.
  • max _ period _ end : Schedules cancelation of the subscription at the latest items. data. current _ period _ end across all subscription items.

In requests that change both the current_period_end of a Subscription item and set one of these new values, the updated current_period_end is taken as the respective cancellation date. Unlike cancel_at_period_end, these values resolve to timestamps immediately and further changes to items.data.current_period_end don’t affect them.

Note

For mixed interval subscriptions the existing cancel_at_period_end feature always resolves to the earliest item period end.

Impact

The following API endpoints support the new enums:

  • Create a subscription
  • Update a subscription
  • Create an invoice preview

If your flexible billing mode integration currently uses cancel_at_period_end to cancel subscriptions, update your integration to either:

  • Use the new min _ period _ end or max _ period _ end enum values to specify which interval triggers cancelation.
  • Populate cancel_at with an explicit integer timestamp.

The cancel_at_period_end parameter on a Subscription isn’t compatible with the new cancel_at helpers.

If you update the current_period_end value for items in a subscription, you can add cancel_at: min_period_end or cancel_at: max_period_end in the same request to reset the subscription’s existing cancel_at timestamp.

Note

This change won’t be available in the.NET SDK until version 49.0.0 and the Java SDK until version 30.0.0. Until those versions are available, follow the instructions to send undocumented parameters to pass the new enum values to the cancel_at parameter.

Changes

FieldsChangeFrom → to
Invoice#create_preview. subscription_details. cancel_at Subscription#create. cancel_at Subscription#update. cancel_atChangedDateTime → DateTime | enum('max_period_end'|'min_period_end')

Upgrade

  1. View your current API version in Workbench.
  2. If you use an SDK, upgrade to the corresponding SDK version for this API version.
  • If you don’t use an SDK, update your API requests to include Stripe-Version: 2025-07-30. basil
  1. Upgrade the API version used for webhook endpoints .
  2. Test your integration against the new version.
  3. If you use Connect, test your Connect integration .
  4. In Workbench, perform the upgrade . You can roll back the version for 72 hours.

Learn more about Stripe API upgrades.

Last verified 2026-09-24

Is this helpful?