We run a SaaS platform for video training (https://uqualio.com). The user creates a free trial with 14 days free period and then the card is charged.
When a user makes changes to the subscription we change the line items in the subscription. Remove the existing line item and add a new one. The effect must work from now so we set proration.
This works well.
When we change the subscription later, then proration is not set and the customer is not charged with the new subscription for the reminder of the current subscription period.
This is MAJOR risk of loosing MRR in the month where a subcription is upgraded.
Requirement
The subscription's proration setting is stored with the subscription. When I open an existing subscription with proration then this is set no matter what I do on edit subscription.
Having worked with other SaaS subscription system like Stripe, Paddle, ... proration was set on the subscription and not reset on each edit.
How to test
Create a new subscription that is charged now
Add a line item
Set proration on
Save the subscription
Verify that the payment is made
Edit the subscription
Remove the line item
Add a new line item with higher value
Save the subscription
Verify that the payment is the difference between the new subscription amount less the original subscription amount (potentially with a small difference if time has passed between step 4 and 9).