I'm using Stripe API (PHP SDK) to create a subscription and later update the quantity of it. I'm unhappy with the way "prorations" behave.
How proration currently behaves:
- I create a subscription with quantity of 1 (it costs $10)
- A week later I update quantity to 2 in the middle of month
- I immediatelly invoice customer
- Customer receives invoice for amount less than $10, let's say $7.5 (what's left until the end of current billing cycle) (this is not how I want it)
- When billing cycle re-news, customer is invoiced $20 (this is also not how I want it)
How I want it:
- I create a subscription with quantity of 1 (it costs $10)
- A few days later I update quantity to 2 in the middle of month
- I immediatelly invoice customer
- Customer receives invoice for FULL billing cycle - $10
- When billing cycle re-news, customer is invoiced $10 for the first item and less than $10 for the second, because they have paid something in advance. The total might be something like $17.5
When I invoice for additional quantity, customer must pay for one full billing cycle, not the amount left until the end of current cycle. And then customer pays less next month.
"Update subscription" API has parameter "prorate_behavior", but it doesn't do what I want here: https://stripe.com/docs/api/subscriptions/update#update_subscription-proration_behavior Looks like it only allows to invoice immediately, later, or disable prorations completely.