How to charge upgrade deltas immediately and defer plan changes to period end in a credit system?
Hi all! đź‘‹
I’m building a credit-based service (Audible-style). Plans grant fixed credits immediately (Starter 10, Pro 20, Max 40), so time-based proration on upgrades/downgrades doesn’t fit.
Downgrades/Cancels
I believe this is covered by setting cancellation to PeriodEnd (no mid-cycle refunds) article here.
Question: is there a way to make downgrades behave the same (take effect at period end, no proration/refund)?
Upgrades (mid-cycle)
Desired behavior (credit model):
- Charge the full price delta now (no time proration).
- Starter ($29.99) → Pro ($49.99) = $20.00
- Pro ($49.99) → Max ($79.50) = $29.51
- Starter → Max = $49.51
- Award only the credit delta now (+10, +20, +30 respectively).
- Keep the billing anchor and switch the plan at period end (next cycle has the new plan’s full credits).
If there isn’t a native “no-prorate upgrade” toggle, what’s the recommended Memberstack/Stripe setup to achieve this? For example: disable proration on the subscription change and add a one-time invoice item for the price delta now—so we can award the credit delta immediately.
Alternate I can support if that’s simpler: charge the full new plan now, issue full credits now, and reset the billing anchor to today (but I’d prefer the delta-charge pattern if possible).
Thanks! Any pointers to specific Memberstack settings or a Stripe approach you endorse would be amazing. 🙏
Comments
2 comments
Hey Nathan Roberton,
I believe the option to disable prorations while upgrading via Memberstack is in wishlist currently.
I was exploring the Stripe Settings --> Billing --> Customer Portal --> Subscriptions. There seems to be an option to select the behavior when a customer switches plans as shown in the screenshot below.
I am wondering if setting it to 'Charge or credit the full difference' might work for upgrades use-case provided that it respects your setting of cancel at period end as well.
You can enable the setting and test how upgrades & downgrades are behaving to see if it fits for your project.
Hope this gives you some idea.
Thanks, I'm checking these settings out now.
Please sign in to leave a comment.