Stripe subscription price change
I have a Basic and a Premium product and both of them have Monthly and Annual pricing structures following the Good-Better-Best methodology.
Let's say due to increasing costs, I want to raise the price of my Basic Monthly plan by $5 for all subscribers. How can I increase the price of the subscription, and begin charging all current and new subscribers that higher price? From what I understand, Stripe pricing is immutable, but this is not an uncommon thing in the subscription industry.
Example, Netflix increased its pricing for everyone earlier this year. '
Do I need to create a new price under that Basic product and somehow migrate all users to that new price?
10 Replies
Hi @Sven. I'm kapa.ai, your friendly support bot. I will try to answer your question by searching through the knowledge base. :wave:
----------------------
The knowledge sources provided do not contain explicit information or a step-by-step guide on how to migrate all current subscribers to a new Stripe price using Wasp. However, your understanding is correct: Stripe prices are immutable, and the typical approach is to create a new price for the product and then migrate existing subscriptions to that new price.
From the discussions, we can see that Wasp/OpenSaaS projects use Stripe's price IDs (e.g.,
- Wasp does not provide built-in support for migrating all users to a new Stripe price. - You must create a new price in Stripe and update your app for new users. - Migrating existing users is a manual process handled via Stripe, not Wasp. If you need more guidance on the Stripe side, please consult Stripe's documentation, as the Wasp sources do not cover this scenario. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
SUBSCRIPTION_PRICE_ID
, PRO_SUBSCRIPTION_PRICE_ID
) in their environment variables and server logic to determine which price to use when creating new subscriptions. However, there is no mention of a built-in Wasp command or automated migration process for updating all existing subscriptions to a new price. The logic for handling subscriptions is based on the price ID set in your environment and referenced in your server code when creating sessions, but it does not cover mass-migrating users to a new price ID if you change your pricing structure later on.
Therefore, to achieve what you described (raising the price for all current and new subscribers), you would need to:
1. Create a new price in Stripe for your Basic Monthly plan.
2. Update your Wasp/OpenSaaS environment and code to use the new price ID for new subscriptions.
3. Manually migrate existing subscribers to the new price using Stripe's dashboard or API. This is a Stripe-specific operation and not something Wasp automates for you.
If you need more detailed steps on how to perform the migration in Stripe, you should refer to Stripe's official documentation or support, as the Wasp knowledge sources do not provide this information.
If you want to ensure your Wasp app uses the new price for new subscriptions, update the relevant environment variable (e.g., BASIC_SUBSCRIPTION_PRICE_ID
) and make sure your server logic references it when creating new checkout sessions.
In summary:- Wasp does not provide built-in support for migrating all users to a new Stripe price. - You must create a new price in Stripe and update your app for new users. - Migrating existing users is a manual process handled via Stripe, not Wasp. If you need more guidance on the Stripe side, please consult Stripe's documentation, as the Wasp sources do not cover this scenario. ---------------------- Note: you can ask me a follow up question by @ mentioning me again :speech_balloon: ----------------------
I use the same user table created by opensaas
Sorry @Sven, I seem to be having a bit of trouble. Don't worry though, I've pinged my support and they will try to fix me up! :technologist:
Perhaps try again in 15mins?
This is a good question @Sven but its Stripe specific. I updated prices for CoverLetterGPT in the past but left the old subscriptions in tact, and just added the new priceId, so older subscribers are locked into their new price. As you mentioned the stripe Prices per Price ID are immutable, so I'm not sure the best solution.
Let me do a quick web search...
@Sven it looks like you'd use Subscription Schedules and move users on the old price over to the new price (with its new priceId) under the same product once their previous subscription period ends: https://docs.stripe.com/billing/subscriptions/subscription-schedules
Subscription schedules
Learn how to use subscription schedules to automate changes to subscriptions over time.
Here's a good stackoverflow answer
and it looks like updating the subscription might be easier: https://docs.stripe.com/api/subscriptions/update
just make sure to set
proration_bahvior: none
and it says it will change to the new price at the end of their current billing cycleThanks alot!
Okay so, i shouldnt worry to much about the price as i can updaye users their priced relative easliy?
I've never done it before but yeah you can use either of those methods and it seems pretty straightforward. I'd try it out on test mode first though.