#Dutchy

1 messages · Page 1 of 1 (latest)

grim marlinBOT
cosmic jungle
#

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

silk eagle
#

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.

cosmic jungle
#

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.

silk eagle
#

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.

cosmic jungle
#

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.

silk eagle
#

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?

cosmic jungle
cosmic jungle
#

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

silk eagle
#

Am I correct?

cosmic jungle
#

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

silk eagle
#

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?

cosmic jungle
cosmic jungle
silk eagle
#

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?

cosmic jungle
silk eagle
#

Not looking at an API field, specifically.

cosmic jungle
# silk eagle It would be nice if we could split it up into some kind of savings account. :p I...

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
silk eagle
#

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?

cosmic jungle
silk eagle
#

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?

cosmic jungle
#

reverse_transfer exists on the refund API

silk eagle
#

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:"

cosmic jungle
#

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