> ## Documentation Index
> Fetch the complete documentation index at: https://docs.crossmint.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Accept Legal Document

> Record user acceptance of a legal document. Supported types are `crossmint-privacy-policy` and `crossmint-terms-of-service`. The latest version of the document is always recorded. When accepting `crossmint-terms-of-service`, the `region` field is required so the correct regional agreement is resolved.

**API scope required**: `users.create`



## OpenAPI

````yaml put /2025-06-09/users/{userLocator}/legal-documents
openapi: 3.0.0
info:
  title: Crossmint Users API
  description: Crossmint Users API
  version: 1.0.0
  contact:
    name: Crossmint Support
    url: https://www.crossmint.com
    email: support@crossmint.com
servers:
  - url: https://staging.crossmint.com/api
    description: Staging environment (testnets)
  - url: https://www.crossmint.com/api
    description: Production environment (mainnets)
security: []
tags: []
paths:
  /2025-06-09/users/{userLocator}/legal-documents:
    put:
      tags:
        - Users
      summary: Accept Legal Document
      description: >-
        Record user acceptance of a legal document. Supported types are
        `crossmint-privacy-policy` and `crossmint-terms-of-service`. The latest
        version of the document is always recorded. When accepting
        `crossmint-terms-of-service`, the `region` field is required so the
        correct regional agreement is resolved.


        **API scope required**: `users.create`
      operationId: UsersController-acceptLegalDocument-2
      parameters:
        - name: X-API-KEY
          in: header
          description: API key required for authentication
          required: true
          schema:
            type: string
        - name: userLocator
          required: true
          in: path
          description: |-
            A user locator can be of the format:
            - `email:<email>`
            - `userId:<userId>`
            - `phoneNumber:<phoneNumber>`
            - `twitter:<handle>`
            - `x:<handle>`
          schema:
            type: string
          example: email:user@example.com
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AcceptLegalDocumentRequestDto'
      responses:
        '200':
          description: Legal document acceptance recorded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptLegalDocumentResponseDto'
components:
  schemas:
    AcceptLegalDocumentRequestDto:
      type: object
      properties:
        type:
          type: string
          enum:
            - crossmint-privacy-policy
            - crossmint-terms-of-service
          description: The legal document the user is accepting.
        region:
          type: string
          enum:
            - eu
            - worldwide
            - us
          description: >-
            Region the user is operating in. **Required when `type` is
            `crossmint-terms-of-service`** and determines which regional Terms
            of Service document is accepted. Ignored for
            `crossmint-privacy-policy`.
        acceptedAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - type
        - acceptedAt
    AcceptLegalDocumentResponseDto:
      type: object
      properties:
        acceptedAt:
          type: string
          format: date-time
          pattern: >-
            ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
      required:
        - acceptedAt

````