#emilycheyne - express accounts
1 messages · Page 1 of 1 (latest)
sorry, I should also mention the transfer has source_transaction
Are you using source_transaction with separate charges and transfer?
yes, sorry it's just missing
I pull it from essentially paymentIntent.charges.data[0].id
In which case the error does indicate that the currencies need to match, there
You may want to use a destination charge for this instead, which can handle the transfer for you
ah I see, so that will work even if the default currency for the account is USD, but the payment intent is in CAD?
and can there be multiple destinations? we have to do three transfers. the example I see is:
const paymentIntent = await stripe.paymentIntents.create({
payment_method_types: ['card'],
amount: 1000,
currency: 'usd',
transfer_data: {
destination: '{{CONNECTED_STRIPE_ACCOUNT_ID}}',
},
});
for the first quesiton, yes thats handle and currency management in explained here:
but no you cannot specify multiple destinations, to send transfers to multiple accounts you need to use those manual transfers
okay, I see. The situation I was trying to avoid though was the transfers happening before the money is there. Is there a way to avoid this with payment intents?
and if we use the manual transfers will we technically end up paying stripe transaction fees twice; once on the initial payment intent and then again on subsequent transfers?
You would need to track the available balance yourself if you intend to transfer other currencies, you can track this using the available_on date of the balance transaction: https://stripe.com/docs/api/balance_transactions/object#balance_transaction_object-available_on
(which you get to from the payment intent via charges: https://stripe.com/docs/api/charges/object#charge_object-balance_transaction)
From the PI you can use expansion to get this in a retrieve request:
https://stripe.com/docs/api/expanding_objects
example of getting the balance transaction here: https://stripe.com/docs/expand/use-cases#stripe-fee-for-payment