---
title: "Submit a new time off request."
method: POST
path: "/timeoff/employees/{id}/requests"
tags: ["Time off requests"]
---

# Submit a new time off request.

`POST /timeoff/employees/{id}/requests`

Submits a new time off request.<br /> <br />Time off requests can be of the listed types in the body params section below.<br /> <br />Each request type requires different parameters in the body params. Select the type in the body params section to view the expected fields. <br /><br>**Testing Note:**<br/> To test each type of request:<br /> 1. Open the relevant request type in the body params section.<br /> 2. In the test widget on the right, click "Request Example" to open the menu, and select the request type you want to send. <br /> 3. Update values and send.<br /> <br>**Important testing disclaimer:** Changing the request type example does not automatically switch the parameters. First, select the request schema, and then select the equivalent request in the "Request Example" to avoid inconsistencies in the example fields.

## Path parameters

- `id` string, required

## Request body

- union
  - SubmitTimeoffRequestDays
    - `requestRangeType` string, required — The type of request duration. This request is for X days. Value must be 'days'.
    - `policyType` string, required — Request policy type, e.g. Holiday, Sick or any custom type defined.
    - `startDate` string, date, required — Date of the first day of the time off.
    - `startDatePortion` string, required — What portion of the first day is included - <b>'all_day'</b> or <b>'afternoon'</b> (relevant for requests using the Days type).
    - `endDate` string, date, required — Date of the last day of the time off .
    - `endDatePortion` string, required — What portion of the last day is included - <b>'all_day'</b> or <b>'morning'</b> (relevant for requests using the Days type).
    - `skipManagerApproval` boolean — Admins only can skip the approval policy. Setting this field to true will create an approved request.
    - `approver` string — The employee ID of the user to be set as the approver for this request. This is relevant if 'skipManagerApproval' is set to true.<br>Please note that the user calling the API with this param must have permission to import time off requests.
    - `description` string — Request reason.
    - `reasonCode` integer — The reason code ID taken from the policy type's reason codes list. The list is available in GET /timeoff/policy-types/{policyType}/reason-codes
  - SubmitTimeoffRequestHours
    - `requestRangeType` string, required — The type of request duration. This request is for X hours during the day requested (This is supported only for policy types measured in hours). Value must be 'hours'.
    - `policyType` string, required — Request policy type, e.g. Holiday, Sick or any custom type defined.
    - `startDate` string, date, required — Date of the first day of the time off.
    - `endDate` string, date, required — Date of the last day of the time off (must be the same as startDate).
    - `hours` integer, required — This field is mandatory if the requestRangeType is set to 'hours'.
    - `minutes` integer, required — Relevant if requestRangeType is set to 'hours'.
    - `skipManagerApproval` boolean — Admins only can skip the approval policy. Setting this field to true will create an approved request.
    - `approver` string — The employee ID of the user to be set as the approver for this request. This is relevant if 'skipManagerApproval' is set to true.<br>Please note that the user calling the API with this param must have permission to import time off requests.
    - `description` string — Request reason.
    - `reasonCode` integer — The reason code ID taken from the policy type's reason codes list. The list is available in GET /timeoff/policy-types/{policyType}/reason-codes
  - SubmitTimeoffRequestDiffHoursPerDay
    - `requestRangeType` string, required — The type of request duration. This request is for different hours per day. Value must be 'differentDayDurations'.
    - `policyType` string, required — Request policy type, e.g. Holiday, Sick or any custom type defined.
    - `startDate` string, date, required — Date of the first day of the time off
    - `endDate` string, date, required — Date of the last day of the time off.
    - `durations` object[], required — Array of durations for each day in the request.
      - `date` string, date, required — Date of the duration.
      - `hours` integer, required — The number of hours in the duration.
      - `minutes` integer, required — The number of minutes in the duration.
    - `skipManagerApproval` boolean — Admins only can skip the approval policy. Setting this field to true will create an approved request.
    - `approver` string — The employee ID of the user to be set as the approver for this request. This is relevant if 'skipManagerApproval' is set to true.<br>Please note that the user calling the API with this param must have permission to import time off requests.
    - `description` string — Request reason.
    - `reasonCode` integer — The reason code ID taken from the policy type's reason codes list. The list is available in GET /timeoff/policy-types/{policyType}/reason-codes
  - SubmitTimeoffRequestPortionOnRange
    - `requestRangeType` string, required — The type of request duration. This request is for every morning or every afternoon during the days requested. Value must be 'portionOnRange'.
    - `policyType` string, required — Request policy type, e.g. Holiday, Sick or any custom type defined.
    - `startDate` string, date, required — Date of the first day of the time off.
    - `endDate` string, date, required — Date of the last day of the time off.
    - `dayPortion` string, required — Select <b>morning</b> when the request is for mornings on the days requested. Select <b>afternoon</b> when the request is for afternoons on the days requested.
    - `skipManagerApproval` boolean — Admins only can skip the approval policy. Setting this field to true will create an approved request.
    - `approver` string — The employee ID of the user to be set as the approver for this request. This is relevant if 'skipManagerApproval' is set to true.<br>Please note that the user calling the API with this param must have permission to import time off requests.
    - `description` string — Request reason.
    - `reasonCode` integer — The reason code ID taken from the policy type's reason codes list. The list is available in GET /timeoff/policy-types/{policyType}/reason-codes
  - SubmitTimeoffRequestHoursOnRange
    - `requestRangeType` string, required — The type of request duration. This request is for X hours every day during the days requested (This is supported only for policy types measured in hours). Value must be 'hoursOnRange'.
    - `policyType` string, required — Request policy type, e.g. Holiday, Sick or any custom type defined.
    - `startDate` string, date, required — Date of the first day of the time off.
    - `endDate` string, date, required — Date of the last day of the time off.
    - `dailyHours` integer, required — Enter the number of hours when the request is for X hours on the days requested.<br> This is mandatory when the <b>requestRangeType</b> is <b>hoursOnRange</b>.
    - `dailyMinutes` integer, required — Enter the number of minutes when the request is for X hours and X minutes on the days requested.<br> This is relevant when the <b>requestRangeType</b> is <b>hoursOnRange</b> and the amount requested is not a full hour or hours.
    - `skipManagerApproval` boolean — Admins only can skip the approval policy. Setting this field to true will create an approved request.
    - `approver` string — The employee ID of the user to be set as the approver for this request. This is relevant if 'skipManagerApproval' is set to true.<br>Please note that the user calling the API with this param must have permission to import time off requests.
    - `description` string — Request reason.
    - `reasonCode` integer — The reason code ID taken from the policy type's reason codes list. The list is available in GET /timeoff/policy-types/{policyType}/reason-codes
  - SubmitTimeoffRequestSpecificHoursOnRange
    - `requestRangeType` string, required — The type of request duration. This request is for specific hours per day. Value must be 'specificHoursDayDurations'.
    - `policyType` string, required — Request policy type, e.g. Holiday, Sick or any custom type defined.
    - `startDate` string, date, required — Date of the first day of the time off
    - `endDate` string, date, required — Date of the last day of the time off.
    - `localStartTime` string, time, required — Start time of the duration
    - `localEndTime` string, time, required — End time of the duration
    - `skipManagerApproval` boolean — Admins only can skip the approval policy. Setting this field to true will create an approved request.
    - `approver` string — The employee ID of the user to be set as the approver for this request. This is relevant if 'skipManagerApproval' is set to true.<br>Please note that the user calling the API with this param must have permission to import time off requests.
    - `description` string — Request reason.
    - `reasonCode` integer — The reason code ID taken from the policy type's reason codes list. The list is available in GET /timeoff/policy-types/{policyType}/reason-codes
  - SubmitTimeoffRequestDifferentSpecificHoursOnRange
    - `requestRangeType` string, required — The type of request duration. This request is for different specific hours per day. Value must be 'differentSpecificHoursDayDurations'.
    - `policyType` string, required — Request policy type, e.g. Holiday, Sick or any custom type defined.
    - `startDate` string, date, required — Date of the first day of the time off
    - `endDate` string, date, required — Date of the last day of the time off.
    - `durations` object[], required — Array of day durations for each date in the range
      - `date` string, date, required — The date for this duration entry
      - `dayDuration` union, required — The duration for this specific date. Each date must include exactly one of the following types: <ul> <li>SpecificHoursDayDuration</li> <li>PortionDayDuration</li> </ul>
        - SpecificHoursDayDuration — Defines the request by exact working hours (for example, 10:00-12:00).
          - `dayDurationType` 'specificHoursDayDuration', required — The type of day duration
          - `localStartTime` string, time, required — Start time of the duration
          - `localEndTime` string, time, required — End time of the duration
        - DiffSpecHoursPortionDayDuration — Defines the request as either the entire day (all_day) or no hours at all (vacant).
          - `dayDurationType` 'portionDayDuration', required — The type of day duration
          - `portion` 'all_day' | 'vacant', required — The portion of the day
    - `skipManagerApproval` boolean — Admins only can skip the approval policy. Setting this field to true will create an approved request.
    - `approver` string — The employee ID of the user to be set as the approver for this request. This is relevant if 'skipManagerApproval' is set to true.<br>Please note that the user calling the API with this param must have permission to import time off requests.
    - `description` string — Request reason.
    - `reasonCode` integer — The reason code ID taken from the policy type's reason codes list. The list is available in GET /timeoff/policy-types/{policyType}/reason-codes

## Response `200`

Successfully submitted

---

[API](https://skmtc.net/hibob/apis/employee-data-api.md) · [All operations](https://skmtc.net/hibob/apis/employee-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hibob/employee-data-api/revisions/0781ebbdda91/schema)
