#xlsra-q

1 messages · Page 1 of 1 (latest)

vale hamlet
#

sure, what's the question?

nocturne sand
#

Yeess thanks for answering

#

My comapny has multiple saas service some of are metered some none.
We want to have plan based subscriptions
Trying to figure out best practice for this kind of billing

#

These are the debatable solutions

  • Subscription per Plan (Stripe Product) - means cancelling previous plan subscription and starting new one
  • Provide a Stripe Product as single SaaS service - collect products into single plan for subscription
#

At this moment we use Price objects to determine what SaaS Service the customer has.
Do not know how to upgrade from Plan with different Prices

vale hamlet
#

you can combine multiple products in one subscription, that seems to make most sense for your use case.

nocturne sand
#

Should we use new Subscription for each new Plan? or update SubscriptionItems and delete previous plans?

vale hamlet
#

hard to say! Do you want the customer to have one invoice or multiple ones? That's the main distinction.

nocturne sand
#

1 invoice

vale hamlet
nocturne sand
#

multiple subscriptions for customer doesnt create 1 single invoice?

vale hamlet
nocturne sand
#

In multiple products: what is the best way to swap between 2 different products on subscription.

vale hamlet
nocturne sand
#

The upgrade-downgrade page doesn't inform about if my price types are different for example:
One Time > Recurring
Non metered > Metered (already check and doesn't work)
Price Model 1 > Price Model 2

vale hamlet
#

yeah, you can't make every possible change

#

it's not really documented so I can't link you anywhere specific

#

but basically you'd test it, and the workaround for things like your second example is that you delete the existing item(by passing {id:si_xxx, deleted:true},{price:price_xxx} to delete one item and add a new one in the update call

nocturne sand
#

If my SubscriptionItem is metered and already reported some usages
How can I retain my usage count upon Price change?

vale hamlet
#

as far as I know you can't, it's a limitation of the API

#

the only option is to delete the item and clear all the usage unfortunately

nocturne sand
#

Summary
Solution 1:
My Plan > Stripe Product
SaaS Service > Product Price
Subscription > contains all [My Plan] prices
On plan change:

  • delete previous SubscriptionItems
  • add new Prices as new SubscriptionItems
#

Solution 2:
My Plan > local entity
SaaS Service > Stripe Product
My Plan > Mapped to specific Stripe Prices each of from different Stripe Product
Subscription > contains all Products and their specific prices
on Plan change:

  • Change prices mapped to [My Plan] to [My Second Plan] prices
  • Swap Prices upon same (SaaS Service)
  • Delete Prices that are not in [My Second Plan]
pastel lantern
#

Hey, let me know if there's a specific question I can answer! Either solution seems viable, just depends on what fits your integration best

nocturne sand
#

Awesome thanks for the help!