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

# Add an approver to an approval section item

> Creates a new approver on a specific approval section item (an organizational unit for DEPARTMENT sections, a custom dimension value for DIMENSION sections). Identify the person by either `personId` or `personExternalId`. The request must not include an `id`. The `organizationId` path parameter supports both the Findity id and the partner-side `externalId`.




## OpenAPI

````yaml /openapi/findity-admin-api.json post /organizations/{organizationId}/approval/sections/{sectionId}/approvers
openapi: 3.1.0
info:
  title: Findity Admin API
  description: Findity Admin API
  version: 1.0.0
servers:
  - url: https://stage-api.findity.com/api/v1/admin
  - url: https://api.findity.com/api/v1/admin
security:
  - bearerAuth: []
paths:
  /organizations/{organizationId}/approval/sections/{sectionId}/approvers:
    post:
      tags:
        - Approval
      summary: Add an approver to an approval section item
      description: >
        Creates a new approver on a specific approval section item (an
        organizational unit for DEPARTMENT sections, a custom dimension value
        for DIMENSION sections). Identify the person by either `personId` or
        `personExternalId`. The request must not include an `id`. The
        `organizationId` path parameter supports both the Findity id and the
        partner-side `externalId`.
      operationId: adminCreateApproverForApprovalSection
      parameters:
        - $ref: '#/components/parameters/organizationIdOrExternalIdInPath'
        - $ref: '#/components/parameters/sectionIdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApproverRequest'
            example:
              sectionItemId: 1528b743a5c44eb5963b6dd53a98c43b
              level: 1
              personId: ff8080819e74371c019e7437518600fa
              amountLimit: 500
      responses:
        '201':
          description: Approver successfully created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Approver'
              examples:
                Approver created:
                  value:
                    id: 8ab28c4f6f1da520016f23777f0e01a9
                    personId: ff8080819e74371c019e7437518600fa
                    personExternalId: null
                    firstName: FirstName1
                    lastName: LastName1
                    email: firstName1.lastName1@test.com
                    level: 1
                    amountLimit: 500
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/400Error'
              examples:
                Id must not be provided in the request body:
                  value:
                    result: error
                    code: INVALID_ID
                    description: Id should not be specified when creating a new approver
                sectionItemId not provided in body:
                  value:
                    result: error
                    code: MISSING_PARAMETER
                    description: sectionItemId property has to be provided with a value
                level not provided in body:
                  value:
                    result: error
                    code: MISSING_PARAMETER
                    description: level property not provided in body
        '404':
          description: Not found error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/404Error'
              examples:
                Organization not found:
                  value:
                    result: error
                    code: ORGANIZATION_NOT_FOUND
                    description: Organization not found
                No active license found for approval for organization:
                  value:
                    result: error
                    code: LICENSE_APPROVAL_NOT_FOUND
                    description: Active license for approval flow not found
                Approval section not found:
                  value:
                    result: error
                    code: APPROVAL_SECTION_NOT_FOUND
                    description: Section with id {sectionId} is not found
                Approval section item not found for the provided sectionItemId:
                  value:
                    result: error
                    code: APPROVAL_SECTION_ITEM_ID_NOT_FOUND
                    description: >-
                      Approval section item for the provided sectionItemId is
                      not found
