#emak_connect-crossborder
1 messages ยท Page 1 of 1 (latest)
๐ Welcome to your new thread!
โฒ๏ธ We'll be here soon! Typically we respond in a few minutes, but sometimes we might take a bit longer if the server is busy or if you have a particularly tricky question.
โฑ๏ธ We close idle threads, which makes them read-only. Once a thread is closed it won't be reopened, but you can always start a new thread if you have another question.
๐ This thread will always be available, even after it's closed. You can find it again using Discord's search, or you can save this link: https://discord.com/channels/841573134531821608/1283828863100780598
๐ Have more to share? Add more details, code, screenshots, videos, etc. below.
Hi there
Hey @tranquil pebble ! Can I ask you to be a bit more descriptive in your question? The problem is it could mean a lot of different things
Sure, please do. I'am hoping to find out more too haha
Alright so we have a setup where we want users to get a partial payment for subscriptions. Kinda like a referral. For that, we used Stripe Connect and it has been working great for US based users
Today we got our first user who wants to get paid in the United Kingdom, at first they couldn't select United Kingdom as a option as a country. But since I activated the countries the person was able to continue.
However, when they try they get this error:
I deleted the account and then tried to set the tos_acceptance to recipient which I think is what I saw in the documentation.
Gotcha. Do you understand what recipient means and all the parts that go into deciding to use that approach? This is quite crucial
emak_connect-crossborder
not 100% -- could you provide me details on where I can find out the details that would guide that decision
It's complex so it depends a lot on what you are trying to do.
What flow of funds are you using? Are you collecting all payments yourself and then later sending funds to the relevant connected account(s)? That's what we call Separate Charges and Transfers (https://stripe.com/docs/connect/charges-transfers).
We are collecting funds from subscriptions of our customers and using the destination charges to send a % of that to these refers
We use this - https://docs.stripe.com/connect/destination-charges
Gotcha
Did you see the crucial text
Destination charges are only supported if both your platform and the connected account are in the same country. For cross-region support, you must specify the settlement merchant to the connected account using the on_behalf_of parameter on the Payment Intent or other valid cross-border transfers scenarios.
This would be your fix and solve part of your issues (but I need to explain more)
Ahh I missed that, okay so our implementation would need to change I spose
Adding on_behalf_of in the payment intent would be a fix, but what problems else would I have to think about?
yes though not drastically. It's mostly one parameter to add so that the connected account is the "merchant of record". I recommend reading the section about it carefully as it has some real impact: https://docs.stripe.com/connect/destination-charges?platform=web&ui=stripe-hosted#settlement-merchant
The second requirement is that you need to ask the right capability for the connected account. To be the merchant of record they have to have the card_payments Capability enabled. This comes with higher requirements for information collected from them for example.
I assume you were only using transfers until now in the US?
What type of information collection?
Yeh we were only using the destination charges which I guess under the hood is transfers
yeah the problem is that what you use and what you enabled are different things and it depends how much you understood at the time
A lot of what we do on this server is ask users what they do and realize they often don't really know or remember ๐
Connect is fairly easy to use but there are some fundamental decisions to make upfront that influence all you can do in the future and we don't really make it super clear to most people ๐ฆ
You can play with https://docs.stripe.com/connect/required-verification-information to compare what is needed with and without the card_payments capability
What you likely will want to do is change your integration only for connected accounts outside of the US.
There's also the alternative of the recipient terms of services. This is for a separate product (which works with Stripe Connect) called Cross-border Payouts: https://stripe.com/docs/connect/cross-border-payouts
Sorry do you mean there is an alternative to setting the terms of service as recipient
and that is called https://stripe.com/docs/connect/cross-border-payouts
no, I mean the alternative to what I was saying earlier with on_behalf_of and additional requirements is to use Cross Border Payouts which is the recipient thingy you were trying
Both approaches work, they just depend on your business model, your goals, how your company does verification of identity around the world, etc.
Hmm I tried to set recipient and ran into this error:
irb(main):006> Stripe::Account.update("acct_1PyFxXCkZT5s0ZEU", {tos_acceptance: {service_agreement: 'recipient'}})
/app/vendor/bundle/ruby/3.3.0/gems/stripe-12.3.0/lib/stripe/stripe_client.rb:723:in `handle_error_response': The recipient ToS agreement is not supported for platforms in US creating accounts in US. See https://stripe.com/docs/connect/cross-border-payouts for more details. (Stripe::InvalidRequestError)
correct, the error message is really clear though and so is the page ๐
Ahh I see, what i was doing wrong
Sorry it's because you're in developer mode trying to fix your code as fast as possible and not really in the mode to understand the feature, its limitations and how to apply it to your business needs.
Here that feature works for US platforms and for connected accounts outside of the US
I wasn't sure I was doing US
and yeah if you don't force the country before onboarding it can lead to that confusion
My take is that on_behalf_of is the right approach for you. The cross-border Payout feature is more advanced and requires a lot more scrutiny on your end (since we don't do any verification)
Right so if I'am understanding this better, the cross-border payout is related to the approach of using the recipient and the on_behalf_of is enabling cross-border transfer with fewer changes
yes
And in the case of our user, is it possible to not set the country at all so they can select it themselves? I see in the API that it defaults to "my country"
I've been creating the account for them and then they get a link to go setup
I'd recommend asking their country upfront personally but yes you don't have to set it and you can let them pick I think. Is it not working?
I'll have to verify and try without it with the person.
I think I have my homework to figure out how I can get on_behalf_of to function so we can get this to work. Appreciate the help as always, ya'll are the best!
I mean you can test all of this yourself as the developer owning the code!