#shaymolina_code
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/1264990165508816927
📝 Have more to share? Add more details, code, screenshots, videos, etc. below.
$stripe_connect_args = [];
if (apply_filters('wcfm_is_allow_stripe_express_api', true)) {
// Express account prefill information
$stripe_connect_args['country'] = $country;
$stripe_connect_args['controller'] = [
'fees' => ['payer' => 'application'],
'losses' => ['payments' => 'application'],
//'stripe_dashboard' => ['type' => 'none'],
'stripe_dashboard' => ['type' => 'express'],
'requirement_collection' => 'application',
//'requirement_collection' => 'stripe',
];
$stripe_connect_args['capabilities'] = [
'transfers' => ['requested' => true],
];
$stripe_connect_args['tos_acceptance'] = [
'service_agreement' => 'recipient',
'date' => time(),
'ip' => $_SERVER['REMOTE_ADDR'],
'user_agent' => $_SERVER['HTTP_USER_AGENT'],
];
} else {
HI 👋
you are sharing a lot of unformatted code but what is the problem you are having?
🧑💻 How to format code on Discord
Inline code: wrap in single backticks (`)
This:
The variable `foo` contains the value `bar`.
Will turn into this:
The variable
foocontains the valuebar.
Code blocks: wrap in three backticks (```)
Also, you can specify the language after the first three backticks to get syntax highlighting.
This:
```javascript
function foo() {
return 'bar';
}
```
Will turn into this:
function foo() {
return 'bar';
}```
Notes about **code blocks**:
- Specifying the language is optional (e.g., you can omit `javascript` in the example above)
- If you don't specify the language you won't get syntax highlighting
- When you're inside a code block (after you type \`\`\`) the `Return`/`Enter` key will add a new line instead of sending your message
- Once you end the code block `Return`/`Enter` works normally again
You can [read more about message formatting on Discord's website.](https://support.discord.com/hc/en-us/articles/210298617)
Hey
We use a controller and need to set up an express account
But then you get the following error:
When controlling requirement collection, the Connect application must also control losses, fees, and specify a dashboard type of none.
if (apply_filters('wcfm_is_allow_stripe_express_api', true)) {
// Express account prefill information
$stripe_connect_args['country'] = $country;
$stripe_connect_args['controller'] = [
'fees' => ['payer' => 'application'],
'losses' => ['payments' => 'application'],
//'stripe_dashboard' => ['type' => 'none'],
'stripe_dashboard' => ['type' => 'express'],
'requirement_collection' => 'application',
//'requirement_collection' => 'stripe',
];
$stripe_connect_args['capabilities'] = [
'transfers' => ['requested' => true],
];
$stripe_connect_args['tos_acceptance'] = [
'service_agreement' => 'recipient',
'date' => time(),
'ip' => $_SERVER['REMOTE_ADDR'],
'user_agent' => $_SERVER['HTTP_USER_AGENT'],
];
} else { ```
Yup there are a number of invalid combinations you can hit when using the Controller parameter
OK
And if we need the connected accounts to be express accounts. How do we do this?
We document which properties to set to mimic Express accounts here: https://docs.stripe.com/connect/migrate-to-controller-properties#express
I saw it here.
I did and we still got this error
I think it's the requirements collection that is the issue here
ok
its working now
but the tos is only for testing, once it will work it will be hooked to the form throat the user will confirm and accept - along with his ip, date of confirmation and his user agent
These screenshots are useless to me. Please just share your code instead
But first, you can review some of the unsupported configurations here
https://docs.stripe.com/connect/migrate-to-controller-properties#unsupported-configurations
Yes, I saw it, the excellent one
$stripe_connect_args = [];
if (apply_filters('wcfm_is_allow_stripe_express_api', true)) {
// Express account prefill information
$stripe_connect_args['country'] = $country;
$stripe_connect_args['controller'] = [
'fees' => ['payer' => 'application'],
'losses' => ['payments' => 'application'],
//'stripe_dashboard' => ['type' => 'none'],
'stripe_dashboard' => ['type' => 'express'],
'requirement_collection' => 'application',
//'requirement_collection' => 'stripe',
];
$stripe_connect_args['capabilities'] = [
'transfers' => ['requested' => true],
];
$stripe_connect_args['tos_acceptance'] = [
'service_agreement' => 'recipient',
'date' => time(),
'ip' => $_SERVER['REMOTE_ADDR'],
'user_agent' => $_SERVER['HTTP_USER_AGENT'],
];
} else {
now we have this issue :
Error insight
You cannot accept the Terms of Service on behalf of accounts where controller[requirement_collection]=stripe, which includes Standard and Express accounts.
You still have the invalid parameters though
'requirement_collection' => 'application', + 'stripe_dashboard' => ['type' => 'express'], == not supported
Okay those are outside the Controller parameter. But I think our doc could be more clear on that
So how do I arrange it so that it does work with an express account?
Recipient service agreement is pretty restricted. Have you already reviewed this doc?
https://docs.stripe.com/connect/service-agreement-types
yes
I also tried to look for a thesis but I couldn't find it
The recipient service agreement basically means the Connected Account has no practical relationship to Stripe. So they cannot have any dashboard access and have very limited capabilities.
True, but at the same time I know platforms that use recipient and there is still access to Stripe Express
👋 taking over as Snufkin needs to step away soon
Just catching up on it, give me a second
no worrires
So requirement_collection = application isn't really compatible with controller.stripe_dashboard_type = express or full
yep I have seen it
The question is, how can you open express accounts?
True, but at the same time I know platforms that use recipient and there is still access to Stripe Express
I wonder if they're creating the accounts using types instead of controllers
this one for example
Do you know if they're collecting requirements themselves or is Stripe collecting the requirements instead?
As far as I know, there are no workarounds for this. If you'd like to enable dashboard then requirement_collection has to be stripe
They're being redirected to Stripe hosted UI for onboarding no?
Yep
I'll go ahead and send it to you
That means Stripe is collecting the onboarding requirements?
i.e. requirement_collection = stripe ?
If they allow Israel to connect, that means they are the ones who have to collect, right?
countries cross boarding
not sure what you mean by that
This document says they work with a recipient agreement no ?
That means they sign us to the agreement and not Stripe
I don't think that's what they mean.. It could be that their application tracks their own agreement along with Stripe.
The video you shared shows hosted onboarding where Stripe collects the onboarding information (not the application)
I understand
So we thought we should collect because it is cross bording accounts
Can you help me understand how to arrange this so that we can allow countries like Israel to have an express user?
Hmm I'm still not sure what you're asking about?
Are you asking if a platform can have an express connected account in isreal?
OR are you asking if a platform in isreal can onboard an isreal based merchant using express connected account?
Im asking if a platform can have an express connected account in isreal?
Like I know I do lol because the other site did it.
I'm just trying to figure out how
There are factors that affect account supportability..
What country is your platform account located in?
Yep, you should be able to create express account for isreal on a US platform, have you tried using the values shown in the doc to map the default express account behavior?
https://docs.stripe.com/connect/migrate-to-controller-properties#express
losses.payments: application
fees.payer: application (see note)
requirement_collection: stripe
stripe_dashboard.type: express
Can you share the exact request you made?
"business_profile": {
"name": "shayyamsdcin56@gmail.com"
},
"business_type": "individual",
"capabilities": {
"transfers": {
"requested": "true"
}
},
"controller": {
"fees": {
"payer": "application"
},
"losses": {
"payments": "application"
},
"requirement_collection": "stripe",
"stripe_dashboard": {
"type": "express"
}
},
"country": "IL",
"individual": {
"address": {
"country": "IL"
}
},
"tos_acceptance": {
"date": "1721659739",
"ip": "213.57.169.102",
"service_agreement": "recipient",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
}
} ```
Is there a reason you're passing tos_acceptance ?
Once the account completes onboarding, that would be set automatically
From what we read, cross bordering accounts need it, don't they? Maybe I'm wrong.
Would love your help
Not that I am aware of..
I'd recommend testing it out without tos_acceptance parameter
OK
It will take me a few minutes
👍
like this ?
requirement_collection still is == application
You'd need to switch it to requirement_collection = 'stripe'
like this ?
Yup, try it out
Is there a request ID or error in your console?
https://support.stripe.com/questions/finding-the-id-for-an-api-request
Find help and support for Stripe. Our support site provides answers on all types of situations, including account information, charges and refunds, and subscriptions information. Get your questions answered and find international support for Stripe.
Error insight
A recipient service agreement is required for accounts in IL. To specify the recipient service agreement, see https://stripe.com/docs/connect/service-agreement-types#choosing-type-with-api. For more information on cross-border transfers, see https://stripe.com/docs/connect/account-capabilities#transfers-cross-border.
req_V3usp9Dwd3vU1u
Okay, so now just pass
service_agreement: 'recipient',
},```
not the whole thing as before
"date": "1721659739",
"ip": "213.57.169.102",
"service_agreement": "recipient",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36"
}```