#arsalan_error
1 messages ยท Page 1 of 1 (latest)
๐ 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/1353796984062087249
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- arsalan_error, 4 hours ago, 6 messages
Hello
Error Message
Error: Insufficient funds
Question
Scenario:
Stripe account is in UAE (AED local currency)
First the customer checkouts via the platform in USD using the payment card "4000000000000077" test card.
Then once the payment is received in our Wallet, the platform operator performs disbursement in USD to the service provider Stripe Connected account (whose account is attached to the platform using Stripe
What have you already attempted?
Transaction ID (Customer Checkout):
pm_1QzIyTAotqhqkVaWh5G7LPPa
Request ID (Customer Checkout):
req_ec999eqVYeVG8I
Transfer Request ID (Admin to Connected Account):
req_iKXGguBBM7d0Tf
The funds from the Checkout Session req_ec999eqVYeVG8I is likely unavailable which is why you're seeing a balance_insufficient error in req_iKXGguBBM7d0Tf [0]
one moment
Already have balance once we receive payment from Customer Checkout
while in test mode, trying to add manually i've noticed this:
I think it could be the Wallet thing:
So, our Wallet is in local currency AED
When the customer checkouts via the platform in USD >> the amount we receive in the Wallet gets converted and stored as AED
On performing disbursement to Service Provider in USD >> it throws an error of Insufficient Funds.
Either it's checking if USD Wallet has any funds - do we've have 2 Wallets AED and USD ?
if it's only one AED Wallet, irrespective of the disbursement currency - it should convert currency according;y and send the amount to the Service Providers Connected Stripe Account
Hello
Taking over here, give me a few minutes to catch up here
Have you tried using the other test card? 4000003720000278
I believe the card you're using only works with usd currency
no, i haven't tried with this test card: 4000003720000278
But here's the thing, we'd like to use USD test card since all our payment checkouts from Customer and disbursement to service providers are all in USD.
Our Stripe Wallet is in AED
I see. What country does your platform account belong to? and what about connected accounts? What country do they belong to?
UAE
UAE - is the Stripe Account for the Platform
Connected Accounts of Service Providers can be anywhere (hence, we are trying to send and receive only in USD)
You'd need to enable multi-currency settlement for funds to settle in USD -
https://docs.stripe.com/payouts/multicurrency-settlement
https://docs.stripe.com/connect/multicurrency-settlement
one moment,let me check- i think i already have this enabled
But why do i need to enable multiple currency for settlement?
Becuase in any case from the code I'm restricting the payment both send and receive to be in USD only.
Since your account is based out of UAE, default settlement currency is AED.
Stripe will automatically convert USD to AED without multicurrency settlement being enabled
see this would not help, as my service provider to whom i need to disbusrse could be anywhere in the world
Ah cross border rules apply here so you'd need to use this flow instead - https://docs.stripe.com/connect/separate-charges-and-transfers?platform=web&ui=stripe-hosted#settlement-merchant
Basically, you need to set the "service provider" connected account ID as settlement merchant using on_behalf_of parameter.
oh wait
looks like this flow isn't supported in the UAE ๐ค
Yeah I understand what fund flow you need but unfortunately, that's not possible with the APIs today.
Your options are either to use
1/ Destination charges + on_behalf_of parameter - This will let you settle in USD but it doesn't let you control the timing of the transfer. However, you could maybe switch the connected account to manual payouts and control when the funds are paid out to them.
2/ Direct charges - This settles funds directly on the connected account (in their settlement currency). However, we only recommend using Direct Charges with Standard accounts (they can control their own payout schedules)
pls share the instructions link to the both options
Sure
1/ This is for the Destination Charge flow - https://docs.stripe.com/connect/destination-charges
Here's how you set on_behalf_of parameter - https://docs.stripe.com/connect/destination-charges?platform=web&ui=stripe-hosted#settlement-merchant
Here's how you'd trigger manual payouts - https://docs.stripe.com/connect/manual-payouts
2/ The Direct charge flow - https://docs.stripe.com/connect/direct-charges
let metry one moment
Option 2 - Direct Charge - will not work my usecase.
Since, Customers (checkouts) using card and don't pay via connected accounts.
Secondly, before the Service Provider disbursement - the platform automatically and manually performs validation and mapping as to which Service Provider will execute the task.
I see. In that case, the only option there would be to use Destination charge + on_behalf_of parameter.
The only other option I can think of (which might not be possible) is that you create an entity in the US and create a platform account in the US. This allows you to settle in USD and send funds to other countries. You may want to check with your legal team about that as my team on discord won't know anything about the legal aspect of this.
here's the snapshot of the Service Proivders manually triggered manually upon checking that th task is completed and by which vendor:
I understand but there are some restrictions on fund flows that Stripe can't bypass. That leaves the options I laid out above
With Destination Charges setup -
WithDestination Charges setup -
The assigning of tasks to Service Providers (Connected Account) is random. There's is no 1:1mapping
๐ stepping in here as hanzo needs to step away.
Let me know if there are any outstanding questions here that I can help with... seems that hanzo already laid out the limitations here in terms of your platform location.
WithDestination Charges setup -
The assigning of tasks to Service Providers (Connected Account) is random. There's is no 1:1mapping
I'm not sure I understand.
Are you trying to say that you won't know which Connected Account to specify as the destination when you create the Charge?
exactly
Well that's really your only option here. What you could do is you could collect the PaymentMethod using a SetupIntent and then charge it later when you do know the destination account.
But if you are trying to use cross border from the UAE then you can't settle in your platform account.
So you have to use Destination Charges + on_behalf_of here or Direct Charges