#Dutchy
1 messages · Page 1 of 1 (latest)
hi! generally you'd do something like set the connected account to manual payouts so any balance they accumulate can't be paid out to the bank account until you call the API to explicitly do it for them, based on your business logic
https://stripe.com/docs/connect/manual-payouts
Thank you so much for responding so quickly.
We don't want the creator to see the pay-out already in their platform/Stripe account.
hmm. Then it becomes more complicated.
you could set your platform to manual payouts so you just accumulate funds over time, and then make manual transfers into the connected account when you need to.
https://stripe.com/docs/connect/charges-transfers i.e. the Separate Charges and Transfers integration
Okay, this is clear.
Now, we have one more thing.
Our brands/end-customers that hire influencers to do jobs, they can top up their balance.
Inside our platform.
So say, Customer A tops up $50. And then a second time 150$. Now Customer has $200,- in their account and this is stored in our platform Stripe main balance.
Customer now hires a dogfluencer for $120 on the platform.
How do we handle this?
We don't want Customer credit that is meant for dogfluencer jobs mixed with our own money/actual earnings.
generally, all in your own business logic. You have to track in your database that the customer has some concept of a balance of $200 based on the two previous successful PaymentIntents or whatever was processed, and then change your business logic that create the third charge to charge less based on that.
so in Stripe, is there a way in which we can visualize this part of our balance?
So we know how much money we owe our Customers?
if you process a payment on your Stripe account it all just goes to the same place really.
maybe if you take my original solution(let the connected accounts accumulate the money) then it wouldn't be mixed.
none of this is modelled at all in Stripe no
you just charged a customer $100 on your platform, that adds $100(minus fees) to your platform's Stripe balance, that's it.
if you then decide to charge that same customer $20 instead of $120, that's your business. We just process the payments for the most part
Yes, this is great, but then we cannot work with Customer balances right? They would have to pay seperately for each and every job.
Am I correct?
not sure, you're losing me a little
I'd suggest trying things out in test mode to get a feel for how the APIs fit together and how balances work
ultimately none of this is in Stripe I think. You tell Stripe "charge customer X $y amount and transfer to connected account A $z amount", that's all Stripe is involved with here; you can change $y to be less based on some concept of the previous times you made those calls to charge the same customer counting as a balance
I understand all the 'customer balance' will end up in our Stripe account.
It will get mixed with - say - our monthly subscription fees that we also charge Customers.
We don't really like that. And to your point, it's not really clear in Stripe what belongs to whom.
And then, once a Customer wants to use their credits (that sits in our Stripe balance), to pay for a job, can we just use the API to send the correct amount to the Connected account? And how do we know, that this payment is for that specific connected account?
yep because it all belongs to your platform account technically. Any mapping/balance/accounting you do is on top of that and not modeled on our side.
hmm how would you not know? I don't understand the question, you are the one calling the API to charge a customer and to transfer funds to connected accounts, you know from your business logic which accounts/customers are involved.
Yes, that is true, but we don't see this in the Stripe account, or could we label certain funds?
It would be nice if we could split it up into some kind of savings account. :p If not, is the best-practice in this case to put our own account also on manual payouts, so Stripe won't send funds of Customers to our own outside bank account?
not sure I follow, what API field are you looking at?
Not looking at an API field, specifically.
I mean you can't, that's not how it works. You have a Stripe account. You process a payment on a customer. That money is added to the balance of your Stripe account. That balance is paid out to your Stripe account's connected bank account.
With Connect you can move some of the balance to a connected account's balance(Destination charges), or you can process a payment on a customer on behalf of a connected account to add to their balance directly(Direct charges). That gets paid out to their connected bank account
if you're charging customers on your platform and want that money to mean some type of balance for them then sure
- your platform should be on manual payouts so you don't pay out out immediately to yourself
- you need accounting to keep track of how much money customers have in your 'balance' concept and a complex integration to reconcile that with the blob of money in your Stripe account balance
Yes, we could also charge the Customer seperately for every job (not working with balances), and then just use Destination charges to add funds to Connected account and get only our fee inside our main Stripe account, after which also the Stripe fee is conducted from our account right?
https://stripe.com/docs/connect/destination-charges#flow-of-funds-app-fee is how fees might look.
Yes
But say, the customer wants a refund, because the job was not done right.
Then a refund must be issued.
And is we send a platform fee into our own account of 20%, then funds that must be returned to the customer is not in our account and in the account of the influencers (Connected account).
How would you suggest we handle this?
I'll read it.
One sec.
When refunding a charge that has a transfer_data[destination], by default the destination account keeps the funds that were transferred to it, leaving the platform account to cover the negative balance from the refund.
So basically, if we charge 100, with a 20% platform fee, the influencer Connected Account will have 80 in it.
The refund = 100 and so the end-balance of the Connected Account will be -20.
Stripe will settle this with our master account, so our own balance will get adjusted with minus 20 and the Connected Account = now 0 again right?
I don't really understand this part: "To pull back the funds from the connected account to cover the refund, set the reverse_transfer parameter to true when creating the refund:"
well no. You're not accounting for the transfer_data you pass to the API.
sorry but it's hard to explain if you are not actually writing some code and testing this yourself.
the screenshot you posted above corresponds to the case where you do
amount: 1000,
currency: 'eur',
application_fee_amount: 123,
transfer_data: {
destination: '{{CONNECTED_STRIPE_ACCOUNT_ID}}',
},
in that model, 1000 is transferred to the connected account and the 123 is transferred back(screenshot).
when you do a refund on your platform, you pay 1000 to the customer(that's what you pay)
reverse_transfer pulls the 1000 back to your platform to help
I highly suggest you just test things in test mode and look at the balances and dashboards of your/the connected accounts, it's the only way you'll understand how this works as it's a complex area