RyzeDeskRyzeDesk

Stripe

4105 articles

Consolidates billing mode configuration across Billing products


  • Breaking changes
  • Public preview

Consolidates billing mode configuration across Billing products Breaking changes Public preview

What’s new

We’ve unified the billing_mode parameter and field format across all billing endpoints. The billing_mode parameter now uses a consistent object format with a type field, replacing the previous string format. We’ve also consolidated the billing_mode_details field into the main billing_mode object.

Why is this a breaking change?

The billing_mode parameter and field changed from accepting a string value ( classic or flexible) to requiring an object with a type field (for example, {type: 'flexible'}). Additionally, the separate billing_mode_details field has been removed, and its updated_at property is now included directly in the billing_mode object.

Impact

You need to update your integration if you currently use the billing_mode parameter or access the billing_mode field in API responses.

Before:

{
 "billing_mode": "flexible",
 "billing_mode_details": {
 "updated_at": 1234567890
 }
}

After:

{
 "billing_mode": {
 "type": "flexible",
 "updated_at": 1234567890
 }
}

This change affects the following API endpoints and resources:

  • Create subscriptions
  • Create subscription schedules
  • Checkout Sessions
  • Quotes
  • Create a preview invoice

Changes

ParameterChangeResources or endpoints
billing_mode_detailsRemovedSubscription
FieldsChangeFrom → to
Checkout. Session#create. subscription_data. billing_mode Invoice#create_preview. schedule_details. billing_mode Invoice#create_preview. subscription_details. billing_mode Quote#create. subscription_data. billing_mode Quote. subscription_data. billing_mode Subscription#create. billing_mode SubscriptionSchedule#create. billing_modeChangedenum('classic'|'flexible') → billing_mode
Quote. subscription_data. billing_mode QuotePreviewSubscriptionSchedule. billing_mode Subscription. billing_mode SubscriptionSchedule. billing_modeChangedoptional → required
QuotePreviewSubscriptionSchedule. billing_mode Subscription. billing_mode SubscriptionSchedule. billing_modeChangedenum('classic'|'flexible') → SubscriptionsResourceBillingMode
Subscription#migrate. billing_modeChangedliteral('flexible') → billing_mode_migrate

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-06-30. preview
  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 .

Learn more about Stripe API upgrades.

Last verified 2026-09-27

Is this helpful?