components:
  parameters:
    organizationIdOrExternalIdInPath:
      in: path
      name: organizationId
      required: true
      description: >-
        Unique identifier of the organization. String in UUID without dashes
        (32-character hex string) if access is done via values from Findity
        system otherwise, id of external system can be used
      schema:
        type: string
      examples:
        Findity unique id:
          value: 05b8daba9ba14a49846fe77883248cf0
        External system unique id:
          value: a31a7372-3397-3924-ffcd-b7b4795e42eb
    sectionIdPath:
      in: path
      name: sectionId
      required: true
      description: >-
        Unique identifier of the approval section. String in UUID without dashes
        (32-character hex string).
      schema:
        $ref: '#/components/schemas/Uuid'
      example: abcdd5f401cf43549a688045b5ceef9b
  schemas:
    ApproverRequest:
      type: object
      description: >
        Request body for creating a new approver on a section item. Identify the
        person by either `personId` or `personExternalId` — when both are
        present `personId` takes precedence.
      required:
        - sectionItemId
        - level
      properties:
        sectionItemId:
          type: string
          description: >
            Identifier of the approval section item this approver is being added
            to. For DEPARTMENT sections this is the organizational unit id (or
            its external id); for DIMENSION sections this is the custom
            dimension list value id.
          maxLength: 255
        level:
          type: integer
          description: >-
            Zero-based sequential approval level at which this approver acts.
            Must be greater than or equal to 0; approvers are processed from
            lowest (0) to highest level.
          minimum: 0
        personId:
          allOf:
            - $ref: '#/components/schemas/Uuid'
          description: >-
            Findity identifier of the person to add as approver. Provide either
            personId or personExternalId.
        personExternalId:
          type: string
          description: >-
            External source identifier of the person to add as approver. Used
            when the caller identifies persons by their external system id.
            Ignored if personId is also provided.
          maxLength: 255
        amountLimit:
          type: number
          format: double
          description: >-
            Optional maximum expense report amount this approver is authorized
            to approve, expressed in the organization's base currency.
          nullable: true
          minimum: 0
    Approver:
      type: object
      description: An approver assigned to an approval section item at a specific level.
      required:
        - id
        - level
        - personId
      properties:
        id:
          allOf:
            - $ref: '#/components/schemas/Uuid'
          readOnly: true
          description: >-
            Findity unique identifier of the approver record (not the person).
            Use this value when updating or deleting the approver.
        personId:
          allOf:
            - $ref: '#/components/schemas/Uuid'
          description: Findity identifier of the person acting as approver.
        personExternalId:
          type: string
          description: >-
            External source identifier of the person as provided by the
            integrating system. Null if not set.
          maxLength: 255
          nullable: true
        firstName:
          type: string
          description: First name of the approver.
          maxLength: 255
        lastName:
          type: string
          description: Last name of the approver.
          maxLength: 255
        email:
          type: string
          format: email
          description: Email address of the approver.
          maxLength: 255
        level:
          type: integer
          description: >-
            Sequential approval level of this approver within the section item.
            Approvers are processed from lowest to highest level.
          minimum: 0
        amountLimit:
          type: number
          format: double
          description: >-
            Maximum expense report amount this approver is authorized to
            approve, expressed in the organization's base currency. Null
            indicates no upper limit applies.
          nullable: true
          minimum: 0
        meta:
          type: object
          description: >
            Display metadata for the approver. Present only on GET responses
            when the request includes the query parameter
            `include=approver.meta.abbreviation`. Never returned on POST/PUT
            responses.
          required:
            - fullName
            - fullNameWithEmail
          properties:
            fullName:
              type: string
              description: Full name of the approver, formatted as "firstName lastName".
              maxLength: 511
            fullNameWithEmail:
              type: string
              description: >-
                Full name with email address, formatted as "firstName lastName
                (email@example.com)".
              maxLength: 511
            amountLimitDescription:
              type: string
              description: >
                Localized, currency-formatted representation of the approver's
                amountLimit using the organization's base currency (e.g. "200,10
                SEK"). Null when amountLimit is null.
              nullable: true
              maxLength: 64
    400Error:
      type: object
      properties:
        result:
          type: string
        code:
          type: string
        description:
          type: string
    404Error:
      type: object
      properties:
        result:
          type: string
        code:
          type: string
        description:
          type: string
      example:
        result: error
        code: ORGANIZATION_NOT_FOUND
        description: 'Failed to get organization for id: {orgId}'
    Uuid:
      type: string
      pattern: ^[0-9a-fA-F]{32}$
      description: UUID without dashes (32-character hex string)
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````