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

# Invite an auditor

> Gives an external auditor read-only access to one report and emails them an invitation naming it. The auditor signs in to Audit Hub to review the report, its batches, its documents, and its evidence.

The call is idempotent. Sending an address that already has access resends the invitation rather than creating a second grant, so it is also how you resend.

Requires Audit Hub to be enabled on the account, and a token with Accounting and Reporting write permission.



## OpenAPI

````yaml POST /reports/{report_id}/invite
openapi: 3.1.0
info:
  title: Mangrove - API
  version: 1.1.0
servers:
  - url: https://app.gomangrove.com/api/v1
security:
  - sec0: []
paths:
  /reports/{report_id}/invite:
    post:
      summary: Invite an auditor to a report
      description: >-
        Gives an external auditor read-only access to one report and emails them
        an invitation naming it. The auditor signs in to Audit Hub to review the
        report, its batches, its documents, and its evidence.


        The call is idempotent. Sending an address that already has access
        resends the invitation rather than creating a second grant, so it is
        also how you resend.


        Requires Audit Hub to be enabled on the account, and a token with
        Accounting and Reporting write permission.
      operationId: invite-report-auditor
      parameters:
        - name: report_id
          in: path
          description: >-
            Unique ID of the report in the `rep_XXXX` syntax. For example:
            `rep_abc123def456`
          schema:
            type: string
          required: true
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
                - auditor
              properties:
                auditor:
                  type: object
                  required:
                    - email
                  properties:
                    email:
                      type: string
                      format: email
                      description: >-
                        The auditor's email address. An address already
                        belonging to any Mangrove dashboard user is rejected,
                        across every account, because a person cannot be both.
            examples:
              Request Example:
                value:
                  auditor:
                    email: auditor@example.com
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value:
                    report_id: rep_abc123def456
                    auditor:
                      email: auditor@example.com
                      status: invited
                    status: sent
              schema:
                type: object
                properties:
                  report_id:
                    type: string
                  auditor:
                    type: object
                    properties:
                      email:
                        type: string
                      status:
                        type: string
                        enum:
                          - invited
                          - active
                          - deactivated
                        description: >-
                          `invited` until the auditor activates their account,
                          then `active`.
                  status:
                    type: string
                    description: Outcome of the invitation.
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value:
                    errors:
                      - message: >-
                          param is missing or the value is empty or invalid:
                          auditor
        '403':
          description: '403'
          content:
            application/json:
              examples:
                Audit Hub not enabled:
                  value:
                    errors:
                      - message: Auditor invitations are not enabled for this account
                Missing permission:
                  value:
                    errors:
                      - message: You are not authorized to perform this action
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value:
                    errors:
                      - message: Record not found
        '422':
          description: '422'
          content:
            application/json:
              examples:
                Already an account user:
                  value:
                    errors:
                      - message: >-
                          User is already an account user and cannot be an
                          auditor
      deprecated: false
components:
  securitySchemes:
    sec0:
      type: apiKey
      in: header
      name: Authorization
      x-bearer-format: ''

````