#bhanu365
1 messages ยท Page 1 of 1 (latest)
That is the proper setup for that destination charge. What error were you getting with the payout?
Can you send me what the API gives you if you retrieve your balances via the API?
It sounds like you may be providing the wrong source_type
bank_account only applies to ACHv1 payments, if you are using v2, I believe that would also go under the card balance
Gotcha. Can you send me the text of that retrieve call's response?
\Stripe\Balance::retrieve()
Correct, what does that respond with here?
This one
Can you try that again and try to print out the values for each of the fields in the USD entry in that list? I am interested in all of the values there, unfortunately I am having trouble seeing your current state because it looks like that object is broken up in to too many other objects
Interesting, that definitely does make it look like the payout with source_type: card should have worked. Can you try that call again and send me the request ID so I can take a look at the call from our side? https://stripe.com/docs/api/request_ids
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Ah, it looks like those are the balances on your platform account but you are trying to make a payout on the connected account, which does not have $100 in its USD balance
So you will need to transfer the funds from your platform to the connected account https://stripe.com/docs/api/transfers/create
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
No, I can't use the transfer API call because our platform stripe account is in Singapore based so we can't transfer internationally with this account.
HI ๐
Unfortunately that means you will need to check the Balance on the Account before triggering the payout: https://stripe.com/docs/api/balance/balance_retrieve
to ensure there are sufficient funds in the Connect Account
But as you can see in our platform there are balance already
But the connected account are in UK
but we want to payout in USD or SGD only
Right, but payouts are coming from the Connect Account balance
And currently Cross Border payouts are only available for US based platforms: https://stripe.com/docs/connect/cross-border-payouts
yes I know but the stripe support said that we can do with destination charge model if we want to payout globally
Yes but with Destination charges the funds are deposited in the Connect Account as part of the transaction: https://stripe.com/docs/connect/destination-charges#flow-of-funds-app-fee
So the funds would need to be there before you attempt the payout
what do you mean by "Connect Account"? Do you mean a connected account? in our case, there are 2 relations between the coach and the client. coach are connecting stripe accounts with our platform and client can buy a session of a coach. so when the client pays, the payment directly goes to the platform account. so the platform will hold the payment once the session has been done we will check the booking status and other conditions then we want to payout to the coach. so I think coach is the connected account.
Unfortunately I think that is the problem here. Once the platform is holding the funds the only way to get them back to the Connect Account is a Transfer
and we can't transfer globally with Singapore account, right?
No you should be able to. Our docs state that we support Separate Charge & Transfers (which sounds closer to your payment process) for Signapore: https://stripe.com/docs/connect/charges-transfers
I think I have to use this payment call with on_behalf_of
$payment_intent = \Stripe\PaymentIntent::create([
'amount' => 1000,
'currency' => 'sgd',
'on_behalf_of' => '{{CONNECTED_STRIPE_ACCOUNT_ID}}'
]);
right?
and for the transfer this one right?
$transfer = \Stripe\Transfer::create([
"amount" => 1000,
"currency" => "sgd",
"source_transaction" => "{CHARGE_ID}",
"destination" => "{{CONNECTED_STRIPE_ACCOUNT_ID}}",
]);
Does the Connected Account settle in SGD?
The connected account can be of any country
But when you use on behalf of you make that account the merchant of record and so all funds will settle in their settlement currency
then can you recommend what i can use for it
we are already asked to stripe support on discord also many times but didn't get any solution yet
Now we are stuck
How are you collecting funds from your customers?
Currently, destination charge as stripe support said that we can do that with a destination charge before I have created a separate charge.
Okay but with Destination Charges a portion of the funds remains with the Connect Account
You can suggest me what I can use
Do you want the Platform Account to collect the funds and hold them and then transfer funds to the Connected Account?
๐ stepping in and catching up
Okay so you want to hold funds in your platform and transfer to your Connected Accounts at a later date?
But you have a UK platform, correct?
And your Connected Accounts can be anywhere?
No we have SG platform
That's right
correct
Gotcha
So what you are trying to do is overall impossible with just a SG platform account.
To hold funds in your SG platform and then transfer to a Connected Account later on, the Connected Account would have to also be in SG. See: https://stripe.com/docs/connect/charges-transfers
However, there is a possible workaround here.
But we need globally payout
And we have express account
so we can payout globally with express account?
What you would need to do is have a Singapore platform account with Standard Connected Accounts in each region of your users. You would use destination charges + on_behalf_of to transfer funds to those Standard Connected Accounts in each region. Those would then each be platform accounts themselves, where you could then tranfser funds from those platforms to the Express Connected Accounts
No you can't do that with just a SG platform
Sure, to clarify, you can payout globally here
You just have to use Destination Charges + on_behalf_of
You can't hold funds in your platform and later transfer them globally
Hm... understood
Destination Charges + on_behalf_of change the Merchant of Record to your Connected Account since the funds are immediately deposited into the Connected Account and the customer sees the information of the Connected Account (it is as-if they pay the Connected Account directly)
If we want to continue this thread later can we do?