#arggh

1 messages · Page 1 of 1 (latest)

hasty surgeBOT
mortal coyote
#
  • be paid in full immediately, meaning you pay for the entire next billing cycle upfront
    that happens by default when directly updating a subscription. (https://stripe.com/docs/billing/subscriptions/upgrade-downgrade#immediate-payment)
  • start the next billing schedule after the current schedule ends, meaning you can use the time already paid for
    for that to happen you will need to use a SubscriptionSchedule to create a phase that starts at the end of the current period and uses the new Price object with its new interval. In that case then you're not directly updating the subscription, so this is not really easily compatible with your previous requirement to charge upfront.
    You could perhaps manually create an Invoice for one year of the new Price and charge that, and only schedule the update after that is paid.

Changes to subscription items have to be possible at any time
yep always is

any added subscription items should be immediately charged for both the remaining current billing cycle and the next cycle, which was earlier paid for upfront
I don't know what that means, can you elaborate on what these items you're adding are?

vernal aurora
#

We have a "basic" product, which is always in the subscription. If you want to get an improved level of service, you add "pro" product to the same subscription.

#

These are billed together part of the same subscription.

vernal aurora
#

(this was some time ago, so I don't recall exactly the issues with schedules)

mortal coyote
#

In your use case you're going to have to implement manual invoicing I would think(there's maybe other ways but this is the most consistent). For example creating an Invoice for the change you want to make, and then after it succeeds, call the Schedule API and schedule the change the customer just paid.

#

it was (or seemed) difficult to handle any changes the customer makes (eg. adding pro product) during the Subscription Schedule.
difficult is relevant, but you would have to edit the Schedule's phases to reflect any changes, and that is very tricky yes

vernal aurora
#

It feels like Stripe is missing a proration setting where changing a subscription just keeps piling the purchased "time" in the future and grabbing the money from customer at the earliest possibility.

#

(aka immediately)

mortal coyote
#

ultimately our Billing products are somewhat opinionated and they don't directly fit with your models.

for your picture I think I would say

  1. that can be done by using a manual invoice, then using a Schedule to change from monthly to yearly at the end of the period. You'd have to use a coupon or trial period to avoid a paid invoice at the time where blue changes to green in that timeline.
  2. same as above but swapping the Price IDs and again needing to avoid a paid invoice
  3. I'm honestly not sure off the top of my head how to do that. If not using Schedules, you'd simply add the Price and pass proration_behavior:"always_invoice" . You can do the same with schedules but I think you'd have to re-declare the phases and add an extra one. Will require a lot of testing.
  4. same as above I think
#

it's hard for me to say more and Discord is not a great medium for this since I will be logging off in 10 minutes so you'd have to re-establish context with my colleague. I'd suggest doing some testing with the API and maybe opening an email support ticket for larger discussions