1 Stripe Seller Account - multiple Bubble users?

Before I continue with my Stripe/Bubble api explorations can I ask a simple question?

First the scenario:
A Company (who have a subscription account with my app) want to onboard with Stripe as a Seller and start creating their own Customers and sell their own subscriptions.

A Company employee (a User) has onboarded with Stripe (using my api) and created a Seller Account for their Company. However it is not the Company that gets a Seller ID embedded by Bubble but that User.

All works fine as long as that User creates all Customers using their embedded Seller ID.

Q: If that employee (user) leaves the company how does the Company transfer the Seller ID to a new person?

I can only see changing the email address and Users details as a way to keep the Seller ID intact for that Company.

Ideally the Company should have the Seller ID not the User. So all Users of that Company (with the right permissions) can create Customers.

Also I have Users that could be employees of multiple Companies and yet want to administrate their Company’s Stripe Customers.

Am I missing something?

All insight much appreciated.

Hi, I have a similar thing set up with one of my apps, so I have the Customer ID of the main seller account which is in my case an “agency” attached to the “agency” data instead of individual users data so that when any connect accounts are set up by anyone within that “agencies” team they are all under the one agency identified by the “customer id” if that makes sense.

That’s exactly what I need. How did you prevent Stripe applying the Seller Account only to the Current User at the time? I can’t create an ‘agency’ as a User.

For my Agencies I have an agency manager/owner, which is generally the user which initially sets up the agency seller account with stripe and they would be responsible for the stripe account and that seller account id is attached to the agency. In the API call for onboarding connect account the “account” is dynamic and set to the agencies account id. Ive never had an issue so far “touch wood”

To clarify with my data I have “agency” with a list of team members (users) and anytime one of those users sends an onboarding link to a new connect account customer in the workflow when selecting the account i “do a search for agencies, team members contains current user, first items account id”

Are you using a Stripe plugin?
If you integrate your own API + Webhooks then you’ll have full control over what happens on your app.
Saving an Agency’s seller ID on the user dataType is a bad idea.

I have never used the Stripe plugins, so i’m not sure of the fine details. You could look into creating a trigger datatype that triggers when User now stripe seller ID is not empty and user before stripe seller id is empty and set the user’s parent agency’s stripe seller ID to the user’s stripe Id and then wiping the user’s stripe id field.

I started using the Stripe plugin but am now looking at using the API connector instead. I don’t to save the ‘agency’ ID to a User. I save the Seller ID to the ‘agency’ so that anyone in the Agency can create customers with the API referencing the ‘agency’ Seller ID not a Seller ID that Bubble has created for the logged in User.

Hope that makes sense.

Great call looking into a custom Stripe Integration. Definitely the best way forward.

If the Stripe ID is not being saved on the User, but on an ‘Agency’ dataType then you shouldn’t have any problems handling whatever you’d like to do.

I’m not fully understanding your question.

[quote=“markeaston, post:1, topic:312543”]
Ideally the Company should have the Seller ID not the User. So all Users of that Company (with the right permissions) can create Customers.

The company’s stripe connect acccount will be tied to a single email, probably the admin email of the company.
If the company will have multiple user accounts, I would recommend managing this on your bubble app. The other option is using the Stripe multi-account functionality however this is more annoying to handle.
Let the company admin invite users into their company. This is usually done with a ‘Company/Agency’ field on the user type, or an ‘Employee/Company Member’ datatype if you want to store more information. You will also need a ‘Role’ field that will allow you to define the permissions of the user in the company.
If you want to let that user create customers for that agency, they do not need their own stripe account. You can call any of the Stripe Connect APIs and add the Company’s account ID in the header to make the call on behalf of the company’s account.
Without their own stripe acount, they will not be able to access their company’s stripe dashboard, however in most cases this is not needed.

Many thanks for a great reply. That sounds correct for me. I can use the stored Company ID and a stored single email address that is relevant to the Stripe Account so that Company employees (with the correct roles) can create their own customers with a subscription.

My hierarchy is a little more complex than some.

I am an app and Companies sign up with a subscription and they in turn sign up customers with subscriptions.

I have a franchise business model, each franchisee is connected to a franchisor. So it could be 10 franchisees to 1 franchisor.

Is it possible that customers are on the franchisor stripe account but the franchisees can call payment methods from that main account to process recurring payments, but the entire charge/funds goes directly to franchisees connected stripe account?

Including fees charged to the franchise account.

If any franchisees leave i wouldnt want to be asking customers to sign back up to stripe as we use automatic charging. If the customer was setup on the franchisee accounts, if they left then this would be a problem.

Ive been able to do this but only to a point, it always sends the funds to the franchisor account, which isnt what i want.

Any suggestions?

Hi, is this how your app works?

You get paid by many Franchisors
Each Franchisor gets paid by many Franchisees
Each Franchisee gets paid by many customers

Or are you the Franchisor?


Hi mark. The platform/account is the franchisor. There is only franchisor in this current setup.

I managed to find a kind of way to do it, by charging the application fee as the amount of the stripe fee. But this isnt a perfect scenario. As i cant find a way to get the exact stripe fee amount. Im only able to use a calculation of the amount to find what the stripe fee is and this isnt exact. Sometimes the fee is more than i charge and sometimes its less.

Theres got to be a better way, im sure of it

Sorry for the delay, I had some ‘non-bubble’ stuff to sort.

So… this is how I think it works for you:

  1. You are the Franchisor and have a Stripe Account.
    Your Franchisees should probably be ‘Connected Accounts’ of your Stripe Account. (you will be able to see them all in your Stripe dashboard).

  2. They will need to have their own Stripe Accounts: use the Stripe plugin (by Bubble) to let them create their accounts (or use their existing account they already have with Stripe). This is done via an onboarding process which they will complete themselves. (use the ‘Register User as a Seller’ in the workflow).

  3. Then the Franchisees create ‘Customers’ in their Stripe accounts (and you allow the Franchisees to create these via the Stripe plugin using ‘Charge Current User’ as a one-off or ‘Subscribe the User to a Plan’ if it’s recurring. (Subscriptions PLans need creating by the Franshisee first of course in their Stripe Account).

The fee that Stripe charge should only be taken from Franchisees paying you (you get the full amount less Stripe fee). And the Franchisee gets the full amount (less thr Stripe fee) from Customers. There isn’t a way for the Franchisee to receive the full amount without a fee unless they get their Customers to pay by Direct Debit without any payment gateway (the old fashioned way!).

Any gateway (Go Cardless, WorldPay, Stripe, Paypal) charges a fee so if you use it or Franchisees use it there’s no way out of the fee.

It’s not quite as easy as I makes it seem but this is the general flow I use. My aim is always to make it as easy as possible for a client (Franchisee in your case) to onboard with Stripe.

Hope this helps, do let me know how you get on.