---
title: "Create sick leave phase"
method: POST
path: "/sick-leave-phases"
tags: ["sick-leave-phases"]
---

# Create sick leave phase

`POST /sick-leave-phases`

## Request

- Base URL: `https://api.hoorayhr.io`
- URL: `https://api.hoorayhr.io/sick-leave-phases`
- Auth: API key in header `authorization`

Creates a new sick leave phase.

## Request body

- SickPhase
  - `sickLeaveDossierId` integer, required: Unique id of the sick leave dossier
  - `percentage` number, required: The percentage of hours worked during the period up to 2 decimals, which is used in the calculation of the hours
  - `startDate` string, date-time, required: The start date and time of the phase
  - `startDateEndTime` string, date-time, nullable: The so called end time of the phase's first day. It can be used to indicate being absent for a part of the day, if left empty the entire day will be used (based on "startDate")
  - `expectedReturn` string, date, nullable: The expected return date, as ISO date format (YYYY-MM-DD)
  - `status` 'REPORTED_SICK' | 'REPORTED_RECOVERY' | 'RECOVERED', required: The type of phase
  - `notes` string, long-text, nullable: A text field for storing things related to the phase
  - `labelIds` integer[], nullable: List of id's belonging to labels

## Response `201`

The created sick leave phase

- SickLeavePhasesResponse
  - `id` integer: Unique id of the sick leave phase
  - `sickLeaveDossierId` integer, required: Unique id of the sick leave dossier
  - `userIdReported` integer, nullable: Unique id of the user who reported the REPORTED_SICK phase
  - `userIdConfirmed` integer, nullable: Unique id of the user who confirmed the REPORTED_RECOVERY phase
  - `percentage` number, required: The percentage of hours worked during the period up to 2 decimals, which is used in the calculation of the hours
  - `expectedTotal` number, nullable: The amount of minutes the phase is expected to last based on the start date and expected return date
  - `calculatedExpectedTotal` number, nullable: Equal to "actualTotal" when set, otherwise equal to "expectedTotal" when set on create. This value is updated every night as long as "calculatedEndDate" isn't set
  - `actualTotal` number, nullable: The amount of minutes the phase lasts based on the start date and end date
  - `startDate` string, date-time, required: The start date and time of the phase
  - `startDateEndTime` string, date-time, nullable: The so called end time of the phase's first day. It can be used to indicate being absent for a part of the day, if left empty the entire day will be used (based on "startDate")
  - `expectedReturn` string, date, nullable: The expected return date, as ISO date format (YYYY-MM-DD)
  - `calculatedExpectedReturn` string, date, nullable: A date only version of "calculatedEndDate" when set, otherwise equal to "expectedReturn" when set on create. This value is updated to the current date every night as long as "calculatedEndDate" isn't set
  - `calculatedEndDate` string, date-time, nullable: The end date and time of the phase
  - `calculatedEndDateEndTime` string, date-time, nullable: The so called end time of the phase's end day. It can be used to indicate being absent for a part of the day, if left empty the "calculatedEndDate" should be seen as the end date of the phase
  - `status` 'REPORTED_SICK' | 'REPORTED_RECOVERY' | 'RECOVERED', required: The type of phase
  - `notes` string, long-text, nullable: A text field for storing things related to the phase
  - `createdAt` string, date-time: The creation date of the phase
  - `updatedAt` string, date-time: The date that the phase was last updated
  - `labels` Labels[]: **DEPRECATION NOTICE**: The object variant (containing the translated name per locale) for labels is deprecated and will be removed in the future. Use the simple string variant instead. Switching to the new string variant can be done by providing `useTranslatedLabels=true` as query parameter.
    - `id` integer: ID of the label
    - `documentCategoryId` integer, nullable: ID of the parent document category
    - `workflowCategoryId` integer, nullable: ID of the parent workflow category
    - `name` union, required: Either an object containing the translated name per locale or a simple string with name of the label. **DEPRECATION NOTICE**: The object variant (containing the translated name per locale) for labels is deprecated and will be removed in the future. Use the simple string variant instead. Switching to the new string variant can be done by providing `useTranslatedLabels=true` as query parameter.
      - string: Only for requests providing `useTranslatedLabels=true` as query parameter
      - object: Only for requests that do not provide `useTranslatedLabels=true` as query parameter
    - `type` 'ASSETS' | 'CONTRACTS' | 'DOCUMENTS' | 'EXPENSE_CLAIMS' | 'HOURS' | 'LEAVE' | 'SICK_LEAVE_PHASE' | 'TIME_TRACKING' | 'TRAVEL_EXPENSES' | 'WORKFLOWS', required: Enum of the service the label is assigned to
    - `systemCategoryType` 'car' | 'computer' | 'key' | 'tablet' | 'cell phone' | 'license' | 'fixed-term' | 'internship' | 'permanent' | 'parking costs' | 'food and drinks' | 'promotional gift' | 'office supplies' | 'cost of studies' | 'travel expenses' | 'commuting' | 'customer visit' | 'conference', nullable: System pre-defined labels get type
    - `archivedAt` string, date-time, nullable: Timestamp of label being archived
    - `createdAt` string, date-time: Creation date of the label
    - `updatedAt` string, date-time: Last updated date of the label
    - `deletedAt` string, date-time, nullable: Deleted date of the label

## Other responses

- `401`: Not authenticated
- `500`: General error

---

[API](https://skmtc.dev/hoorayhr/apis/hoorayhr-api-documentation.md) · [All operations](https://skmtc.dev/hoorayhr/apis/hoorayhr-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/hoorayhr/apis/hoorayhr-api-documentation/revisions/3adcd47cd827?raw)
