Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
Overview
Versioning
Changelog
    Overview
    Basil
    Acacia
    Previous versions
Upgrade your API version
Upgrade your SDK version
Essentials
SDKs
API
Testing
Stripe CLI
Sample projects
Tools
Workbench
Developers Dashboard
Stripe Shell
Stripe for Visual Studio Code
Features
Workflows
Event destinations
Stripe health alertsFile uploads
AI solutions
Agent toolkit
Model Context Protocol
Security and privacy
Security
Privacy
Extend Stripe
Build Stripe apps
Use apps from Stripe
Partners
Partner ecosystem
Partner certification
HomeDeveloper resourcesChangelogBasil2025-07-30.basil

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.

Changes

FieldsChangeFrom → to
Invoice#create_preview.subscription_details.cancel_atSubscription#create.cancel_atSubscription#update.cancel_atChanged
DateTime → 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
  3. Upgrade the API version used for webhook endpoints.
  4. Test your integration against the new version.
  5. If you use Connect, test your Connect integration.
  6. In Workbench, perform the upgrade. You can roll back the version for 72 hours.

Learn more about Stripe API upgrades.

Related changes

  • Adds a duration parameter for schedule phases
  • Adds support for quantity adjustment to the Customer Portal Configuration API
  • Adds support for billing thresholds on flexible billing mode Subscriptions
  • Adds support for mixed intervals on the same subscription
Was this page helpful?
YesNo
  • Need help? Contact Support.
  • Join our early access program.
  • Check out our changelog.
  • Questions? Contact Sales.
  • LLM? Read llms.txt.
  • Powered by Markdoc