#its_oppong
1 messages · Page 1 of 1 (latest)
Hello! We'll be with you shortly. Below are links to other discussions we've had with you in the past week in case you want to review that information. If your question is related to one of these previous discussions, please provide a comprehensive summary of the current state and what you need help with now. We help many users simultaneously, so a summary allows us to resolve your issue as soon as possible.
- its_oppong, 1 day ago, 5 messages
hello! by transfer, do you mean you're creating a Transfer? https://docs.stripe.com/api/transfers
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
yea, so I am able to transfer perfectly fine, and everything is good there, I am just wondering about the parameters of this, Lets say my business in in canada merchantCountryCode: 'CA' but the account I am transfering 90% of the money to is an american company merchantCountryCode: 'US', im not sure which one to use
it should be your business's country
you shouldn't be able to create a Transfer to a CA business though
can you share the request id [0] of the Transfer for me to take a look?? it'd look like req_xxx
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
this is how my processing payment looks, const paymentIntent = await stripe.paymentIntents.create({ amount: amount, currency: paymentObj.currency, payment_method_types: ['card', 'klarna'], receipt_email: paymentObj.email, customer: customer.id, application_fee_amount: totalFeeAmount, // Set the total fee amount transfer_data: { destination: stripeAccountId, }, description: paymentObj.description, metadata: { ...paymentObj, }, });
customerId: customer,
customerEphemeralKeySecret: ephemeralKey,
paymentIntentClientSecret: paymentIntent,
merchantDisplayName: 'Lifestyle',
allowsDelayedPaymentMethods: true,
// returnURL: 'stripe-example://stripe-redirect',
style: {
backgroundColor: myColors.primary,
},
applePay: {
merchantCountryCode: 'CA',
},
googlePay: {
merchantCountryCode: 'CA',
currencyCode: 'cad',
testEnv: true, // use test environment
},
});```
the second is the client side
everything works perfectly though
are you using on_behalf_of?
naw, do i need to?
If they are transacting on my platform would i need to?
like a marketplace type application
can you share an example PaymentIntent id?
whichever one that you've done a transaction crossborder e.g. US -> CA
no matter if it's dev or prod
ah naw i havent done that yet,
ah, i had the mistaken impression that you did that and it was working
just so you're aware you can't perform a crossborder destination charge unless you use the on_behalf_of parameter
but that'll change the settlement merchant : https://docs.stripe.com/connect/destination-charges#settlement-merchant
ah interesting i didnt know that, ok so quick scenario, my company is in canada, if someone in the US was to use my platform, where they can select to receive in usd, and customers can pay in usd, once customers pay, with my current code, the payments wouldnt go through?
yep, correct. You should try it out with a US connected account to see what i mean
gotcha,
would it work if it was in cad though? or just because a connected account is in the US it wont work
https://docs.stripe.com/connect/destination-charges - it's mentioned in the caution section
it's a crossborder thing, the currency doesn't matter
example error message you'll get
"Cannot create a destination charge for connected accounts in XX because funds would be settled on the platform and the connected account is outside the platform's region. You may use the `on_behalf_of` parameter to have the charge settle in the connected account's country. For more information on `on_behalf_of`, see https://stripe.com/docs/connect/separate-charges-and-transfers#on-behalf-of. If using capabilities (e.g. `card_payments`, `transfers`), note that they affect settlement as well. For more information on capabilities, see https://stripe.com/docs/connect/account-capabilities. If you still need assistance, please contact us via https://support.stripe.com/contact."```
ah interesting
so would i need to keep using the on_behalf_of, all the time, or only when its a cross border
thanks for helping by the way, I appreciate it a lot!
you could use it all the time, but i think very importantly, you need to be aware that the merchant displayed on the customer's credit card statement will be that of the connected account. The other thing is that you'll receive the application fee in the settlement currency in the connected account's settlement currency so the FX there can get a bit complicated
it's difficult to envison, especially the application fee bit - you should really create a US connected account, create a CAD payment and look at the application fee and how much you get back in your balance, and the corresponding currency you receive it in
the ApplicationFee object : https://docs.stripe.com/api/application_fees/object#application_fee_object-balance_transaction will have a BalanceTransaction object linked to it : https://docs.stripe.com/api/balance_transactions/object#balance_transaction_object-fee_details - you can get the details of the FX, currency, amount etc from it
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
another thing that I've sometimes seen come up, is that because the settlement merchant is in US, but you're charging in CAD, the customer in CA sometimes isn't aware that they're doing a crossborder transaction. Most credit cards charge an additional fee for crossborder transactions. Customers aren't aware of that and they write in to ask why they're charged more
ahhh interesting ok ok good to know,
lool yea you're right i just got the Cannot create a destination charge for connected accounts in US because funds would be settled on the platform and t error
thank God I figured this out before
ok, so you would recommend I have 2 accounts, one for the us and one for canada?
do you have a business in the US? i.e. you have the corresponding US tax id?
it's possible with https://stripe.com/atlas but i'm not sure of the nitty gritty since we mainly help with developers who want to integrate directly with the Stripe API here on this channel
if you do open a US business though, you can use https://stripe.com/docs/connect/cross-border-payouts
you're using either Custom or Express connected accounts right?
naw,, standard
i was using express before, but didnt like the fees, as im just starting out
you really shouldn't be using destination charges on standard accounts
you'll want to use direct charges instead
direct charges would allow you to bypass the crossborder restriction also
you'll run into issues when using destination charges on standard accounts especially when you're trying to refund. To give you an example, imagine a connected account is currently at $0 balance, a customer wants a refund. You try to initiate a refund with reverse_transfer=true [0]. The refund will fail because the connected account has no funds. Now there's two options here, you could still create the refund without reversing the transfer, but how you recover those funds back from the connected account is entirely on you, the platform. Alternatively, if you choose to wait, maybe the customer gets frustrated and chooses to dispute, you as the platform are now out of the original transaction amount + $15 dispute fee
[0] https://docs.stripe.com/api/refunds/create#create_refund-reverse_transfer
Complete reference documentation for the Stripe API. Includes code snippets and examples for our Python, Java, PHP, Node.js, Go, Ruby, and .NET libraries.
Destination charges with standard accounts are not the recommended flow and there're probably other edge cases which i can't recall off the top of my head right now
ahhh woow yea thats definitely important
im trying to find the documentation for that, but I am only directed to charts that explain it
which bit?
direct charges?
ahh thanks
So theoretically what is the difference b/w the two
would direct charge be the best in majority of situations?
The easy to understand simple summary : destination charges - the charge is created on the platform, direct charge - the charge is created on the connected account
which charge type you use depends on who you want to be the settlement merchant and the connected account type you're using
for standard accounts, the only charge type we recommend for it is Direct Charges
ahh that makes sense
our docs has a more business targeted explanation of each charge type : https://docs.stripe.com/connect/charges#types
ok so with this i wont have the cross border issue?
yep you won't, go ahead and try it since you have a US connected account already
ahh looks like im having issues, dosent seem to be the onbehalf anything anymore tho, Ill try this again tomorrow
thanks for your help G
happy to help, feel free to reach out again on the main channel since this thread will be closed
gotchu!