---
title: "Create a timeoff"
method: POST
path: "/hris/{connection_id}/timeoff"
tags: ["hris", "timeoff"]
---

# Create a timeoff

`POST /hris/{connection_id}/timeoff`

## Request

- Base URL: `http://api.unified.to`
- URL: `http://api.unified.to/hris/{connection_id}/timeoff`
- Auth: API key in header `authorization`

## Path parameters

- `connection_id` string, required

## Query parameters

- `fields` string[]
- `raw` string

## Request body

- HrisTimeoff
  - `id` string
  - `created_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `updated_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `user_id` string, required: employee ID (reference to HrisEmployee)
  - `company_id` string: (reference to HrisCompany)
  - `start_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `end_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `is_paid` boolean
  - `status` 'APPROVED' | 'PENDING' | 'DENIED' | 'CANCELLED'
  - `approver_user_id` string: (reference to HrisEmployee)
  - `approved_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `comments` string
  - `reason` string
  - `original_type` string: integration leave-type label before normalization
  - `type` 'VACATION' | 'SICK' | 'HOLIDAY' | 'BEREAVEMENT' | 'PARENTAL' | 'UNPAID' | 'IN_LIEU' | 'OTHER'
  - `duration` number
  - `duration_type` 'HOUR' | 'DAY'
  - `metadata` HrisMetadata[]
    - `id` string
    - `value` unknown
    - `namespace` string
    - `format` 'TEXT' | 'NUMBER' | 'DATE' | 'BOOLEAN' | 'FILE' | 'TEXTAREA' | 'SINGLE_SELECT' | 'MULTIPLE_SELECT' | 'MEASUREMENT' | 'PRICE' | 'YES_NO' | 'CURRENCY' | 'URL'
    - `extra_data` unknown
    - `slug` string
  - `raw` unknown

## Response `200`

Successful

- HrisTimeoff
  - `id` string
  - `created_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `updated_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `user_id` string, required: employee ID (reference to HrisEmployee)
  - `company_id` string: (reference to HrisCompany)
  - `start_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `end_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `is_paid` boolean
  - `status` 'APPROVED' | 'PENDING' | 'DENIED' | 'CANCELLED'
  - `approver_user_id` string: (reference to HrisEmployee)
  - `approved_at` string, date-time: (ISO-8601 / YYYY-MM-DDTHH:MM:SSZ format)
  - `comments` string
  - `reason` string
  - `original_type` string: integration leave-type label before normalization
  - `type` 'VACATION' | 'SICK' | 'HOLIDAY' | 'BEREAVEMENT' | 'PARENTAL' | 'UNPAID' | 'IN_LIEU' | 'OTHER'
  - `duration` number
  - `duration_type` 'HOUR' | 'DAY'
  - `metadata` HrisMetadata[]
    - `id` string
    - `value` unknown
    - `namespace` string
    - `format` 'TEXT' | 'NUMBER' | 'DATE' | 'BOOLEAN' | 'FILE' | 'TEXTAREA' | 'SINGLE_SELECT' | 'MULTIPLE_SELECT' | 'MEASUREMENT' | 'PRICE' | 'YES_NO' | 'CURRENCY' | 'URL'
    - `extra_data` unknown
    - `slug` string
  - `raw` unknown

---

[API](https://skmtc.dev/unified/apis/unified-to-api-2.md) · [All operations](https://skmtc.dev/unified/apis/unified-to-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/unified/apis/unified-to-api-2/revisions/7a38bdd7f089?raw)
