Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Versioning
Changelog
    Overview
    Basil
    Acacia
    Previous versions
Upgrade your API version
Upgrade your SDK version
Developer tools
SDKs
API
Testing
Workbench
Event Destinations
Workflows
Stripe CLI
Stripe Shell
Developers Dashboard
Agent toolkit
Stripe health alertsBuilding with LLMsStripe for Visual Studio CodeFile uploads
Security
Security
Extend Stripe
Stripe Apps
Stripe Connectors
Partners
Partner ecosystem
Partner certification
HomeDeveloper toolsChangelogBasil2025-03-31.basil

Removes legacy usage-based billingBreaking changes

What’s new

We’ve removed support for legacy usage-based billing. You can no longer create a price with a usage_type of metered without a specified meter. We’ve also removed the billing_thresholds from the subscription endpoints.

We’ve removed billing_thresholds and aggregate_usage from all API endpoints. You can no longer create legacy usage-based prices or attach existing legacy usage-based prices to quotes, upcoming invoices, or subscriptions.

A legacy usage-based price is defined as a price with a usage_type of metered without a specified meter.

Why is this a breaking change?

  • Removed billing_thresholds from Subscription endpoints.
  • Removed aggregate_usage from Price endpoints.
  • Using usage_type of metered without a specified meter now returns an error on Price creation.
  • Removed support for attaching prices of usage_type=metered without a set meter to Subscriptions, Subscription Schedules and Quotes.

Impact

Follow our migration guide to update your integration to use meters.

Changes

ChangeResources
Removed
UsageRecordSummaryUsageRecord
Endpoints ChangeResources
createRemoved
UsageRecord
listRemoved
UsageRecordSummary
usage_record_summariesRemoved
SubscriptionItem
ParametersChangeResources or endpoints
aggregate_usageRemoved
Plan#createPlanPrice#create.recurring
 + 1 more
Price.recurring
billing_thresholdsRemoved
Invoice#create_preview.schedule_details.phases[].items[]Invoice#create_preview.schedule_details.phases[]Invoice#create_preview.subscription_details.items[]
 + 17 more
Subscription#create.items[]Subscription#createSubscription#update.items[]Subscription#updateSubscriptionItem#createSubscriptionItem#updateSubscriptionItemSubscriptionSchedule#create.default_settingsSubscriptionSchedule#create.phases[].items[]SubscriptionSchedule#create.phases[]SubscriptionSchedule#update.default_settingsSubscriptionSchedule#update.phases[].items[]SubscriptionSchedule#update.phases[]SubscriptionSchedule.default_settingsSubscriptionSchedule.phases[].items[]SubscriptionSchedule.phases[]Subscription

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-03-31.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

  • Replaces Upcoming Invoice API methods with the Create Preview Invoice API
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