Prorated mid-cycle charge that keeps the existing renewal date
We sell a base subscription with add-ons (extra user and vehicle packs) that customers can add part-way through a billing period. On annual plans we need to charge for an addition right away and keep the customer's renewal date.
Today every change-plan mode that charges now (prorated_immediately, difference_immediately, full_immediately) restarts the billing cycle from the moment of the change. do_not_bill keeps the renewal date but charges nothing until renewal. So a customer who adds a 5-user pack in month 4 of an annual plan either:
- has their renewal date moved by four months and pays for a full new year on the spot, or
- gets the pack free until renewal.
Neither is what the customer expects. Most subscription billing systems handle this the same way: charge only for the time left in the period, and leave the renewal date alone.
Request: a proration mode for change-plan (for example prorated_immediately_keep_cycle) that:
- charges the prorated difference for the rest of the current period straight away,
- keeps
next_billing_dateunchanged, and - puts that charge on the subscription's invoice and payment history.
The same option in the plan-change preview endpoint would let us show customers the exact amount before they confirm.
Support suggested a workaround: use do_not_bill, then take a separate one-click checkout payment on the saved card. With that, we would have to calculate the proration ourselves, and the charge would show up as a separate payment, not on the subscription invoice. It also creates a failure case where the plan change succeeds but the payment doesn't (or the other way round). A native mode would remove all of that.
This would make mid-cycle add-on sales workable on annual plans for any merchant selling seats or usage packs.
0 Comments
Sign in to comment
No comments yet. Be the first to share your thoughts!
