Subscription upsells
Enable customers to upgrade their subscription plan at checkout by using upsells.
You can only configure subscription upsells in the Stripe Dashboard. The API doesn’t support creating or managing upsell configurations. Upsells are available for full hosted page and embedded page integrations, but not the embedded form.
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
To configure an upsell, select a Product and an associated price on the Price details page in the Dashboard. Under Upsells, select an upsell price from the dropdown menu. Upsells immediately apply to eligible Checkout Sessions that use that price.
Configure a subscription upsell on the Price details page.
Checkout flow
During checkout, customers see an option to select the upsell with savings displayed, if applicable. 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
Stripe calculates savings based on the amount the user saves 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. Checkout displays the savings 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.
Coupon behavior
If you pass a coupon to the discounts array of the Checkout Session, that coupon is also applied to the upsell price if a customer selects the upsell. For example, if a monthly subscription upsells to a yearly subscription, and you pass in a 50% off coupon with a duration of four months, the discount applies to all invoices in the four month period starting when the coupon is first applied. If the customer selects the upsell, the 50% discount applies to the entire yearly subscription because the yearly invoice is created during the coupon’s 4 month period.
Remove a subscription upsell
You can remove a subscription upsell on the Price details page. After you remove a subscription upsell, that upsell won’t be available to any new Checkout Sessions.
Remove an upsell.
