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

# Approve, reject, or revert form element submission

> Approve, reject, or revert a specific form element submission.

Note: For ACTIVITY elements, this action applies to all submissions for the same form element and period within the same form submission (site + year), ensuring consistent status across multiple activity rows in that period.

      **Workflow Actions**:
      - `approve`: Sets the submission status to "APPROVED"
      - `reject`: Sets the submission status to "REJECTED"  
      - `revert`: Sets the submission status back to "COMPLETED" (pending approval)

**Permission Requirements**:
- User must have APPROVER, MANAGER, or OWNER role in the organization
- User must have access to the site where the form is deployed
- The form element submission must belong to the user's organization

**Parameters**:
- `formElementSubmissionId`: The unique identifier of the form element submission to approve/reject/revert
- `action`: One of "approve", "reject", or "revert"
- `reason`: Optional reason for the approval/rejection/revert action

This endpoint is essential for workflow management and quality control in data collection processes.



## OpenAPI

````yaml https://app.azalt.co/api/v1/openapi.json patch /form-element-submissions/{formElementSubmissionId}/status
openapi: 3.0.3
info:
  title: Erguvan Public API
  version: 1.0.0
servers:
  - url: https://app.azalt.co/api/v1
security: []
paths:
  /form-element-submissions/{formElementSubmissionId}/status:
    patch:
      tags:
        - FormElementSubmission
      summary: Approve, reject, or revert form element submission
      description: >-
        Approve, reject, or revert a specific form element submission.


        Note: For ACTIVITY elements, this action applies to all submissions for
        the same form element and period within the same form submission (site +
        year), ensuring consistent status across multiple activity rows in that
        period.

              **Workflow Actions**:
              - `approve`: Sets the submission status to "APPROVED"
              - `reject`: Sets the submission status to "REJECTED"  
              - `revert`: Sets the submission status back to "COMPLETED" (pending approval)

        **Permission Requirements**:

        - User must have APPROVER, MANAGER, or OWNER role in the organization

        - User must have access to the site where the form is deployed

        - The form element submission must belong to the user's organization


        **Parameters**:

        - `formElementSubmissionId`: The unique identifier of the form element
        submission to approve/reject/revert

        - `action`: One of "approve", "reject", or "revert"

        - `reason`: Optional reason for the approval/rejection/revert action


        This endpoint is essential for workflow management and quality control
        in data collection processes.
      operationId: approveRejectFormElementSubmission
      parameters:
        - in: path
          name: formElementSubmissionId
          schema:
            type: string
          required: true
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                action:
                  type: string
                  enum:
                    - approve
                    - reject
                    - revert
                reason:
                  type: string
              required:
                - action
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  formSubmissionId:
                    type: string
                  formElementId:
                    type: string
                  periodUnit:
                    type: number
                  sequence:
                    type: number
                  value: {}
                  originalValue:
                    nullable: true
                  selectedUnitId:
                    type: string
                    nullable: true
                  activityId:
                    type: string
                    nullable: true
                  status:
                    type: string
                    enum:
                      - COMPLETED
                      - APPROVED
                      - REJECTED
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  organizationId:
                    type: string
                    nullable: true
                  docs:
                    type: array
                    items: {}
                  comments:
                    type: array
                    items: {}
                  recordedAt:
                    type: string
                    nullable: true
                required:
                  - id
                  - formSubmissionId
                  - formElementId
                  - periodUnit
                  - sequence
                  - activityId
                  - status
                  - createdAt
                  - updatedAt
                  - organizationId
                  - docs
                  - recordedAt
        '400':
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.BAD_REQUEST'
        '401':
          description: Authorization not provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.UNAUTHORIZED'
        '403':
          description: Insufficient access
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.FORBIDDEN'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.NOT_FOUND'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error.INTERNAL_SERVER_ERROR'
      security:
        - Authorization: []
components:
  schemas:
    error.BAD_REQUEST:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Invalid input data
        code:
          type: string
          description: The error code
          example: BAD_REQUEST
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Invalid input data error (400)
      description: The error information
      example:
        code: BAD_REQUEST
        message: Invalid input data
        issues: []
    error.UNAUTHORIZED:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Authorization not provided
        code:
          type: string
          description: The error code
          example: UNAUTHORIZED
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Authorization not provided error (401)
      description: The error information
      example:
        code: UNAUTHORIZED
        message: Authorization not provided
        issues: []
    error.FORBIDDEN:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Insufficient access
        code:
          type: string
          description: The error code
          example: FORBIDDEN
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Insufficient access error (403)
      description: The error information
      example:
        code: FORBIDDEN
        message: Insufficient access
        issues: []
    error.NOT_FOUND:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Not found
        code:
          type: string
          description: The error code
          example: NOT_FOUND
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Not found error (404)
      description: The error information
      example:
        code: NOT_FOUND
        message: Not found
        issues: []
    error.INTERNAL_SERVER_ERROR:
      type: object
      properties:
        message:
          type: string
          description: The error message
          example: Internal server error
        code:
          type: string
          description: The error code
          example: INTERNAL_SERVER_ERROR
        issues:
          type: array
          items:
            type: object
            properties:
              message:
                type: string
            required:
              - message
          description: An array of issues that were responsible for the error
          example: []
      required:
        - message
        - code
      title: Internal server error error (500)
      description: The error information
      example:
        code: INTERNAL_SERVER_ERROR
        message: Internal server error
        issues: []
  securitySchemes:
    Authorization:
      type: http
      scheme: bearer

````