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

# Update a time-off request

> Changes a pending or approved request; a changed request goes back to its approvers. Send only what changes — omitted dates and note stay as they are, and the policy cannot be changed. Dates are checked against the notice period and the bookable range only when they change, so a file can still be added to a request that has already started. `attachments` adds files (images and PDFs, 4 MB in total, sent as `multipart/form-data` with one `attachments[]` part per file); `kept_attachment_paths` lists the existing attachments to keep — omit it to keep them all. Defaults to the caller's own request; `employee_id` changes someone else's and needs the admin role or being their approver. Requires the `time-off:write` scope.



## OpenAPI

````yaml /openapi.json put /time-off/requests/{id}
openapi: 3.1.1
info:
  title: A-Char API
  version: 1.0.0
  description: 'Authenticate with `Authorization: Bearer <api key>`.'
servers:
  - url: https://a-char.com/api/v1
security:
  - bearerAuth: []
paths:
  /time-off/requests/{id}:
    put:
      tags:
        - Time off requests
      summary: Update a time-off request
      description: >-
        Changes a pending or approved request; a changed request goes back to
        its approvers. Send only what changes — omitted dates and note stay as
        they are, and the policy cannot be changed. Dates are checked against
        the notice period and the bookable range only when they change, so a
        file can still be added to a request that has already started.
        `attachments` adds files (images and PDFs, 4 MB in total, sent as
        `multipart/form-data` with one `attachments[]` part per file);
        `kept_attachment_paths` lists the existing attachments to keep — omit it
        to keep them all. Defaults to the caller's own request; `employee_id`
        changes someone else's and needs the admin role or being their approver.
        Requires the `time-off:write` scope.
      operationId: timeOff.update
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            format: uuid
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                start_date:
                  type: string
                  format: date
                start_date_type:
                  enum:
                    - FULL_DAY
                    - AM
                    - PM
                  type: string
                end_date:
                  type: string
                  format: date
                end_date_type:
                  enum:
                    - FULL_DAY
                    - AM
                    - PM
                  type: string
                note:
                  anyOf:
                    - type: string
                      maxLength: 300
                    - type: 'null'
                employee_id:
                  type: string
                  format: uuid
                kept_attachment_paths:
                  type: array
                  maxItems: 10
                  items:
                    type: string
                attachments:
                  type: array
                  maxItems: 10
                  items:
                    type: string
                    contentMediaType: '*/*'
                  default: []
          multipart/form-data:
            schema:
              type: object
              properties:
                start_date:
                  type: string
                  format: date
                start_date_type:
                  enum:
                    - FULL_DAY
                    - AM
                    - PM
                  type: string
                end_date:
                  type: string
                  format: date
                end_date_type:
                  enum:
                    - FULL_DAY
                    - AM
                    - PM
                  type: string
                note:
                  anyOf:
                    - type: string
                      maxLength: 300
                    - type: 'null'
                employee_id:
                  type: string
                  format: uuid
                kept_attachment_paths:
                  type: array
                  maxItems: 10
                  items:
                    type: string
                attachments:
                  type: array
                  maxItems: 10
                  items:
                    type: string
                    contentMediaType: '*/*'
                  default: []
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                    format: uuid
                required:
                  - id
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.