Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Support
Overview
Online payments
Products and prices
Invoicing
Subscriptions
Quotes
In-person payments
Multiparty payments
After the payment
Add payment methods
Payment Links
Stripe Checkout
    Overview
    How Checkout works
    Quickstart
    Fulfill your orders
    Migrate payment methods to the Dashboard
    Migrate from legacy Checkout
    Migrate Checkout to use Prices
    Customize your integration
    Customize branding
    Collect taxes
    Collect tax IDs
    Collect phone numbers
    Post-payment invoices
    Make line item quantities adjustable
    Add custom fields
    Let customers decide what to pay
    Boost revenue
    Present local currencies
    Configure subscription upsells
    Configure cross-sells
    Recover abandoned carts
    Collect consent for promotional emails
    Analyze conversion funnel
    Additional features
    Add discounts
    Add shipping
    Start a free trial without collecting payment details
    Manage limited inventory
    Guest customers
Stripe Elements
About the APIs
Regulation support
Implementation guides
Testing
Checkout
·
HomePayments

Subscription upsells

Enable customers to upgrade their subscription plan at checkout by using upsells.

Subscription upsells

Subscription upsells give customers the option to upgrade to a longer-term plan using Checkout. Upselling customers to longer subscription intervals (for example, from monthly to yearly) can increase your average order value and cash flow.

All recurring prices that aren’t metered are eligible to use subscription upsells. For any eligible price, you can set up a subscription upsell to another price that meets the following criteria:

  • Prices must reference the same Product.
  • Prices must have the same currency.
  • Prices must be recurring type.
  • If your prices use tax behavior, their values must be identical.
  • If your price uses tiers, the value for up_to in each tier must be identical.
  • If using quantity transformation, the values for divide_by and round must be identical.

Create a subscription upsell

You can configure a subscription upsell in the Dashboard on the Price detail page. You can view the details for a Price by clicking on one you’ve added to a Product. You’ll see a list of eligible upsell prices in the dropdown menu. After you select an upsell, it immediately applies to eligible Checkout Sessions that use that price.

Configure a subscription upsell on the Price detail page.

For a Checkout Session to be eligible for upsells, it must:

  • Be a subscription mode Checkout Session
  • Have only one type=recurring price in the Checkout Session
  • Have a valid configuration for the upsell price

Checkout experience

In Checkout, buyers see an option to select the upsell with savings displayed (if applicable). Stripe calculates savings based on the amount the user would save in one billing cycle if they chose upsell pricing. For example, a monthly subscription of 100 USD that upsells to an annual subscription of 1000 USD shows savings of 200 USD. Savings are displayed as an amount or a percentage, depending on the character length of the savings.

Users can toggle between the initial price option and the upsell price option and then checkout.

Customer preview.

Retrieve Checkout Session line items

After a customer selects an upsell, the line_items for the Checkout Session update to reflect the upsell price. When fulfilling your order using the checkout.session.completed webhook, make sure to retrieve the line items.

Trial behavior

If a customer selects an upsell for a Checkout Session with a trial available, the trial length won’t change.

Remove a subscription upsell

To remove a subscription upsell, click the x below. After you remove a subscription upsell, that upsell won’t be available to any new Checkout Sessions.

Remove an upsell.

Was this page helpful?
Questions? Contact us.
Watch our developer tutorials.
Check out our product changelog.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Subscription upsells
Create a subscription upsell
Checkout experience
Retrieve Checkout Session line items
Trial behavior
Remove a subscription upsell
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe 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.
$