#hiroshi nishio

1 messages · Page 1 of 1 (latest)

bleak matrixBOT
zinc nacelle
#

Can you explain your Stripe setup here? Does each user have their own Customer object and Subscription here? Or just the admins?

honest epoch
#

yeah

#

I want to do one billing per workspace, so I believe the correct state is one workspace, one customer + one subscription + one payment method. That is still the implementation.

However, all users in a given workspace can open the customer portal other than admins.

zinc nacelle
#

Hey apologies for the delay here, the server is pretty busy. In that case I can think of two ways for you to achieve this:

  1. Do an integration like this where you create the portal sessions yourself and only do it for users that you know are admins https://stripe.com/docs/customer-management/integrate-customer-portal
  2. Make a separate product and price that you use to create subscriptions for your non-admins and don't allow changing of that price in the customer portal
#

That being said, I assume that your non admin customers have their own way of cancelling their own subscriptions outside of the portal right?

honest epoch
#

That being said, I assume that your non admin customers have their own way of cancelling their own subscriptions outside of the portal right?

No, I want only admins to have the right to cancel.
Although, sure, non-admin users can cancel by uninstalling the Slack app.

#

The tricky thing is that I cannot know who the admins are in the workspace. The person who registered the payment method is in effect the Admin...is it possible to determine that and branch out to open or not open the customer portal?

zinc nacelle
#

Stripe won't have a concept of who you have saved as an admin. You may have to implement something so that you have an idea of who in the workspace registered the payment method

honest epoch
#

Yes, I didn't get that idea and wanted to ask for your wisdom!

zinc nacelle
#

Gotcha, unfortunately I don't think I have much advice here. I can really only advise on coding to our API so tracking things like this is outside of my knowledge and support