A valid request URL is required to generate request examples{
"acceptance": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"document_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"accepted_at": "2023-11-07T05:31:56Z",
"accepted_by": {
"name": "<string>",
"email": "jsmith@example.com"
},
"recorded": true
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Agree to a version, for the organization
Records that this organization agrees to these words. The path names a version and never a document, for POST /v1/contact/legal/{versionID}/accept’s reason: a request naming a document would be agreeing to whatever the text says at the moment the row is written.
Owner only, and the check is the ROLE rather than a permission. legal:manage governs the terms a tenant publishes for their own customers — a different document in a different plane — and an admin who holds it has no authority to bind the company. A non-owner gets 403 owner_only.
Agreeing twice is agreeing once: both calls answer 200, and recorded says which one wrote the row. The timestamp and the signatory are the first agreement’s — re-stamping them would move the evidence to whichever retry arrived last. The row keeps the address the click came from and the browser it was made in, and it names the person who signed as they were at the time.
A valid request URL is required to generate request examples{
"acceptance": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"document_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"slug": "<string>",
"version_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"accepted_at": "2023-11-07T05:31:56Z",
"accepted_by": {
"name": "<string>",
"email": "jsmith@example.com"
},
"recorded": true
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}{
"error": {
"code": "forbidden",
"message": "your role does not allow this action"
}
}Authorizations
A staff session token, uk_st_…. Minted by sign-up, sign-in or the two-factor exchange. Only a 401 means it is spent; not_a_member (403) is about the organization named in X-Organization-Id and leaves the token good for the others.
Headers
The organization the caller is acting on — the org_… code that appears in the panel URL. It identifies; the membership JOIN is what authorizes, so a forged code reads nothing: the answer is not_a_member (403), which does not mean the session is over. Absent, the session's default organization answers, or — if that membership was revoked while the session was open — any other one the caller still holds.
Path Parameters
The version, as GET /v1/organization/platform-legal answered it.
Response
The agreement, whether this call recorded it or found it already there.
What an organization's acceptance call answers with.
Show child attributes
Show child attributes