#taras - cross border payout

1 messages ยท Page 1 of 1 (latest)

hollow agate
#

Hello! Just starting a thread for you -- I'll review and respond as soon as I can ๐Ÿ™‚

#

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

woeful bane
#

@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.

hollow agate
#

Can you share an example transfer? It should convert after sending, IIRC

woeful bane
#

@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)
      }
    }
  }
}
hollow agate
#

OK so we're no talking about sending from your balance, not using source transaction, correct?

woeful bane
#

yes

hollow agate
#

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)

woeful bane
#

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

hollow agate
woeful bane
#

@hollow agate or if not, is there a way to force Stripe to use my USD balance for that transfer?

hollow agate
#

Yes, create the transfer in USD and it will be converted to the settlement currency of the connected account

woeful bane
#

@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?

fiery moth
#

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).

woeful bane
#

@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

fiery moth
#

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.

woeful bane
#

@fiery moth so basically if my settlement bank account is in USD, there's no way to ensure that my CA receives 10 EUR?

delicate rock
#

๐Ÿ‘‹ stepping in here. Give me a moment to catch up

delicate rock
#

We have no FX API at the moment

#

So you can't know exactly.

woeful bane
delicate rock
#

No you can only hold balance in your settlement currency.

#

What funds flow are you using?

#

Are you setting OBO?

woeful bane
#

oh, understood

woeful bane
delicate rock
#

No eta at the moment, sorry.