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
Billing
OverviewAbout the Billing APIs
Subscriptions
    Overview
    How subscriptions work
    Get started
    Quickstart
    Plan an integration
    Build an integration
    Use cases
    About subscriptions
    Enable billing mode
      Compare classic and flexible billing mode
    Configure subscription events
    Entitlements
    Subscription invoices
    Subscription schedules
    Recurring pricing models
    Strong Customer Authentication (SCA)
    Set up subscriptions
    Configure collection methods
    Embed a pricing table
    Set billing cycles
    Manage subscriptions
    Migrate subscriptions to Stripe
    Set product or subscription quantities
    Mixed interval subscriptions
    Backdate subscriptions
    Set trial periods
    Handle subscriptions with deferred payment
    Apply coupons
    Modify subscriptions
    Manage subscription payment methods
    Analytics
    Manage subscriptions on iOS
Invoicing
Usage-based billing
Quotes
Customer management
Billing with other products
Revenue recovery
Automations
Test your integration
Tax
Overview
Use Stripe tax
Manage compliance
Reporting
Overview
Select a report
Configure reports
Reports API
Reports for multiple accounts
Revenue recognition
Data
Overview
Business and product data use cases
SchemaData freshness
Sigma
Data Pipeline
Import external data
HomeRevenueSubscriptions

Enable increased flexibility for subscriptions

Use flexible billing mode for enhanced functionality and to access additional features.

You can set your preferred billing mode to orchestrate your invoices and subscriptions to meet your business requirements. You can configure each subscription to use one of two billing modes:

  • Flexible: Recommended: This setting provides accurate and predictable billing behavior and unlocks new capabilities. These improvements are only available in flexible billing mode, which is why we recommend creating new subscriptions with flexible billing mode and migrating your existing ones.
  • Classic: This setting reflects Stripe’s existing subscription behavior and is maintained for backward compatibility with older integrations.

You can learn more about the detailed differences between classic and flexible billing mode and how to choose the billing mode that works best for you.

Why flexible billing mode

Flexible billing mode provides more accurate billing for prorations, usage-based pricing, flexible invoicing, and trial settings. It also unlocks new capabilities such as mixed intervals on the same subscription. These improvements are only available in flexible billing mode, which is why we recommend creating new subscriptions with flexible billing mode and migrating your existing ones.

We recommend that new Billing users use flexible billing mode for subscriptions and invoices, although we don’t require it.

For existing users, your default billing mode is preserved as classic to maintain backward compatibility with your current integration. However, we recommend migrating to flexible billing mode to take advantage of the latest billing features and improvements. Learn more about the differences between classic and flexible billing mode.

Get started with flexible billing mode

You can set or update the billing mode through the API or Dashboard when you create new subscriptions or update existing ones. A default billing mode is applied if you don’t specify one.

  • If you create or update a subscription through the API, the default value for billing mode depends on your API integration version.
  • If you create or update subscriptions through the Dashboard (including Payment Links and Pricing Tables), the default value depends on the billing mode default setting you configure in Settings > Billing > Subscriptions and emails.

To use flexible billing mode, your integration must be on Stripe API version 2025-06-30.basil or later. Learn how to upgrade your API version.

Create a new subscription with flexible billing mode

You can create a flexible billing mode subscription or update a classic billing mode subscription to be flexible through the Dashboard, regardless of your integration’s API version. To fully modify these subscriptions in the Stripe API, your integration must be on 2025-06-30.basil or later. To see what version you’re on, go to the Workbench overview and look at the API versions section. From there, click Upgrade to upgrade to a newer version.

Follow the steps below to create a flexible billing mode subscription through the subscription editor:

  1. Go to the Subscriptions page in the Dashboard.
  2. Select +Create Subscription.
  3. Scroll down to the Advanced settings section.
  4. Set Billing mode to Flexible.

The default billing mode value depends on your account settings. You can customize the displayed billing mode options and the default selection in Advanced settings by configuring the billing mode default setting under Settings > Billing > Subscriptions and emails. In the subscription editor, you can choose to display billing mode options from the following:

  • Classic: Both flexible and classic billing modes are displayed, with classic selected by default. This option is recommended if your integration depends on classic billing mode and you cannot migrate to flexible billing yet.
  • Flexible: Both flexible and classic billing modes are displayed, with flexible selected by default. This option is recommended if you are actively migrating to flexible billing mode.
  • Flexible and hide classic: Only flexible billing mode is displayed in the subscription editor. This option is recommended for new Stripe Billing users and for existing users who exclusively use flexible billing mode.

Dashboard billing mode settings

The billing mode default setting also determines the billing mode for subscriptions created through Dashboard-generated Payment Links and Pricing Tables. For example, if you set the billing mode default to flexible and then create a Payment Link in the Dashboard, any subscription generated from that Payment Link uses flexible billing mode.

The billing mode default setting only applies to new subscriptions created in the Dashboard. It doesn’t affect subscriptions created using the API or subscriptions migrated to flexible mode.

Migrate existing subscriptions to flexible billing mode

You can migrate your existing subscriptions to flexible billing mode. The flexible behaviors take effect for all new activity on the subscription after migration. However, Stripe doesn’t recalculate any resources created before migration, including pending proration Invoice Items.

To use flexible billing mode, your integration must be on Stripe API version 2025-06-30.basil or later. To see what version you’re on, go to the Workbench overview and look at the API versions section. From there, click Upgrade to upgrade to a newer version.

  1. On the Subscriptions page in the Dashboard, select the subscription that you’d like to migrate.
  2. Select Actions and then Update subscription.
  3. Scroll down to the Advanced settings section.
  4. Set Billing mode to Flexible and select Update subscription.

Billing mode and subscription schedules

When you create a subscription schedule from an existing subscription, don’t set billing_mode if the subscription already has one. The schedule automatically inherits the billing_mode from the original subscription. If you set billing_mode when using from_subscription, Stripe returns an error. If you need a different billing_mode, create a new 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