How to update existing subscription to a new product or price?

I have two products (with monthly and annual payment periods). Each product has two prices:

  1. Prod_month
    • Price_month_1 = $1
    • Price_month_2 = $2
  2. Prod_year
    • Price_year_1 = $10
    • Price_year_2 = $15

I use the Stripe Checkout functionality to complete the subscription.
A user can have only 1 active subscription!

The main points of the behavior when updating a subscription:

  • The user must be able to upgrade the current subscription to any Product and Price.
  • When renewing a subscription, the user must be able to enter a promo code.
  • When changing a subscription, I should be able to customize the behavior (prorations, wait or update immediately, …)

I want to use Checkout sessions. But I didn’t find a way to customize it for subscription renewal.
Then I paid attention to the Billing Portal session. But when setting up subscriptions in the Customer Portal, I faced a problem - it allows you to select only one price from the product (I can’t select both Price_month_1 and Price_month_2 at the same time). I can’t select all available prices in a particular product to renew my subscription.

So, what are the other options for renewing subscriptions using Stripe UI (like Checkout)? Am I missing something and doing something wrong?

I think you are doing it wrong. You should have one product with monthly and yearly price, than it would allow the customer to pick it in the portal. The portal UI isn’t able to display multiple prices for the same time period.

I don’t need the user to be able to select a price on the portal. The price is selected in the UI of the project, and the portal is used for confirmation, the ability to change payment information and display the amount of payment (taking into account the proration)