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

# Accept invitation

> Consumes an invitation token to activate an invited user and optionally set their password or profile fields.
Requires an application actor token, matching the GraphQL updateUser(usingInviteToken:) flow.



## OpenAPI

````yaml /.tooling/schemas/rest/tags/product-finops.json post /identity/v1/users/invitation
openapi: 3.1.0
info:
  title: Tesouro Partner API
  version: '2026-09-24'
  description: The Tesouro REST API, for Tesouro partners to integrate with our solution.
  termsOfService: https://tesouro.com/terms
  contact:
    name: Tesouro team
    url: https://tesouro.com/about/
    email: developers@tesouro.com
servers:
  - url: https://api.sandbox.tesouro.com
    description: Sandbox
security: []
tags:
  - name: Accounting connections
  - name: Accounting data pull
  - name: Accounting synchronized records
  - name: Accounting tax rates
  - name: Analytics
  - name: Approval policies
  - name: Approval requests
  - name: Bank details
  - name: Comments
  - name: Cost centers
  - name: Counterpart addresses
  - name: Counterpart bank accounts
  - name: Counterpart contacts
  - name: Counterpart VAT IDs
  - name: Counterparts
  - name: Credit notes
  - name: Custom tax rates
  - name: Delivery notes
  - name: Departments
  - name: Disclosures
  - name: Documents
  - name: Events
  - name: Files
  - name: Ledger accounts
  - name: Locations
  - name: Mail templates
  - name: Mailbox domains
  - name: Mailboxes
  - name: Measure units
  - name: OCR
  - name: OIDC applications
  - name: Organizations
  - name: Overdue reminders
  - name: Payable duplicates
  - name: Payable line items
  - name: Payables
  - name: Payment intents
  - name: Payment links
  - name: Payment methods
  - name: Payment records
  - name: Payment reminders
  - name: Payment terms
  - name: PDF templates
  - name: Products
  - name: Projects
  - name: Purchase orders
  - name: Receipts
  - name: Receivables
  - name: Recurrences
  - name: Roles
  - name: Tags
  - name: Text templates
  - name: Transactions
  - name: Users
  - name: Webhook deliveries
  - name: Webhook subscriptions
paths:
  /identity/v1/users/invitation:
    post:
      tags:
        - Users
      summary: Accept invitation
      description: >-
        Consumes an invitation token to activate an invited user and optionally
        set their password or profile fields.

        Requires an application actor token, matching the GraphQL
        updateUser(usingInviteToken:) flow.
      operationId: AcceptInvitation
      parameters: []
      requestBody:
        description: Invitation acceptance details.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AcceptInvitationRequestDto'
          text/json:
            schema:
              $ref: '#/components/schemas/AcceptInvitationRequestDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/AcceptInvitationRequestDto'
        required: true
      responses:
        '200':
          description: Invitation accepted.
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/AcceptInvitationResponseDto'
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptInvitationResponseDto'
            text/json:
              schema:
                $ref: '#/components/schemas/AcceptInvitationResponseDto'
        '400':
          description: Bad request - invalid or missing required fields.
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '401':
          description: Unauthorized - no valid JWT token provided.
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '403':
          description: >-
            Forbidden - caller is not an application actor, or client ID missing
            from the token or unknown.
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '422':
          description: >-
            Unprocessable entity - invalid/expired invitation token, unknown
            user, or password requirements not met.
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
            text/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
        '500':
          description: Internal server error.
      security:
        - HTTPBearer: []
components:
  schemas:
    AcceptInvitationRequestDto:
      required:
        - userId
        - token
      type: object
      properties:
        authentication:
          oneOf:
            - type: 'null'
            - $ref: '#/components/schemas/AcceptInvitationAuthenticationDto'
        jobTitle:
          type:
            - 'null'
            - string
        name:
          type:
            - 'null'
            - string
        newPassword:
          type:
            - 'null'
            - string
          description: New password to set for the invited user.
        phoneNumber:
          type:
            - 'null'
            - string
        token:
          type: string
          description: Invitation token received via email.
        userId:
          type: string
          format: uuid
    AcceptInvitationResponseDto:
      required:
        - userId
        - email
        - status
      type: object
      properties:
        email:
          type: string
        status:
          type: string
        userId:
          type: string
          format: uuid
    ProblemDetails:
      type: object
      properties:
        detail:
          type:
            - 'null'
            - string
        instance:
          type:
            - 'null'
            - string
        status:
          pattern: ^-?(?:0|[1-9]\d*)$
          type:
            - 'null'
            - integer
            - string
          format: int32
        title:
          type:
            - 'null'
            - string
        type:
          type:
            - 'null'
            - string
    AcceptInvitationAuthenticationDto:
      type: object
      properties:
        currentPassword:
          type:
            - 'null'
            - string
          description: >-
            Current password. Accepted for GraphQL payload compatibility and
            ignored for invitation acceptance.
        password:
          type:
            - 'null'
            - string
          description: New password to set for the invited user.
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer

````