#taras - cross border payout
1 messages ยท Page 1 of 1 (latest)
Hello! Just starting a thread for you -- I'll review and respond as soon as I can ๐
Ok, yes, this is a stated restriction:
The currency of the balance transaction associated with the charge must match the currency of the transfer
https://stripe.com/docs/connect/charges-transfers#transfer-availability
So you need to either create the transfer in USD using an amount to approximate your desired EUR amount after FX, or fund you account with sufficient available balance to be able to make the transfer without the source transaction
@hollow agate basically, what I'm looking for is to be able to send a cross border payouts from my platform account into connected accounts in different currencies. So for example, some of the connected accounts might be in EUR, some in PLN etc. What exactly do I need in order to achieve that? I thought that Stripe would automatically convert funds from my balance (in USD) to that specific currency when I submit the transfer, however that does not seem to be the case.
Can you share an example transfer? It should convert after sending, IIRC
@hollow agate
POST /v1/transfers
Request body:
{
"destination": "acct_1KyvljRk6SAyLTn4",
"description": "Balance payouts for 2022-05-13",
"metadata": {
"version": "3",
"business_id": "9649d111-43ff-4f52-ae35-d40bf5f8000f",
"environment": "local"
},
"currency": "eur",
"amount": "1000"
}
Response:
{
"error": {
"code": "balance_insufficient",
"doc_url": "https://stripe.com/docs/error-codes/balance-insufficient",
"message": "Insufficient funds in Stripe account. In test mode, you can add funds to your available balance (bypassing your pending balance) by creating a charge with 4000 0000 0000 0077 as the card number. You can use the /v1/balance endpoint to view your Stripe balance (for more details, see stripe.com/docs/api#balance).",
"type": "invalid_request_error"
}
}
and here's a response from balances API:
object(Stripe\Balance)#3319 (6) {
["object"]=>
string(7) "balance"
["available"]=>
array(1) {
[0]=>
object(Stripe\StripeObject)#3302 (3) {
["amount"]=>
int(23891740)
["currency"]=>
string(3) "usd"
["source_types"]=>
object(Stripe\StripeObject)#3307 (1) {
["card"]=>
int(23891740)
}
}
}
["connect_reserved"]=>
array(1) {
[0]=>
object(Stripe\StripeObject)#3308 (2) {
["amount"]=>
int(0)
["currency"]=>
string(3) "usd"
}
}
["issuing"]=>
object(Stripe\StripeObject)#3326 (1) {
["available"]=>
array(1) {
[0]=>
object(Stripe\StripeObject)#3337 (2) {
["amount"]=>
int(0)
["currency"]=>
string(3) "usd"
}
}
}
["livemode"]=>
bool(false)
["pending"]=>
array(1) {
[0]=>
object(Stripe\StripeObject)#3333 (3) {
["amount"]=>
int(-2900027)
["currency"]=>
string(3) "usd"
["source_types"]=>
object(Stripe\StripeObject)#3345 (1) {
["card"]=>
int(-2900027)
}
}
}
}
OK so we're no talking about sending from your balance, not using source transaction, correct?
yes
Oh, might have been mistaken and this always needs to be in your source currency, one sec
(ie, you dont have a euro balance, only usd)
can I maintain multiple balances in a different currencies in my platform account?
I've tried topping up my platform balance in EUR, however it just got converted into USD right away
generally no, though accounts in some other countries can set up accounts in other currencies:
https://stripe.com/docs/connect/bank-debit-card-payouts#supported-settlement
@hollow agate or if not, is there a way to force Stripe to use my USD balance for that transfer?
Yes, create the transfer in USD and it will be converted to the settlement currency of the connected account
@hollow agate thanks, that worked, however, since FX rate is constantly changing how do I ensure that customer receives exactly 10 EUR in the end?
Hi ๐ I'm stepping in for @hollow agate. Unfortunately I don't think that is something we can guarantee (due to those fluctuating FX rates).
@fiery moth is there a way to pull an actual FX rate for USD/EUR from Stripe before making the transfer?
it would've been easier, if Stripe could handle that on it's own, for example:
POST /v1/transfers
Request body:
{
"destination": "acct_1KyvljRk6SAyLTn4",
"description": "Balance payouts for 2022-05-13",
"metadata": {
"version": "3",
"business_id": "9649d111-43ff-4f52-ae35-d40bf5f8000f",
"environment": "local"
},
"currency": "eur",
"amount": "1000"
}
will send 10 EUR to customer, and debit my platform's balance in USD (since I don't have an EUR balance)
that way I can be sure that my connected account receives exactly what I'm sending to him
That will work fine if your settlement bank account is in EUR. In the current scenario your CA will receive the the $10.00 equivalent.
@fiery moth so basically if my settlement bank account is in USD, there's no way to ensure that my CA receives 10 EUR?
๐ stepping in here. Give me a moment to catch up
That's correct. This is a rough edge currently that we are working on.
We have no FX API at the moment
So you can't know exactly.
is there a way to maintain few balances in a different currencies for my platform account? e.g. 1 balance for USD, and 1 balance for EUR?
No you can only hold balance in your settlement currency.
What funds flow are you using?
Are you setting OBO?
oh, understood
any ETA on this feature?
No eta at the moment, sorry.