From Stripe's documentation under updating a user's subscription plan:
By default, we prorate subscription changes. For example, if a customer signs up on May 1 for a $10 plan, she'll be billed $10 immediately. If she then switches to a $20 plan on May 15, on June 1 she'll be billed $25 ($20 for a renewal of her subscription and a $5 prorating adjustment for the previous month).
Shouldn't the charge on June 1st be $30; $20 for the renewal and $10 (half of $20 because half of May) for the previous month? Did Stripe get their calculations confused, or am I dead wrong on how prorating works?
Prorating changesStripe bills subscriptions with conventional fixed-rate prices and per-seat prices in advance: the customer paid for the current recurring interval on the previous invoice. The proration_behavior flag determines whether the customer receives a credit for the unused time from the previous invoice.
Recurring chargesAutomatically invoicing customers and attempting payments when new billing cycles start. When payments fail, Stripe retries them using the Smart Retries feature. This automatically re-attempts payment when cards are declined according to your Dashboard settings.
To do a cancellation via our API, you can use the cancel a subscription API call. The parameter end_of_term can be used to specify if the subscription should be canceled immediately or on next renewal. By default, this is set as "false".
Another way to look at it is:
For the two months the customer should pay
$5 for May 1 to 15 + $10 for May 16 to 31 + $20 for June = $35 total - $10 already paid = $25
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With