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

# Accept Terms

> ### Record Merchant Terms Acceptance (SWE-361)

Record the merchant's explicit acceptance of ToS, DPA, and Privacy Policy.
All three must be accepted in a single call. Stores acceptance timestamps,
document versions, and the client IP on the merchant's User record.

**Request Body**:
- `acceptTos`: Must be `true`
- `acceptDpa`: Must be `true`
- `acceptPrivacy`: Must be `true`
- `tosVersion`: Version string of the Terms of Service accepted (e.g. "1.0")
- `dpaVersion`: Version string of the Data Processing Agreement accepted
- `privacyVersion`: Version string of the Privacy Policy accepted

**Returns**: Timestamps at which each document was accepted.



## OpenAPI

````yaml https://api.loyalty.dog/openapi.json post /v2/users/me/accept-terms
openapi: 3.1.0
info:
  title: LoyaltyDog
  description: >-

    Welcome to the LoyaltyDog API! This API provides access to our loyalty
    program features, allowing you to integrate with various platforms and
    manage your loyalty data.


    Want to query LoyaltyDog via an AI assistant (Claude, Cursor, Windsurf)? See
    the [MCP Integration guide](https://loyaltydog.ai/playground#mcp).
        
  termsOfService: https://loyalty.dog/loyalty-program-terms-service
  contact:
    name: LoyaltyDog Support
    url: https://loyalty.dog/contact-us
    email: support@loyalty.dog
  version: 1.0.1
servers:
  - url: https://api.loyalty.dog
    description: Production
security:
  - bearerAuth: []
paths:
  /v2/users/me/accept-terms:
    post:
      tags:
        - Merchants
      summary: Accept Terms
      description: >-
        ### Record Merchant Terms Acceptance (SWE-361)


        Record the merchant's explicit acceptance of ToS, DPA, and Privacy
        Policy.

        All three must be accepted in a single call. Stores acceptance
        timestamps,

        document versions, and the client IP on the merchant's User record.


        **Request Body**:

        - `acceptTos`: Must be `true`

        - `acceptDpa`: Must be `true`

        - `acceptPrivacy`: Must be `true`

        - `tosVersion`: Version string of the Terms of Service accepted (e.g.
        "1.0")

        - `dpaVersion`: Version string of the Data Processing Agreement accepted

        - `privacyVersion`: Version string of the Privacy Policy accepted


        **Returns**: Timestamps at which each document was accepted.
      operationId: accept_terms_v2_users_me_accept_terms_post
      parameters:
        - name: authorization
          in: header
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AcceptTermsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptTermsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    AcceptTermsRequest:
      properties:
        acceptTos:
          type: boolean
          title: Accepttos
        acceptDpa:
          type: boolean
          title: Acceptdpa
        acceptPrivacy:
          type: boolean
          title: Acceptprivacy
        tosVersion:
          type: string
          maxLength: 50
          minLength: 1
          title: Tosversion
        dpaVersion:
          type: string
          maxLength: 50
          minLength: 1
          title: Dpaversion
        privacyVersion:
          type: string
          maxLength: 50
          minLength: 1
          title: Privacyversion
      type: object
      required:
        - acceptTos
        - acceptDpa
        - acceptPrivacy
        - tosVersion
        - dpaVersion
        - privacyVersion
      title: AcceptTermsRequest
    AcceptTermsResponse:
      properties:
        tosAcceptedAt:
          type: string
          format: date-time
          title: Tosacceptedat
        dpaAcceptedAt:
          type: string
          format: date-time
          title: Dpaacceptedat
        privacyAcceptedAt:
          type: string
          format: date-time
          title: Privacyacceptedat
      type: object
      required:
        - tosAcceptedAt
        - dpaAcceptedAt
        - privacyAcceptedAt
      title: AcceptTermsResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT access token obtained from POST /v2/token.

````