#Leonardogranetto99-connect
1 messages ยท Page 1 of 1 (latest)
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
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?
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
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
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
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
Maybe I have to convert it before creating the transfer?
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.
if you have questions here about structuring your business on Stripe it's better to ask https://support.stripe.com/?contact=true as this Discord is mainly for technical/coding questions
because you make less money overall
i.e converting EUR->CHF->EUR leaves you with less EUR cents overall
This project is a contract from a client. I'll talk to him about that. But looks like this is the only way right?
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
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?
they can add a EUR bank account if their business has one
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.
And stripe automatically detects the eur bank account? Or do I have to pass something like a bank account object or id?
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