I’m currently in test mode on Stripe, which affects my testing in some ways, and I’m trying to figure out what happens in this example:
- User signs up for $10/year Basic Level.
- User manages their account and chooses to change their plan to $20/year Premium Level.
What is the specific behavior for their account and their charges? Are they charged the difference, the full price, or a prorated price? Is extra time added to their subscription or does it start from scratch with another year added on from this day? Note, I’m in Stripe test mode and it doesn’t seem to record the subscription so I can’t really test without actual charges.
I’m thinking of maybe trying to disable the “Change” button and replace it with an email address to request changes if people could mess things up pretty badly and have unintentional charges.
1 Like
In my experience, Stripe in test mode actually DOES show you what’s going to happen. It’s intended to be entirely like real mode, except without real money. What shows is Ghost isn’t totally informative, but Stripe will show you exactly what’s going on, and there’s a link from the admin panel view of the member that will take you right htere.
I have a site hooked up in test mode, so I took a user with a $25/month subscription and had them (well, it was me) upgrade to the $30/month plan. They had about a week left before the next payment, so they were charged a pro-rated fee of $1.20 immediately, then would be charged $30 when their subscription renewed normally next week.
If a user switches from a monthly to yearly plan, they are immediately charged the yearly fee, minus prorated amount of the month that was left.
1 Like
OK, this helps, but it is a bit wonky. The ghost interface allows back and forth changes just selecting another tier. Has a confirmation after changing but no email sent it seems, but maybe I don’t have things set up fully? It is a bit sparse. The admin interface lists the prices as the monthly prices despite not offering monthly prices, which I can probably deal with. Logging in directly to Stripe shows zero transactions, but the magic link from the ghost user management screen does show all of the adjustments up and down.
The problem that I did find is that if someone pays for say a $20 account and then switches to a $10 account, it prorates, no refund is issued, BUT Stripe keeps a credit that can be applied to renewals. I’m going to have to zero out credits manually or maybe by API because this would allow someone to sign up for a more expensive level, get perks, and then downgrade to keep the credit for the next renewal. I’m a seasonal type of subscription so we must do annual plans only and the price difference can be notable by downgrading. The credit should be zeroed out.
I’m going to mark this solved. Thanks so much!
There are a bunch of subscription settings in the Stripe dashboard. You may be able to adjust the default behavior there.
I did check with them and they have a setting to turn prorating on and off, but we only wish to turn off the negative prorating. So no dice there. We’ve modified our plans based on these limitations. It would be better to have the price increase over time, but the lack of a way to easily update the subscriptions in Stripe when such events are triggered by a price change, and Stripe giving people credit when they downgrade an account level are too much for us to battle with, so we’re going with the flow.