#nocapviny_best-practices

1 messages · Page 1 of 1 (latest)

vernal urchinBOT
#

👋 Welcome to your new thread!

⏲️ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.

⏱️ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.

🔗 This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1351265610746560695

📝 Have more to share? Add more details, code, screenshots, videos, etc. below.

neon perch
#

Hello
My team on discord won't be familiar with the legal aspect of this but depending on how many connected accounts will receive the funds from a single payment, you can decide between destination charges OR separate charges and transfers flows -

https://docs.stripe.com/connect/destination-charges
https://docs.stripe.com/connect/separate-charges-and-transfers

In order to move funds from the connected accounts to the platform account - you can use Account debits https://docs.stripe.com/connect/account-debits

ruby lion
#

IS there any fees that we would pay twice (or multiple time) by doing this?

neon perch
#

My team on discord won't know anything about fees as such. I would suggest you reach out to our support about that
https://support.stripe.com/?contact=true

ruby lion
#

alright
So since the candidate can be paid before we receive the money from the client, and that every candidate can be paid a different amount, using the seperate charges (and not the destination charge ) would be better?

neon perch
#

Yeah you could create transfers before you receive funds using Transfers API (it will utilize your platform balance to pay the connected account)

ruby lion
#

However, neither the client or the client have acces to a dashboard at all

neon perch
#

Not sure what you mean by that

ruby lion
#

1- Clients always pay their assigned division directly, keeping legal separation intact.
2- The platform always pays candidates from its own balance (no division involvement needed).
3-The platform pulls reimbursements from divisions in a structured, periodic way.

#

Is that the only way we should operate?

neon perch
#

Can we talk in Stripe terms? What's a client? Is this a Connected account or a Customer? What's an assigned division? Is this a Connected account?

#

What's a candidate?

ruby lion
#

Client (Customer in Stripe terms) → A business that hires workers through our platform. Clients are assigned to a specific division based on their location or industry.

Division (Connected Account - Express in Stripe terms) → Each division is a legally distinct business operating under the same brand. Each client is linked to a specific division’s connected account, and client payments go directly into that division’s Stripe balance.
Division are our companies, operating under our staffing name

Candidate (Recipient of Payouts in Stripe terms) → Workers (independent contractors) who provide services to clients. Candidates must invoice the division they worked for, but payments are issued from our platform’s main Stripe balance (treasury) due to Stripe’s restriction on direct payments between connected accounts.

Our Platform (Platform Stripe Account) → The central entity managing all payments. Since divisions cannot pay candidates directly, our platform handles payouts and later collects reimbursements from the divisions using Account Debits.

neon perch
#

Gotcha. So I believe the flow you want is Direct Charges - https://docs.stripe.com/connect/direct-charges for pay-ins (Platform facilitating the payment on the connected account where funds move from Customer -> Division / Connected Account)

Candidate (Recipient of Payouts) will also need to have their own Connected Accounts as you can't payout without that.

Your platform should be able to move funds from Division/Connected Account using Account debits

ruby lion
#

MMh .. i dont think thats the way to go... maybe i have a hard time explaning our situation

#

We have multiple divisions (separate legal entities, each with its own Stripe connected account).
Each client is assigned to a specific division, so when an invoice is issued to a client, it comes from their assigned division.
Candidates (workers) provide services to clients, not to divisions.
When a candidate completes a job, they must invoice us (the platform) for their hours worked.
However, the payment to the candidate must come from the same division that invoiced the client.

#

Our Question:
How should we structure this flow in Stripe Connect to ensure:
1️⃣ Candidate payments are issued properly while being attributed to the correct division?
2️⃣ Divisions remain financially independent, covering only the payments linked to their assigned clients?
3️⃣ There is a proper mechanism to align client payments, candidate payouts, and financial tracking between divisions and our platform?

What would be the best way to set this up within Stripe Connect?

neon perch
#

Yeah I think I'm confused because you said

client payments go directly into that division’s Stripe balance.
Express connected accounts don't have their own API keys or anything. The platform here controls everything and has to facilitate the payments.

#

IIUC your set up looks something like this

#

You don't want your platform to facilitate payments between Division & clients. You want Divisions to operate their own payments where they charge the "clients"

"Candidates" help these "Clients" and your platform will pay out to these "candidates"

#

Your platform wants to debit divisions for the services "Candidates" provide

#

is what I outlined above accurate?

ruby lion
#

yes

#

exaclty

#

then whats the solution

vernal urchinBOT
neon perch
#

I don't believe your usecase is 100% compatible with Stripe Connect. There are some limitations where you'd be blocked.

Mainly moving funds between Connected Accounts and the platform. Account debit has some requirements around location of the platform & the connected account - https://docs.stripe.com/connect/account-debits#requirements

ruby lion
#

We are all in the same region.. Montreal, QC, Canada

#

We are not in another country

#

Every part/user will be from Canada, in our region

rocky osprey
#

👋 stepping in as hanzo needs to step away.

#

If that's the case then you could use Account Debits to move funds from your Connected Accounts to your platform.

#

So sounds like it could help with what you are looking to do.

ruby lion
#

so if i would need to explain it.. it would be like that ?

Stripe Payment Flow Explanation

📌 Structure:

The platform (main Stripe account) manages all payments.
Each division (separate legal entity) is a connected account under the platform.
Clients pay directly to their assigned division's Stripe connected account.
Candidates invoice the division for their work, NOT the platform.
However, the platform is responsible for paying candidates due to Stripe limitations.
📌 How Payments Work:
1️⃣ Client pays the assigned division’s connected account.
2️⃣ Platform pays candidates from its treasury balance.
3️⃣ At the end of the week/month, the platform debits each division’s Stripe connected account to recover the candidate payouts.

📌 Why This Setup?
✅ Maintains legal separation between divisions.
✅ Ensures candidates are always paid on time.
✅ Keeps financial tracking clean by linking payments to the right division.

👉 Dev Tasks:

Implement candidate payouts from the platform’s treasury.
Use Account Debits to recover payments from divisions.
Ensure tracking links each candidate payment to the correct division.

rocky osprey
#

Yep that looks like it would work to me.

#

Best thing to do is test it out in test mode!

ruby lion
#

But the account debit cost 1,5% of volume i think... that's a thing to consider

rocky osprey
#

Yes that's correct.

ruby lion
#

alright!
I think we will simply use the main account , and keep the multi division setup for later, when it sill be the case

#

Thank you!

vernal urchinBOT