Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
Security
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Overview
How subscriptions work
How to model subscriptions
Get started
Quickstart
Design an integration
Build a subscriptions integration
Integrate the customer portal
Migrate subscriptions to Stripe
Billing resources
Coupons
Customers
Subscriptions
Subscription invoices
Manage subscriptions
Change subscriptions
Upgrade and downgrade subscriptions
Cancel subscriptions
Manage prorations
Pause payment collection
Manage pending updates
Set billing cycles
Customer credit balance
Use trial periods
Set payment methods
Subscriptions with multiple products
Set subscription quantities
Subscription webhooks
Schedule subscriptions
Tax
Integrate with Salesforce
Manage recurring revenue
Revenue recognition
Revenue recovery
Subscription metrics
Testing
Test your integration
Test clocks
Metered billing with Elements
Fixed-price billing with Elements
Per-seat billing with Elements
Migrate to Prices
Strong Customer Authentication (SCA)
Invoices API updates
Improved tax support
Testing
No-code options
Billing
·
HomePaymentsSubscriptions

Change subscriptions

Learn how to change existing subscriptions.

Customer portal

In addition to using the API and Dashboard to change subscriptions, you can also implement the customer portal to provide a Stripe-hosted dashboard where customers can manage their subscriptions and billing details.

Stripe supports changing existing subscriptions without having to cancel and recreate them. Some of the most significant changes you might make are:

  • Changing the billing cycle
  • Upgrading or downgrading the subscription price
  • Canceling or pausing an active subscription

Some changes automatically create a new invoice. Use the pending updates feature with these changes so that the updates are only applied if the new invoice is successfully paid.

You can also alter subscriptions by updating the parameters normally used when creating the subscription. For example:

  • Applying discounts
  • Using trial periods
  • Setting quantities
  • Adding taxes

The most complex aspect of changing existing subscriptions is proration, where the customer is charged a percentage of a subscription’s cost to reflect partial use. By default, the following actions result in a proration:

  • Changing to a price with a different base cost
  • Changing to a price with a different billing interval
  • Adding a trial period to an active subscription
  • Changing the quantity

Proration ensures that customers are billed accurately, but a proration can result in different payment amounts than you expect, which may be confusing. Also keep in mind that prorations are never automatically refunded to a customer nor immediately billed, although you can do both manually. When applying changes to existing subscriptions, discounts don’t affect the resulting proration line items.

Prorations only apply to charges that occur ahead of the billing cycle. Metered billing isn’t subject to proration.

You can preview a proration to view the amount before applying the changes.

Was this page helpful?
Questions? Contact us.
View developer tutorials on YouTube.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
Stripe Shell
Test mode
▗▄ ▄▟█ █▀▀ ▗▟████▙▖ ██████ ███▗▟█ ███ ███▗▟██▙▖ ▗▟█████▙▖ ███▖ ▀▀ ███ ███▀▀▀ ███ ███▀ ███ ███ ███ ▝▜████▙▖ ███ ███ ███ ███ ███ █████████ ▄▄ ▝███ ███ ▄ ███ ███ ███▄ ███ ███ ▄▄ ▝▜████▛▘ ▝▜███▛ ███ ███ ███▝▜██▛▘ ▝▜█████▛▘ ███ ▀▘
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to Stripe docs and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$