#Leonardogranetto99-connect

1 messages ยท Page 1 of 1 (latest)

surreal parrot
zinc yoke
#

and then I iterate*

#

You probably new ๐Ÿ™‚ to sum it up:

The amount I charge at the checkout session needs to be transfered to single connected accounts (because the customer can add products from different sellers to the cart).
The main stripe account of the owner of the platform has CHF as its bank currency. So it has to be converted to CHF and it looks like it rounds up the charged amount in EUR to correctly convert it to CHF.
So in the end I transfer a little bit too much from the charge because of this little correction. Thats how I get this error

surreal parrot
#

Hi! Thanks for the additional infromation!

#

However I cannot seem to load your older conversation. So could you give a little more context? For example what is the error you are getting? Do you have a request ID to share?

zinc yoke
#

Thats the error ๐Ÿ™‚

#

I can give you the chargeID

#

ch_3KZLUIDyrbwoPoLE0RVwaDrH

#
const transfers = await Promise.all(
      transferDetails.map(async ({ amount, connectedID }) => {
        return this.stripe.transfers.create({
          amount: amount,           // <- This currency here is EUR
          currency: mainUser.default_currency,  // <- This currency is CHF (from switzerland)
          source_transaction: chargeID,
          destination: connectedID,
        });
      }),
    );
#

This was the first conversation

quick nova
#

thanks, will have a look...

#

make sense I think. I'm not clear what advice you'd like

#

amount: amount, // <- This currency here is EUR
I'm unclear what you mean by that. It can't be in EUR

#

your platform is in CH and you don't have a EUR bank account, so all payments you make will be converted to CHF

#

so in this case, you charge the end-customer in EUR. That is converted to CHF and added to your Stripe account's balance. You can only transfer in CHF

zinc yoke
#

The items I add to the product list in checkout have EUR as their currency

#

But in general, don't you guys have something to handle multiple connected account payments?

#

For example if you have a cart and you add products from multiple sellers

#

to in the End give every seller the right cut out of the charge

quick nova
#

not really, we have Destination charges for one platform to one connected account. For multi-seller baskets you have to do it the way you are describing, we call it Separate Charges and Transfers

#

there's no other builtin solution for it

#

it is quite complicated unfortunately because of issues like this with managing/tracking your balances

#

but yeah the amount you pass on the transfer can't be calculated based on the amount you charged, since it's denominated in a different currency

zinc yoke
#

Maybe I have to convert it before creating the transfer?

quick nova
#

what I would do is inspect the balance_transaction from the Charge you created, that shows you how much CHF you netted on the payment and that's the total amount you have to play with. Note that when you do this, there is double conversion(customer pays in EUR, it's converted to CHF for you, and then when you transfer in CHF, to a DE connected account it's converted again to EUR for them). The only way to avoid that would be to use on_behalf_of on the original payment but it doesn't really work for having multiple connected accounts.

zinc yoke
#

OK thank you. But is double conversion an issue?

#

Or what consequences could follow?

quick nova
#

i.e converting EUR->CHF->EUR leaves you with less EUR cents overall

zinc yoke
#

This project is a contract from a client. I'll talk to him about that. But looks like this is the only way right?

quick nova
#

if you need to do one payment and transfer to multiple connected accounts then our Separate Charges & Transfers integration is the only option yes

#

by the way the 'easiest' option here would be to add a EUR bank account to your platform

#

that way the incoming EUR to your platform doesn't get converted to CHF

zinc yoke
#

hm yeah. But our client is based in switzerland. Wouldn't that be a problem?

#

And the platform will be international. So this problem would probably occur between other currencies as well right?

quick nova
quick nova
# zinc yoke And the platform will be international. So this problem would probably occur bet...

it would yes, if you charge end customers in currencies that the platform can not settle into, you can get conversion issues. It's generally better to try to align your presentment and settlement currencies, which is why for example a CH Stripe account can add multiple bank accounts per the link above. If you had a EUR bank account it would work like this:

charge the customer โ‚ฌ2,626
your platform gets to keep a EUR balance because it has a EUR bank account
now you can transfer in โ‚ฌ 2500 to the DE connected account, instead of CHF
arrives on the connected account in EURO

so there would not be any conversion involved at all.

zinc yoke
#

And stripe automatically detects the eur bank account? Or do I have to pass something like a bank account object or id?

quick nova
#

it's automatic, if you have a EUR bank account then payments in EUR don't get converted and would get paid out to that bank account