#BearMan-tos-acceptance

1 messages ยท Page 1 of 1 (latest)

empty lagoon
#

Hi there!

sterile steeple
#

Hi Bismarck, been a long time (I asked about providing sections/context, etc to questions - doubt you'd remember)

#

Additional info/pic

#

For context.

empty lagoon
#

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...

sterile steeple
#

Makes 2 of us

empty lagoon
#

Do you have a request ID for that?

sterile steeple
#

Hmm, lets try it again, will post request ID

empty lagoon
#

Sounds good. If you provide the account ID from your screenshot I can look at that as well

sterile steeple
#

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

empty lagoon
#

๐Ÿ‘€

sterile steeple
#

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

empty lagoon
#

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

sterile steeple
#

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
}
empty lagoon
#

Okay

sterile steeple
#

(removed some bits to make it shorter)

empty lagoon
#

Take out service_agreement: "full",

#

And just pass date/IP

sterile steeple
#

Sure, sec

#

should it auto detected based on country i.e. US or other?>

empty lagoon
#

Oh wait

#

Wait yes, test what I said please.

#

That is a very weird error though

sterile steeple
#

Yeah, I agree

#

gimme a sec

empty lagoon
#

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?

sterile steeple
#

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

empty lagoon
#

Let me ask a colleague as well since I've never seen this error before

sterile steeple
#

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

empty lagoon
#

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 ๐Ÿ˜…

sterile steeple
#

Okay, tried different country with:

  • service_agreement & ip, date, nope
  • only service_agreement, yes.
#

give me the veggies

empty lagoon
#

The idea here is that you use the Account Token to collect all PII so it doesn't have to touch your server

sterile steeple
#

what did I miss?

empty lagoon
#

So in this case, you include ToS acceptance with the Account Token itself

sterile steeple
#

correct

#

gimme a sec, I'll show you that part

empty lagoon
#

So when I look at your account token I'm not seeing the tos_shown_and_accepted: true, that you mentioned

sterile steeple
#
{
        tos_shown_and_accepted: true,
        business_type: "individual",
        individual: individual,
    }
empty lagoon
#

So we need to double check on that

sterile steeple
#

This is a copy paste

empty lagoon
#

Ah wait okay I do see it

sterile steeple
empty lagoon
#

In the actual request I see it

#

But the object itself internally doesn't look to have it... weird. One sec

sterile steeple
#

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.

empty lagoon
#

Sounds good, I'll ping you here when I have more info

sterile steeple
#

๐Ÿ‘

#

Just an FYI, so far it seems to be related to the US, be it the country itself or related to service_account:full.

empty lagoon
#

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

sterile steeple
#

Just out of interest sake, is this intended or a work-around for a "bug" to be fixed later?

sterile steeple
empty lagoon
#

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.

sterile steeple
empty lagoon
#

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.

sterile steeple
empty lagoon
#

Mmmm yeah we don't have Connect Onboarding for native mobile

#

So that's fair

sterile steeple
#

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,
    });
empty lagoon
#

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

sterile steeple
#

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?

empty lagoon
#

If you aren't updating tax info then you shouldn't need to accept ToS again

sterile steeple
#

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.

empty lagoon
sterile steeple
#

ah, gotcha

#

Didn't realize you meant tax data equivalent to SSN updates.

#

I'll put something in place for that, many thanks.

empty lagoon
#

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!

sterile steeple
#

Will do, I've added tos_acceptance:true to any ID number / SSN changes. Will test it out.

#

Hopefully you won't hear from me again (about this issue)... or any other ๐Ÿ˜‰

empty lagoon
#

Haha we are always happy to help!

#

Don't hesitate to swing by

#

And good luck!