#BearMan-tos-acceptance
1 messages ยท Page 1 of 1 (latest)
Hi Bismarck, been a long time (I asked about providing sections/context, etc to questions - doubt you'd remember)
Additional info/pic
For context.
So when you create the account if you want to just go ahead and accept ToS you can pass the date and IP with tos_acceptance
I'm a bit confused about the error you are seeing...
Makes 2 of us
Do you have a request ID for that?
Hmm, lets try it again, will post request ID
Sounds good. If you provide the account ID from your screenshot I can look at that as well
Sure
Request ID for creating account: req_Zx9TNuVc95S5Y9
Account ID: acct_1LaiZiPK7vFB1HzH
I've only completed up to verification (back end)
I have not yet added external account(s) manually via the Stripe interface
๐
When I do so, I get the tos message
hmm, in the Stripe webhook response: I see 2 errors relating to tax IDs ( assume relating to tos) acceptance
Can you create a new account but instead of just doing tos_acceptance: { service_agreement: "full" },
Do:
service_agreement: "full",
date: [timestamp],
ip: [ipaddress],
},```
And fill in the timestamp and ip address with some data
Sure, I have tried it - it gives me this error
Parameter "tos_acceptance" cannot be used in conjunction with an account token.
but, I'll try it again, will send request id too
Created new account with only proposed changes:
...
tos_acceptance: {
service_agreement: countryIsUS ? "full" : "recipient",
date: Date.now(),
ip: "1.1.1.1",
},
...
Results in error:
{
"type": "StripeInvalidRequestError",
"raw": {
"message": "Parameter 'tos_acceptance' cannot be used in conjunction with an account token. To set this field create a token with the desired changes. Pass the token with 'account_token' in a request without setting 'tos_acceptance'. See https://stripe.com/docs/connect/account-tokens#updating for more information.",
"param": "tos_acceptance",
"type": "invalid_request_error",
"statusCode": 400,
"requestId": "req_c088ZftW9lWpL7"
},
"rawType": "invalid_request_error",
"param": "tos_acceptance",
"requestId": "req_c088ZftW9lWpL7",
"statusCode": 400
}
Okay
(removed some bits to make it shorter)
For a US account you can't use a recipient agreement anyways
So there is no real reason to specify it
Do you see this error with non-US accounts?
I haven't tried other countries yet.
Just tried it without the service_agreement specified, got the same error
Gonna rebuilds completely to make sure
gimme a sec
Let me ask a colleague as well since I've never seen this error before
Hmm, looks like the same error:
{
"type": "StripeInvalidRequestError",
"raw": {
"message": "Parameter 'tos_acceptance' cannot be used in conjunction with an account token. To set this field create a token with the desired changes. Pass the token with 'account_token' in a request without setting 'tos_acceptance'. See https://stripe.com/docs/connect/account-tokens#updating for more information.",
"param": "tos_acceptance",
"type": "invalid_request_error",
"rawType": "invalid_request_error",
"param": "tos_acceptance",
"requestId": "req_mfLjZTB7chQwB8",
"statusCode": 400
}
I'll try with a different country aswel
w/ and w/o the service_agreement and then w/ and w/o the ip, date params
Great thanks
I'm checking with a colleague
Give me a few mins and I'll circle back
Okay okay okay
Clearly I need to play with account tokens more so I am more familiar with them ๐
Okay, tried different country with:
service_agreement&ip, date, nope- only
service_agreement, yes.
give me the veggies
The idea here is that you use the Account Token to collect all PII so it doesn't have to touch your server
what did I miss?
So in this case, you include ToS acceptance with the Account Token itself
So when I look at your account token I'm not seeing the tos_shown_and_accepted: true, that you mentioned
{
tos_shown_and_accepted: true,
business_type: "individual",
individual: individual,
}
So we need to double check on that
This is a copy paste
Ah wait okay I do see it
In the actual request I see it
But the object itself internally doesn't look to have it... weird. One sec
I'll continue working on other functionality - this isn't crucial but will be in the next 48-72h.
Get back to me when you can, I'll keep an eye on this thread.
Sounds good, I'll ping you here when I have more info
๐
Just an FYI, so far it seems to be related to the US, be it the country itself or related to service_account:full.
Okay okay @sterile steeple we are making progress. So when you update tax information it requires that you accept the ToS again. You can see that in the response to https://dashboard.stripe.com/test/logs/req_dG2tlDruMh3wlA for instance:
{
code: "invalid_value_other",
reason: "The tax ID on the account has changed. Please accept the terms of service again.",
requirement: "tos_acceptance.date"
},```
So the solution here is to either pass tos_acceptance again with that token when you update tax info. Or you just create another token thereafter with tos_acceptance
Sounds good, I'll give it a try and let you know.
Just out of interest sake, is this intended or a work-around for a "bug" to be fixed later?
also, yes - I did/do see that in the webhook response
This is all intended. Account Tokens are supposed to limit the data on your server, that is the main purpose. So they enforce collecting all info client-side.
Hmm, between you and me. feels a bit cumbersome taking this approach.
Well overall we recommend you just let us handle all of this via Connect Onboarding if you aren't going to handle the data on your server to begin with. But I do understand what you are saying about it being a bit cumbersome.
Connect Onboarding, that is a web interface? Doesn't work well if one is trying to make a "comfortable environment" for mobile users.
Regarding the solution, to be clear I need to do the following: (if updating tax, etc information) I need to reissue a tos_acceptance account token and update the account with it?
i.e. this part
// / Create token
const token = await createConnectAccountToken({
tos_shown_and_accepted: true,
business_type: "individual",
individual: individual,
});
Or just pass tos_shown_and_accepted: "true", in the token that you are updating with
So you shouldn't have to create an entirely new token if you don't want to. You can just indicate that ToS is accepted with that new tax info as well
Ah right, say I'm not updating tax info at the moment (which is a likely case)
Should i create a new token just for the tos?
If you aren't updating tax info then you shouldn't need to accept ToS again
Hmm, wait a sec.
Initially I'm creating a Connect Account in the US with (mock) social security number, address & ID verification document. I do not specify any tax information.
Next I add the external account
At this point, I haven't touched any tax info.
I'm a bit confused where tax numbers, etc come in.
i.e. the need for it for account creation/payouts.
acct_1LaiZiPK7vFB1HzH was the account you mentioned as an example. Initially ToS was all set on that account on creation (https://dashboard.stripe.com/test/logs/req_Zx9TNuVc95S5Y9). However, later you did update tax info by passing an individual's SSN (https://dashboard.stripe.com/test/logs/req_dG2tlDruMh3wlA). This made the ToS acceptance be required again.
ah, gotcha
Didn't realize you meant tax data equivalent to SSN updates.
I'll put something in place for that, many thanks.
Ah sorry for not clarifying
The "tax data" will be contingent on the type of account.
So for individual accounts the Person's data will be used for the tax data
Let me know if I can help any further!