I have a plan named "bronze" which is currently charged at $x dollars per month?
How can I update the price to $y per month and leave the existing customers on $y per month?
Is there a better way than creating a new plan that charges $y?
To test it, create a subscription in test mode. Then, log in to the portal as the test user and update the subscription. Check the Dashboard or API to see whether the subscription reflects the customer's change. Read the integration guide to learn how to set up the customer portal.
To update the payment information of an existing customer, you'd need to first collect the new card's information (using Checkout or your own form with Stripe. js), then send a customer update request with the new card's token in the source parameter.
Plans on Stripe are immutable by design, meaning you can't change the price. However, you can delete the plan and re-create it at a new price, with the same name and plan_id
. Internally Stripe will continue to use the old plan for existing customers.
This will likely get really confusing for you, though, so I would recommend creating a new plan with a new ID.
Reference: https://stripe.com/docs/api/plans/update
In the Stripe test mode, I have had many customers subscribing to a specific plan with ID
, I removed it plan, but not customers, then I did create the plan and I noticed the customers were still subscribed to the new plan I just created.
I suggest create your plan no only in your Stripe end but also in your database, but with the same name and ID and also cache them since you hardly changing them at all. This way, if you update the cost in Plans in your database, when you charge users, you can set the charge based on what you have set on your plans
table in database.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With