---
title: "🔒 Создание заявки на отпуск или больничный для сотрудника."
method: POST
path: "/team/timeoff/create"
tags: ["Team: Timeoff"]
---

# 🔒 Создание заявки на отпуск или больничный для сотрудника.

`POST /team/timeoff/create`

## Request

- Base URL: `http://localhost`
- URL: `http://localhost/team/timeoff/create`
- Auth: one of:
  - API key in header `sid` and API key in header `rts` and API key in header `sig`
  - HTTP bearer

Создание заявки на отпуск или больничный для сотрудника.

**Access:** `authorized` (10 ) · **Scope:** `write`

**Allows:** `user:timeoff` (все обязательны; проверка в команде по ресурсу из запроса)

### TypeScript (copy-paste)

**`POST /team/timeoff/create`**

<details open><summary><b>Body (Partial)</b></summary>

```typescript
// Patch-body: все поля опциональны (Valid.Patch)
export type TeamTimeoffCreateBody = Partial<UserTimeOff>

export interface TeamTimeoffCreateBodyFields {
  ID?: string
  cID?: string
  userID?: string
  roleID?: string
  type?: string
  paid?: boolean | null
  sickLeaveID?: string | null
  statementFID?: string | null
  statementOrgID?: string | null
  /** Unix timestamp in milliseconds */
  statementSentTS?: number | null
  year?: number
  /** Day key (YYYYMMDD or internal day index) */
  startDayKey?: number
  /** Day key (YYYYMMDD or internal day index) */
  endDayKey?: number | null
  daysCount?: number
  /** Day key (YYYYMMDD or internal day index) */
  startWorkDayKey?: number | null
  userNote?: string | null
  userAvailable?: boolean | null
  status?: string
  adminNote?: string | null
  adminUID?: string | null
  payment?: UserTimeOff_payment | null
  statement?: Record<string, any> | null
  /** Unix timestamp in milliseconds */
  updTS?: number
  updUID?: string
}
```

</details>

<details open><summary><b>Response</b></summary>

```typescript
export type TeamTimeoffCreateResponse = IServerResponse<UserTimeOff>

export interface IServerResponse<T = any> {
  code: number
  data: T
  srvTS: number
  rkey: string
}
```

</details>

> Полный файл типов: [`/docs/types`](/docs/types) · raw: [`/docs/api-types.ts`](/docs/api-types.ts)

## Headers

- `devID` string, uuid, required
- `tz` string, required
- `app` string, required
- `appVer` string, required
- `rKey` string

## Request body

- TeamTimeoffCreateBody: Partial body (Valid.Patch) for `team/timeoff/create` — все поля опциональны
  - `ID` string, uuid
  - `cID` string, uuid
  - `userID` string, uuid
  - `roleID` string, uuid
  - `type` string
  - `paid` boolean, nullable
  - `sickLeaveID` string, nullable
  - `statementFID` string, uuid, nullable
  - `statementOrgID` string, uuid, nullable
  - `statementSentTS` integer, nullable: Unix timestamp in milliseconds
  - `year` integer
  - `startDayKey` integer: Day key (YYYYMMDD or internal day index)
  - `endDayKey` integer, nullable: Day key (YYYYMMDD or internal day index)
  - `daysCount` integer
  - `startWorkDayKey` integer, nullable: Day key (YYYYMMDD or internal day index)
  - `userNote` string, nullable
  - `userAvailable` boolean, nullable
  - `status` string
  - `adminNote` string, nullable
  - `adminUID` string, uuid, nullable
  - `payment` 'created' | 'paid': `created` = "created", `paid` = "paid"
  - `statement` object, nullable
  - `updTS` integer: Unix timestamp in milliseconds
  - `updUID` string

## Response `200`

OK — `IServerResponse<UserTimeOff>`

- object
  - `code` integer, required
  - `data` UserTimeOff, required: Entity `UserTimeOff` (table: UserTimeOff )
    - `ID` string, uuid, required
    - `cID` string, uuid, required
    - `userID` string, uuid, required
    - `roleID` string, uuid, required
    - `type` string, required
    - `paid` boolean, nullable
    - `sickLeaveID` string, nullable
    - `statementFID` string, uuid, nullable
    - `statementOrgID` string, uuid, nullable
    - `statementSentTS` integer, nullable: Unix timestamp in milliseconds
    - `year` integer, required
    - `startDayKey` integer, required: Day key (YYYYMMDD or internal day index)
    - `endDayKey` integer, nullable: Day key (YYYYMMDD or internal day index)
    - `daysCount` integer, required
    - `startWorkDayKey` integer, nullable: Day key (YYYYMMDD or internal day index)
    - `userNote` string, nullable
    - `userAvailable` boolean, nullable
    - `status` string, required
    - `adminNote` string, nullable
    - `adminUID` string, uuid, nullable
    - `payment` 'created' | 'paid': `created` = "created", `paid` = "paid"
    - `statement` object, nullable
    - `updTS` integer, required: Unix timestamp in milliseconds
    - `updUID` string, required
  - `srvTS` integer, required: Server timestamp (ms)
  - `rkey` string, required: Request key

## Other responses

- `400`: BadRequest: Vacation planning unavailable (employment under 2 months), or requested days exceed available allowance
- `401`: Unauthorized: Active user session required
- `403`: AccessNotAllowed: Privilege user:timeoff required; user is blocked or does not have an active role in company
- `404`: NotFound: Target user does not have company access record
- `406`: TimeResync — расхождение rts с сервером
- `422`: UnprocessableContent: Invalid payload

---

[API](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api.md) · [All operations](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/kosmodrom/apis/kosmodrom-backend-api/revisions/a143b51ba29a?raw)
