Sage

Accounting and business management software

developer.sage.com ↗
Version
1.0
OpenAPI
3.0.0
Endpoints
53
Schemas
70
74
Quality
Updated
3 days ago
Finance accounting finance business
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://subdomain.sage.hr/api

Endpoints

Documents 2 endpoints

POST /documents

Document will only be visible to employee themselves

operationId: Documents_createNewDocument

Request Body

required
multipart/form-data
schema DocumentsCreateNewDocumentRequest
Property Type Required
file string required
notify string optional
category_id integer optional
description string optional
employee_id integer required

Responses

201

Successful Response

POST /documents
GET /documents/categories
operationId: Documents_listCategories

Responses

200

Successful Response

GET /documents/categories

Employee 10 endpoints

GET /employees
operationId: Employee_listActiveEmployees

Parameters

Name In Required Type Description
page query optional integer
team_history query optional boolean
employment_status_history query optional boolean
position_history query optional boolean

Responses

200

Successful Response, team_history/employment_status_history/position_history collections are returned only if regarding optional paramters are provided in query

GET /employees
POST /employees
operationId: Employee_createNewEmployee

Request Body

required
application/x-www-form-urlencoded
schema EmployeeCreateNewEmployeeRequest
Property Type Required
email string required
last_name string required
first_name string required
send_email string optional
work_start_date string optional

Responses

201

Successful Response

POST /employees
GET /employees/{id}
operationId: Employee_getById

Parameters

Name In Required Type Description
id path required integer

Numeric ID of the user to get.

team_history query optional boolean
employment_status_history query optional boolean
position_history query optional boolean

Responses

200

Successful Response, team_history/employment_status_history/position_history collections are returned only if regarding optional paramters are provided in query

GET /employees/{id}
PUT /employees/{id}
operationId: Employee_updateById

Parameters

Name In Required Type Description
id path required integer

Numeric ID of the user to update.

Request Body

application/json
schema EmployeeUpdateByIdRequest
Property Type Required
team_id integer optional
last_name string optional
leader_id integer optional
first_name string optional
location_id integer optional
position_id integer optional
approver_ids array optional
employee_number string optional
work_start_date string optional
selected_leave_types array optional

Responses

202

Accepted

404

Not Found

PUT /employees/{id}
GET /employees/{id}/compensations
operationId: Employee_getCompensations

Parameters

Name In Required Type Description
id path required integer

Numeric ID of the user to get.

Responses

200

Successful Response

GET /employees/{id}/compensations
GET /employees/{id}/custom-fields
operationId: Employee_getCustomFields

Parameters

Name In Required Type Description
id path required integer

Numeric ID of the user to get.

Responses

200

Successful Response

GET /employees/{id}/custom-fields
PUT /employees/{id}/custom-fields/{custom_field_id}

Update employee custom field

operationId: Employee_updateCustomField

Parameters

Name In Required Type Description
id path required integer

Employee identifier

custom_field_id path required integer

Custom field identifier

Request Body

required
application/x-www-form-urlencoded
schema EmployeeUpdateCustomFieldRequest
Property Type Required
value string required

Responses

200

Successful Response

422

Unprocessable entity

PUT /employees/{id}/custom-fields/{custom_field_id}
POST /employees/{id}/terminations
operationId: Employee_terminateEmployee

Parameters

Name In Required Type Description
id path required integer

Numeric ID of the user

Request Body

required
application/x-www-form-urlencoded
schema EmployeeTerminateEmployeeRequest
Property Type Required
date string required
comments string optional
termination_reason_id number required

Responses

201

Successful Response

POST /employees/{id}/terminations
GET /terminated-employees
operationId: Employee_listTerminatedEmployees

Parameters

Name In Required Type Description
page query optional integer

Responses

200

Successful Response

GET /terminated-employees
GET /terminated-employees/{id}
operationId: Employee_getTerminatedEmployee

Parameters

Name In Required Type Description
id path required integer

Numeric ID of the user to get.

Responses

200

Successful Response

GET /terminated-employees/{id}

Integrations 12 endpoints

POST /vikarina/appointments
operationId: Integrations_transferAppointmentInfo

Parameters

Name In Required Type Description
start_date query optional string
end_date query optional string

Responses

200

Successful Response

POST /vikarina/appointments
POST /vikarina/bank-accounts
operationId: Integrations_transferBankAccountInfo

Responses

200

Successful Response

POST /vikarina/bank-accounts
POST /vikarina/bonuses
operationId: Integrations_sendBonusesToVikarina

Parameters

Name In Required Type Description
start_date query optional string
end_date query optional string

Responses

200

Successful Response

POST /vikarina/bonuses
POST /vikarina/contract-information
operationId: Integrations_transferContractInformationToVikarina

Responses

200

Successful Response

POST /vikarina/contract-information
POST /vikarina/job-positions
operationId: Integrations_transferJobPositionFromSageToVikarina

Responses

200

Successful Response

POST /vikarina/job-positions
POST /vikarina/leave-types
operationId: Integrations_transferLeaveInformationToVikarina

Parameters

Name In Required Type Description
start_date query optional string
end_date query optional string

Responses

200

Successful Response

POST /vikarina/leave-types
POST /vikarina/newstarter-employees
operationId: Integrations_importNewStartersList

Parameters

Name In Required Type Description
start_date query optional string
end_date query optional string

Responses

200

Successful Response

POST /vikarina/newstarter-employees
POST /vikarina/organization-structure
operationId: Integrations_transferOrganizationalStructureFromSageToVikarina

Responses

200

Successful Response

POST /vikarina/organization-structure
POST /vikarina/salaries
operationId: Integrations_transferSalaryInformation

Parameters

Name In Required Type Description
start_date query optional string
end_date query optional string

Responses

200

Successful Response

POST /vikarina/salaries
POST /vikarina/terminated-employees
operationId: Integrations_transferTerminationInfoToVikarina

Parameters

Name In Required Type Description
start_date query optional string
end_date query optional string

Responses

200

Successful Response

POST /vikarina/terminated-employees
POST /vikarina/timesheets
operationId: Integrations_transferTimeScheduleInformation

Parameters

Name In Required Type Description
start_date query optional string
end_date query optional string

Responses

200

Successful Response

POST /vikarina/timesheets
POST /vikarina/unused-days
operationId: Integrations_transferUnusedVacationDaysToVikarina

Responses

200

Successful Response

POST /vikarina/unused-days

Leavemanagement 11 endpoints

GET /employees/{id}/leave-management/balances
operationId: LeaveManagement_getTimeOffBalances

Parameters

Name In Required Type Description
id path required integer

Numeric ID of the user to get.

Responses

200

Successful Response

GET /employees/{id}/leave-management/balances
GET /leave-management/kit-days
operationId: LeaveManagement_getKitDays

Parameters

Name In Required Type Description
policy_id query required integer

Time-off policy identifier

employee_id query required integer

Employee identifier

Responses

200

Successful Response

GET /leave-management/kit-days
POST /leave-management/kit-days
operationId: LeaveManagement_createKitDay

Request Body

required
application/x-www-form-urlencoded
schema LeaveManagementCreateKitDayRequest
Property Type Required
date string optional
date_to string optional
date_from string optional
policy_id integer required
employee_id integer required

Responses

200

Successful Response

422

Unprocessable entity

POST /leave-management/kit-days
PATCH /leave-management/kit-days/{id}
operationId: LeaveManagement_processKitDay

Parameters

Name In Required Type Description
id path required integer

KIT day identifier

Request Body

required
application/x-www-form-urlencoded
schema LeaveManagementProcessKitDayRequest
Property Type Required
status string required

Responses

200

Successful Response

PATCH /leave-management/kit-days/{id}
GET /leave-management/out-of-office-today
operationId: LeaveManagement_listEmployeesOutToday

Parameters

Name In Required Type Description
date query optional string

Optional date, defauls to today

Responses

200

Successful Response

GET /leave-management/out-of-office-today
GET /leave-management/policies
operationId: LeaveManagement_listTimeOffPolicies

Responses

200

Successful Response

GET /leave-management/policies
GET /leave-management/policies/{id}
operationId: LeaveManagement_getTimeOffPolicyById

Parameters

Name In Required Type Description
id path required integer

Numeric ID of the policy to get.

Responses

200

Successful Response

GET /leave-management/policies/{id}
PATCH /leave-management/policies/{id}
operationId: LeaveManagement_updateKitDaysConfiguration

Parameters

Name In Required Type Description
id path required integer

Numeric ID of the policy to get.

Request Body

required
application/x-www-form-urlencoded
schema LeaveManagementUpdateKitDaysConfigurationRequest
Property Type Required
kit_days_enabled boolean required
kit_days_quantity integer required

Responses

200

Successful Response

422

Unprocessable entity

PATCH /leave-management/policies/{id}
GET /leave-management/reports/individual-allowances
operationId: LeaveManagement_getIndividualAllowances

Parameters

Name In Required Type Description
page query optional integer
per_page query optional integer
location_ids query optional array

Limit the reports to employees in specified location ids

employee_ids query optional array

Limit the reports to selected employee ids

team_ids query optional array

Limit the reports to employees in specified team ids

Responses

200

Successful Response

GET /leave-management/reports/individual-allowances
GET /leave-management/requests
operationId: LeaveManagement_listTimeOffRequests

Parameters

Name In Required Type Description
page query optional integer
from query optional string

If not specified defaults to beginning of current month

to query optional string

If not specified defaults to end of current month. Days between from date and to date must be less than 65. If you need info for larger period of time make multiple requests;

Responses

200

Successful Response

GET /leave-management/requests
POST /leave-management/requests
operationId: LeaveManagement_newTimeOffRequest

Request Body

required
application/x-www-form-urlencoded
schema LeaveManagementNewTimeOffRequestRequest
Property Type Required
date string optional
type string required
hours number optional
date_to string optional
details string optional
time_to string optional
date_from string optional
time_from string optional
employee_id integer required
part_of_day string required
time_off_policy_id integer required

Responses

201

Successful Response

422

Validation Failed Response

POST /leave-management/requests

Offboarding 2 endpoints

GET /offboarding/categories
operationId: Offboarding_listCategories

Responses

200

Successful Response

GET /offboarding/categories
POST /offboarding/tasks
operationId: Offboarding_createTask

Request Body

required
application/x-www-form-urlencoded
schema OffboardingCreateTaskRequest
Property Type Required
title string required
due_in number required
assignee_id number optional
description string optional
require_attachment string optional
default_assignee_type string optional
boarding_task_template_category_id number required

Responses

201

Successful Response

POST /offboarding/tasks

Onboarding 2 endpoints

GET /onboarding/categories
operationId: Onboarding_listTaskCategories

Responses

200

Successful Response

GET /onboarding/categories
POST /onboarding/tasks
operationId: Onboarding_createNewTask

Request Body

required
application/x-www-form-urlencoded
schema OnboardingCreateNewTaskRequest
Property Type Required
title string required
due_in number required
add_after number optional
assignee_id number optional
description string optional
require_attachment string optional
default_assignee_type string optional
boarding_task_template_category_id number required

Responses

201

Successful Response

POST /onboarding/tasks

Performance 4 endpoints

GET /performance/goals/quarterly-progress/company-goals
operationId: Performance_getQuarterlyCompanyGoals

Responses

200

Successful Response

GET /performance/goals/quarterly-progress/company-goals
GET /performance/goals/quarterly-progress/individual-goals
operationId: Performance_getQuarterlyIndividualGoals

Responses

200

Successful Response

GET /performance/goals/quarterly-progress/individual-goals
GET /performance/goals/quarterly-progress/overall
operationId: Performance_overviewQuarterlyProgress

Responses

200

Successful Response

GET /performance/goals/quarterly-progress/overall
GET /performance/goals/quarterly-progress/team-goals
operationId: Performance_getQuarterlyTeamGoals

Responses

200

Successful Response

GET /performance/goals/quarterly-progress/team-goals

Positions 1 endpoints

GET /positions
operationId: Positions_listCompanyPositions

Parameters

Name In Required Type Description
page query optional integer

Responses

200

Successful Response

GET /positions

Recruitment 6 endpoints

GET /recruitment/applicants/{id}
operationId: Recruitment_getApplicantDetails

Parameters

Name In Required Type Description
id path required integer

Numeric ID of applicant

Responses

200

Successful Response

GET /recruitment/applicants/{id}
GET /recruitment/applicants/{id}/actions

List applicant’s process throught the recruitment pipeline. Newest, first.

operationId: Recruitment_listApplicantActions

Parameters

Name In Required Type Description
id path required integer

Numeric ID of applicant

page query optional integer

Pagination: fetch page at given offset

per_page query optional integer

Pagination: amount of actions to return in 1 call, default: 30, max: 100

Responses

200

Successful Response

GET /recruitment/applicants/{id}/actions
GET /recruitment/positions

Posible recruitment position statuses: draft, published, internal, completed, cancelled

operationId: Recruitment_listPositions

Parameters

Name In Required Type Description
status query optional string

Filter by status, see list of possible statuses
?status=open

hiring_manager_ids query optional array

Filter by hiring manager id, can appear multiple times
hiring_manager_ids[]=251&hiring_manager_ids[]=121

group_ids query optional array

Filter by group id, can appear multiple times
group_ids[]=27&group_ids[]=761

location_ids query optional array

Filter by location id, can appear multiple times
location_ids[]=1&location_ids[]=12

page query optional integer

Pagination: fetch page at given offset

per_page query optional integer

Pagination: amount of positions to return in 1 call, default: 30, max: 100

Responses

200

Successful Response

GET /recruitment/positions
GET /recruitment/positions/{id}
operationId: Recruitment_getPositionDetails

Parameters

Name In Required Type Description
id path required integer

Numeric ID of position

Responses

200

Successful Response

GET /recruitment/positions/{id}
GET /recruitment/positions/{id}/applicants
operationId: Recruitment_listApplicants

Parameters

Name In Required Type Description
id path required integer

Numeric ID of position

stage_id query optional integer

Optional filter by stage e.g. ?stage_id=25

page query optional integer

Pagination: fetch page at given offset, default 1

per_page query optional integer

Pagination: amount of applicants to return in 1 call, default: 30, max: 100

Responses

200

Successful Response

GET /recruitment/positions/{id}/applicants
POST /recruitment/positions/{id}/applicants

Tracking applicant’s source:

  • if left blank, source will be automatically set to api
  • set source to a special keyword (company_marketing, recruiters, referral, sourced) to have it mapped to corresponding values
  • set source to a desired reference to create a custom source, e.g. source=linkedin will create a custom source called linkedin if it does not exist already
  • passing a referral object as a parameter will set the source to referral

Example of creating an applicant with a refferal object:

curl -X POST -H 'X-AUTH-TOKEN:***' -H 'Content-Type:application/json' \
  "https://***/api/recruitment/positions/2/applicants" \
  -d '{"applicant": \
          {"referral": {"email": "recruitment@example.com", "full_name": "Alice L"}, \
           "address": "BD23 8UL", "summary":"An applicant", \
           "first_name": "Applicant Name"}}'
operationId: Recruitment_createApplicantWithReferral

Parameters

Name In Required Type Description
id path required integer

Numeric ID of position (must not be closed or completed).

Request Body

multipart/form-data
schema RecruitmentCreateApplicantWithReferralRequest
Property Type Required
applicant[email] string optional
applicant[source] string optional
applicant[address] string optional
applicant[summary] string optional
applicant[referral] string optional
applicant[last_name] string optional
send_thank_you_email string optional
applicant[attachment] string optional
applicant[first_name] string required
applicant[phone_number] string optional

Responses

201

Successful Response

422

Validation

POST /recruitment/positions/{id}/applicants

Schemas

object DocumentsCreateNewDocumentRequest
{
  "type": "object",
  "required": [
    "file",
    "employee_id"
  ],
  "properties": {
    "file": {
      "type": "string",
      "format": "binary",
      "description": "The file to upload."
    },
    "notify": {
      "type": "string",
      "description": "'true' to notify employee by email"
    },
    "category_id": {
      "type": "integer",
      "description": "Category identifier, leave empty for default category"
    },
    "description": {
      "type": "string",
      "description": "Document description"
    },
    "employee_id": {
      "type": "integer",
      "description": "Employee identifier"
    }
  }
}
object DocumentsCreateNewDocumentResponse
{
  "type": "object",
  "example": {
    "data": {
      "id": 1
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "example": 1
        }
      }
    }
  }
}
object DocumentsListCategoriesResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 1,
        "name": "General",
        "documents_count": 10
      },
      {
        "id": 2,
        "name": "Job contracts",
        "documents_count": 1
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "General"
          },
          "documents_count": {
            "type": "number",
            "example": 10
          }
        }
      }
    }
  }
}
object EmployeeCreateNewEmployeeRequest
{
  "type": "object",
  "required": [
    "email",
    "first_name",
    "last_name"
  ],
  "properties": {
    "email": {
      "type": "string",
      "description": "Employees email"
    },
    "last_name": {
      "type": "string",
      "description": "Employees last name"
    },
    "first_name": {
      "type": "string",
      "description": "Employees first name"
    },
    "send_email": {
      "type": "string",
      "description": "'true' to send welcome email to employee"
    },
    "work_start_date": {
      "type": "string",
      "description": "Employees work start date, format: YYYY-MM-DD, leave empty to use todays date"
    }
  }
}
object EmployeeCreateNewEmployeeResponse
{
  "type": "object",
  "example": {
    "data": {
      "id": 1
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "example": 1
        }
      }
    }
  }
}
object EmployeeGetByIdResponse
{
  "type": "object",
  "example": {
    "data": {
      "id": 19,
      "city": "London",
      "team": "Sage HR",
      "email": "john@example.com",
      "gender": "Male",
      "country": "GB",
      "team_id": 6742,
      "position": "Api developer",
      "last_name": "Doe",
      "post_code": 99999,
      "first_name": "John",
      "home_phone": "555-0506",
      "work_phone": "555-0505",
      "picture_url": "https://example.com/john.png",
      "position_id": 123,
      "mobile_phone": "555-0507",
      "street_first": "84 Glenwood Street",
      "team_history": [
        {
          "team_id": 1,
          "end_date": "201-01-01",
          "team_name": "Some Team",
          "start_date": "2018-01-01"
        }
      ],
      "date_of_birth": "1991-02-13",
      "street_second": "Peoria",
      "employee_number": "A1",
      "position_history": [
        {
          "end_date": "201-01-01",
          "start_date": "2018-01-01",
          "position_id": 1,
          "position_code": "1234",
          "position_name": "Developer"
        }
      ],
      "employment_status": "Full-time",
      "employment_start_date": "2014-08-25",
      "reports_to_employee_id": 5,
      "employment_status_history": [
        {
          "end_date": "201-01-01",
          "start_date": "2018-01-01",
          "employment_status_id": 1,
          "employment_statu_name": "Full time"
        }
      ]
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "example": 19
        },
        "city": {
          "type": "string",
          "example": "London"
        },
        "team": {
          "type": "string",
          "example": "Sage HR"
        },
        "email": {
          "type": "string",
          "example": "john@example.com"
        },
        "gender": {
          "type": "string",
          "example": "Male"
        },
        "country": {
          "type": "string",
          "example": "GB"
        },
        "team_id": {
          "type": "number",
          "example": 6742
        },
        "position": {
          "type": "string",
          "example": "Api developer"
        },
        "last_name": {
          "type": "string",
          "example": "Doe"
        },
        "post_code": {
          "type": "number",
          "example": 99999
        },
        "first_name": {
          "type": "string",
          "example": "John"
        },
        "home_phone": {
          "type": "string",
          "example": "555-0506"
        },
        "work_phone": {
          "type": "string",
          "example": "555-0505"
        },
        "picture_url": {
          "type": "string",
          "example": "https://example.com/john.png"
        },
        "position_id": {
          "type": "number",
          "example": 123
        },
        "mobile_phone": {
          "type": "string",
          "example": "555-0507"
        },
        "street_first": {
          "type": "string",
          "example": "84 Glenwood Street"
        },
        "team_history": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "team_id": {
                "type": "number",
                "example": 1
              },
              "end_date": {
                "type": "string",
                "example": "201-01-01"
              },
              "team_name": {
                "type": "string",
                "example": "Some Team"
              },
              "start_date": {
                "type": "string",
                "example": "2018-01-01"
              }
            }
          }
        },
        "date_of_birth": {
          "type": "string",
          "example": "1991-02-13"
        },
        "street_second": {
          "type": "string",
          "example": "Peoria"
        },
        "employee_number": {
          "type": "string",
          "example": "A1"
        },
        "position_history": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "end_date": {
                "type": "string",
                "example": "201-01-01"
              },
              "start_date": {
                "type": "string",
                "example": "2018-01-01"
              },
              "position_id": {
                "type": "number",
                "example": 1
              },
              "position_code": {
                "type": "string",
                "example": "1234"
              },
              "position_name": {
                "type": "string",
                "example": "Developer"
              }
            }
          }
        },
        "employment_status": {
          "type": "string",
          "example": "Full-time"
        },
        "employment_start_date": {
          "type": "string",
          "example": "2014-08-25"
        },
        "reports_to_employee_id": {
          "type": "number",
          "example": 5
        },
        "employment_status_history": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "end_date": {
                "type": "string",
                "example": "201-01-01"
              },
              "start_date": {
                "type": "string",
                "example": "2018-01-01"
              },
              "employment_status_id": {
                "type": "number",
                "example": 1
              },
              "employment_statu_name": {
                "type": "string",
                "example": "Full time"
              }
            }
          }
        }
      }
    }
  }
}
object EmployeeGetCompensationsResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "amount": 1234,
        "period": "monthly",
        "comment": "Starting salary",
        "category": "Salary",
        "currency": "EUR",
        "end_date": "2019-01-01",
        "start_date": "2017-01-01"
      }
    ],
    "meta": {
      "per_page": 50,
      "next_page": 2,
      "total_pages": 2,
      "current_page": 1,
      "previous_page": null,
      "total_entries": 75
    }
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "example": 1234
          },
          "period": {
            "type": "string",
            "example": "monthly"
          },
          "comment": {
            "type": "string",
            "example": "Starting salary"
          },
          "category": {
            "type": "string",
            "example": "Salary"
          },
          "currency": {
            "type": "string",
            "example": "EUR"
          },
          "end_date": {
            "type": "string",
            "example": "2019-01-01"
          },
          "start_date": {
            "type": "string",
            "example": "2017-01-01"
          }
        }
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "per_page": {
          "type": "number",
          "example": 50
        },
        "next_page": {
          "type": "number",
          "example": 2
        },
        "total_pages": {
          "type": "number",
          "example": 2
        },
        "current_page": {
          "type": "number",
          "example": 1
        },
        "previous_page": {
          "type": "string",
          "nullable": true,
          "x-konfig-null-placeholder": true
        },
        "total_entries": {
          "type": "number",
          "example": 75
        }
      }
    }
  }
}
object EmployeeGetCustomFieldsResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 1,
        "type": "CustomDropdownField",
        "label": "Hobby",
        "value": "Hockey",
        "options": [
          "Hockey",
          "Football",
          "Voleyball"
        ]
      },
      {
        "id": 2,
        "type": "CustomTags",
        "label": "Languages",
        "value": [
          "English",
          "Latvian",
          "Estonian"
        ],
        "options": null
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 1
          },
          "type": {
            "type": "string",
            "example": "CustomDropdownField"
          },
          "label": {
            "type": "string",
            "example": "Hobby"
          },
          "value": {
            "oneOf": [
              {
                "type": "string",
                "example": "Hockey"
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "English"
                }
              }
            ]
          },
          "options": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "Hockey"
            },
            "nullable": true
          }
        }
      }
    }
  }
}
object EmployeeGetTerminatedEmployeeResponse
{
  "type": "object",
  "example": {
    "data": {
      "id": 19,
      "email": "john@example.com",
      "position": "Api developer",
      "last_name": "Doe",
      "first_name": "John",
      "picture_url": "https://example.com/john.png",
      "termination": {
        "reason": "Moving location",
        "comments": "Moving to"
      },
      "date_of_birth": "1991-02-13",
      "termination_date": "2015-05-28",
      "employment_start_date": "2014-08-25"
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "example": 19
        },
        "email": {
          "type": "string",
          "example": "john@example.com"
        },
        "position": {
          "type": "string",
          "example": "Api developer"
        },
        "last_name": {
          "type": "string",
          "example": "Doe"
        },
        "first_name": {
          "type": "string",
          "example": "John"
        },
        "picture_url": {
          "type": "string",
          "example": "https://example.com/john.png"
        },
        "termination": {
          "type": "object",
          "properties": {
            "reason": {
              "type": "string",
              "example": "Moving location"
            },
            "comments": {
              "type": "string",
              "example": "Moving to"
            }
          }
        },
        "date_of_birth": {
          "type": "string",
          "example": "1991-02-13"
        },
        "termination_date": {
          "type": "string",
          "example": "2015-05-28"
        },
        "employment_start_date": {
          "type": "string",
          "example": "2014-08-25"
        }
      }
    }
  }
}
object EmployeeListActiveEmployeesResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 19,
        "city": "London",
        "team": "Sage HR",
        "email": "john@example.com",
        "gender": "Male",
        "country": "GB",
        "team_id": 1,
        "position": "Api developer",
        "last_name": "Doe",
        "post_code": 99999,
        "first_name": "John",
        "home_phone": "555-0506",
        "work_phone": "555-0505",
        "picture_url": "https://example.com/john.png",
        "position_id": 123,
        "mobile_phone": "555-0507",
        "street_first": "84 Glenwood Street",
        "team_history": [
          {
            "team_id": 1,
            "end_date": "201-01-01",
            "team_name": "Some Team",
            "start_date": "2018-01-01"
          }
        ],
        "date_of_birth": "1991-02-13",
        "street_second": "Peoria",
        "employee_number": "A01",
        "position_history": [
          {
            "end_date": "201-01-01",
            "start_date": "2018-01-01",
            "position_id": 1,
            "position_code": "1234",
            "position_name": "Developer"
          }
        ],
        "employment_status": "Full-time",
        "employment_start_date": "2014-08-25",
        "reports_to_employee_id": 5,
        "employment_status_history": [
          {
            "end_date": "201-01-01",
            "start_date": "2018-01-01",
            "employment_status_id": 1,
            "employment_statu_name": "Full time"
          }
        ]
      }
    ],
    "meta": {
      "per_page": 50,
      "next_page": 2,
      "total_pages": 2,
      "current_page": 1,
      "previous_page": null,
      "total_entries": 75
    }
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 19
          },
          "city": {
            "type": "string",
            "example": "London"
          },
          "team": {
            "type": "string",
            "example": "Sage HR"
          },
          "email": {
            "type": "string",
            "example": "john@example.com"
          },
          "gender": {
            "type": "string",
            "example": "Male"
          },
          "country": {
            "type": "string",
            "example": "GB"
          },
          "team_id": {
            "type": "number",
            "example": 1
          },
          "position": {
            "type": "string",
            "example": "Api developer"
          },
          "last_name": {
            "type": "string",
            "example": "Doe"
          },
          "post_code": {
            "type": "number",
            "example": 99999
          },
          "first_name": {
            "type": "string",
            "example": "John"
          },
          "home_phone": {
            "type": "string",
            "example": "555-0506"
          },
          "work_phone": {
            "type": "string",
            "example": "555-0505"
          },
          "picture_url": {
            "type": "string",
            "example": "https://example.com/john.png"
          },
          "position_id": {
            "type": "number",
            "example": 123
          },
          "mobile_phone": {
            "type": "string",
            "example": "555-0507"
          },
          "street_first": {
            "type": "string",
            "example": "84 Glenwood Street"
          },
          "team_history": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "team_id": {
                  "type": "number",
                  "example": 1
                },
                "end_date": {
                  "type": "string",
                  "example": "201-01-01"
                },
                "team_name": {
                  "type": "string",
                  "example": "Some Team"
                },
                "start_date": {
                  "type": "string",
                  "example": "2018-01-01"
                }
              }
            }
          },
          "date_of_birth": {
            "type": "string",
            "example": "1991-02-13"
          },
          "street_second": {
            "type": "string",
            "example": "Peoria"
          },
          "employee_number": {
            "type": "string",
            "example": "A01"
          },
          "position_history": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "end_date": {
                  "type": "string",
                  "example": "201-01-01"
                },
                "start_date": {
                  "type": "string",
                  "example": "2018-01-01"
                },
                "position_id": {
                  "type": "number",
                  "example": 1
                },
                "position_code": {
                  "type": "string",
                  "example": "1234"
                },
                "position_name": {
                  "type": "string",
                  "example": "Developer"
                }
              }
            }
          },
          "employment_status": {
            "type": "string",
            "example": "Full-time"
          },
          "employment_start_date": {
            "type": "string",
            "example": "2014-08-25"
          },
          "reports_to_employee_id": {
            "type": "number",
            "example": 5
          },
          "employment_status_history": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "end_date": {
                  "type": "string",
                  "example": "201-01-01"
                },
                "start_date": {
                  "type": "string",
                  "example": "2018-01-01"
                },
                "employment_status_id": {
                  "type": "number",
                  "example": 1
                },
                "employment_statu_name": {
                  "type": "string",
                  "example": "Full time"
                }
              }
            }
          }
        }
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "per_page": {
          "type": "number",
          "example": 50
        },
        "next_page": {
          "type": "number",
          "example": 2
        },
        "total_pages": {
          "type": "number",
          "example": 2
        },
        "current_page": {
          "type": "number",
          "example": 1
        },
        "previous_page": {
          "type": "string",
          "nullable": true,
          "x-konfig-null-placeholder": true
        },
        "total_entries": {
          "type": "number",
          "example": 75
        }
      }
    }
  }
}
object EmployeeListTerminatedEmployeesResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 19,
        "email": "john@example.com",
        "position": "Api developer",
        "last_name": "Doe",
        "first_name": "John",
        "picture_url": "https://example.com/john.png",
        "date_of_birth": "1991-02-13",
        "employee_number": "123",
        "termination_date": "2015-05-28",
        "employment_start_date": "2014-08-25"
      }
    ],
    "meta": {
      "per_page": 50,
      "next_page": 2,
      "total_pages": 2,
      "current_page": 1,
      "previous_page": null,
      "total_entries": 75
    }
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 19
          },
          "email": {
            "type": "string",
            "example": "john@example.com"
          },
          "position": {
            "type": "string",
            "example": "Api developer"
          },
          "last_name": {
            "type": "string",
            "example": "Doe"
          },
          "first_name": {
            "type": "string",
            "example": "John"
          },
          "picture_url": {
            "type": "string",
            "example": "https://example.com/john.png"
          },
          "date_of_birth": {
            "type": "string",
            "example": "1991-02-13"
          },
          "employee_number": {
            "type": "string",
            "example": "123"
          },
          "termination_date": {
            "type": "string",
            "example": "2015-05-28"
          },
          "employment_start_date": {
            "type": "string",
            "example": "2014-08-25"
          }
        }
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "per_page": {
          "type": "number",
          "example": 50
        },
        "next_page": {
          "type": "number",
          "example": 2
        },
        "total_pages": {
          "type": "number",
          "example": 2
        },
        "current_page": {
          "type": "number",
          "example": 1
        },
        "previous_page": {
          "type": "string",
          "nullable": true,
          "x-konfig-null-placeholder": true
        },
        "total_entries": {
          "type": "number",
          "example": 75
        }
      }
    }
  }
}
object EmployeeTerminateEmployeeRequest
{
  "type": "object",
  "required": [
    "date",
    "termination_reason_id"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "Last working day; format: YYYY-MM-DD"
    },
    "comments": {
      "type": "string",
      "description": "Comments"
    },
    "termination_reason_id": {
      "type": "number",
      "description": "Termination reason ID"
    }
  }
}
object EmployeeTerminateEmployeeResponse
{
  "type": "object",
  "example": {
    "data": {}
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {}
    }
  }
}
object EmployeeUpdateById404Response
{
  "type": "object",
  "example": {
    "errors": [],
    "error_code": "not_found"
  },
  "properties": {
    "errors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "error_code": {
      "type": "string",
      "example": "not_found"
    }
  }
}
object EmployeeUpdateByIdRequest
{
  "type": "object",
  "properties": {
    "team_id": {
      "type": "integer",
      "example": 2
    },
    "last_name": {
      "type": "string",
      "example": "Doe"
    },
    "leader_id": {
      "type": "integer",
      "example": 3
    },
    "first_name": {
      "type": "string",
      "example": "Jane"
    },
    "location_id": {
      "type": "integer",
      "example": 1
    },
    "position_id": {
      "type": "integer",
      "example": 101
    },
    "approver_ids": {
      "type": "array",
      "items": {
        "type": "integer",
        "example": 1
      }
    },
    "employee_number": {
      "type": "string",
      "example": "0123456"
    },
    "work_start_date": {
      "type": "string",
      "example": "2020-01-28"
    },
    "selected_leave_types": {
      "type": "array",
      "items": {
        "type": "integer",
        "example": 2
      }
    }
  }
}
object EmployeeUpdateByIdResponse
{
  "type": "object",
  "example": {
    "data": {
      "id": 1711
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "example": 1711
        }
      }
    }
  }
}
object EmployeeUpdateCustomField422Response
{
  "type": "object",
  "example": {
    "errors": [
      "Custom field text too long (max 250 characters)"
    ],
    "error_code": "validation_failed"
  },
  "properties": {
    "errors": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "Custom field text too long (max 250 characters)"
      }
    },
    "error_code": {
      "type": "string",
      "example": "validation_failed"
    }
  }
}
object EmployeeUpdateCustomFieldRequest
{
  "type": "object",
  "required": [
    "value"
  ],
  "properties": {
    "value": {
      "type": "string",
      "description": "String or array (for tags)"
    }
  }
}
object EmployeeUpdateCustomFieldResponse
{
  "type": "object",
  "example": {
    "data": null
  },
  "properties": {
    "data": {
      "type": "string",
      "nullable": true,
      "x-konfig-null-placeholder": true
    }
  }
}
object IntegrationsImportNewStartersListResponse
{
  "type": "object",
  "example": {
    "data": {
      "npd": "NPD",
      "email": "test@test.com",
      "gender": "male",
      "status": 1,
      "address": "Street 1, City",
      "home_city": "employee home city (custom_field)",
      "last_name": "Doe",
      "country_id": "country id (GB)",
      "first_name": "John",
      "employee_id": 1,
      "personal_code": "personal code (custom_field)",
      "employee_number": 123,
      "work_start_date": "2020-10-10T00:00:00.000Z",
      "social_security_code": "social security code (custom_field)"
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "npd": {
          "type": "string",
          "example": "NPD"
        },
        "email": {
          "type": "string",
          "example": "test@test.com"
        },
        "gender": {
          "type": "string",
          "example": "male"
        },
        "status": {
          "type": "number",
          "example": 1
        },
        "address": {
          "type": "string",
          "example": "Street 1, City"
        },
        "home_city": {
          "type": "string",
          "example": "employee home city (custom_field)"
        },
        "last_name": {
          "type": "string",
          "example": "Doe"
        },
        "country_id": {
          "type": "string",
          "example": "country id (GB)"
        },
        "first_name": {
          "type": "string",
          "example": "John"
        },
        "employee_id": {
          "type": "number",
          "example": 1
        },
        "personal_code": {
          "type": "string",
          "example": "personal code (custom_field)"
        },
        "employee_number": {
          "type": "number",
          "example": 123
        },
        "work_start_date": {
          "type": "string",
          "example": "2020-10-10T00:00:00.000Z"
        },
        "social_security_code": {
          "type": "string",
          "example": "social security code (custom_field)"
        }
      }
    }
  }
}
object IntegrationsSendBonusesToVikarinaResponse
{
  "type": "object",
  "example": {
    "data": {
      "type": "Bonus",
      "amount": 1000,
      "status": 1,
      "end_date": "2020-10-10",
      "start_date": "2020-09-10",
      "compensation_id": 1,
      "contract_number": "contract number (custom_field)",
      "employee_number": 123
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "example": "Bonus"
        },
        "amount": {
          "type": "number",
          "example": 1000
        },
        "status": {
          "type": "number",
          "example": 1
        },
        "end_date": {
          "type": "string",
          "example": "2020-10-10"
        },
        "start_date": {
          "type": "string",
          "example": "2020-09-10"
        },
        "compensation_id": {
          "type": "number",
          "example": 1
        },
        "contract_number": {
          "type": "string",
          "example": "contract number (custom_field)"
        },
        "employee_number": {
          "type": "number",
          "example": 123
        }
      }
    }
  }
}
object IntegrationsTransferAppointmentInfoResponse
{
  "type": "object",
  "example": {
    "data": {
      "status": 1,
      "job_type": "job type (custom_field)",
      "employee_id": 1,
      "position_id": 1,
      "schedule_id": "scheduled id (custom_field)",
      "employee_number": 123,
      "work_start_date": "2020-01-10",
      "cost_center_code": "cost center code (custom_field)",
      "employment_status": "Full-time",
      "position_start_date": "2020-10-10",
      "last_position_end_date": "2020-09-10"
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number",
          "example": 1
        },
        "job_type": {
          "type": "string",
          "example": "job type (custom_field)"
        },
        "employee_id": {
          "type": "number",
          "example": 1
        },
        "position_id": {
          "type": "number",
          "example": 1
        },
        "schedule_id": {
          "type": "string",
          "example": "scheduled id (custom_field)"
        },
        "employee_number": {
          "type": "number",
          "example": 123
        },
        "work_start_date": {
          "type": "string",
          "example": "2020-01-10"
        },
        "cost_center_code": {
          "type": "string",
          "example": "cost center code (custom_field)"
        },
        "employment_status": {
          "type": "string",
          "example": "Full-time"
        },
        "position_start_date": {
          "type": "string",
          "example": "2020-10-10"
        },
        "last_position_end_date": {
          "type": "string",
          "example": "2020-09-10"
        }
      }
    }
  }
}
object IntegrationsTransferBankAccountInfoResponse
{
  "type": "object",
  "example": {
    "data": {
      "status": 1,
      "bank_code": "bank code (custom_field)",
      "employee_id": 1,
      "last_change": "2020-09-10",
      "bank_account": "bank account (custom_field)",
      "employee_number": 123
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number",
          "example": 1
        },
        "bank_code": {
          "type": "string",
          "example": "bank code (custom_field)"
        },
        "employee_id": {
          "type": "number",
          "example": 1
        },
        "last_change": {
          "type": "string",
          "example": "2020-09-10"
        },
        "bank_account": {
          "type": "string",
          "example": "bank account (custom_field)"
        },
        "employee_number": {
          "type": "number",
          "example": 123
        }
      }
    }
  }
}
object IntegrationsTransferContractInformationToVikarinaResponse
{
  "type": "object",
  "example": {
    "data": {
      "status": 1,
      "employee_id": 1,
      "contract_type": "contract type (custom_field)",
      "contract_number": "contract number (custom_field)",
      "employee_number": 123,
      "work_start_date": "2020-10-10T00:00:00.000Z",
      "termination_date": "2020-10-11T00:00:00.000Z",
      "employment_status": "Full-time"
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number",
          "example": 1
        },
        "employee_id": {
          "type": "number",
          "example": 1
        },
        "contract_type": {
          "type": "string",
          "example": "contract type (custom_field)"
        },
        "contract_number": {
          "type": "string",
          "example": "contract number (custom_field)"
        },
        "employee_number": {
          "type": "number",
          "example": 123
        },
        "work_start_date": {
          "type": "string",
          "example": "2020-10-10T00:00:00.000Z"
        },
        "termination_date": {
          "type": "string",
          "example": "2020-10-11T00:00:00.000Z"
        },
        "employment_status": {
          "type": "string",
          "example": "Full-time"
        }
      }
    }
  }
}
object IntegrationsTransferJobPositionFromSageToVikarinaResponse
{
  "type": "object",
  "example": {
    "data": {
      "id": 1,
      "title": "Job title",
      "status": 1
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "example": 1
        },
        "title": {
          "type": "string",
          "example": "Job title"
        },
        "status": {
          "type": "number",
          "example": 1
        }
      }
    }
  }
}
object IntegrationsTransferLeaveInformationToVikarinaResponse
{
  "type": "object",
  "example": {
    "data": {
      "days": 2,
      "status": 1,
      "end_date": "2020-10-10",
      "leave_type": "Vacation",
      "start_date": "2020-10-10",
      "employee_number": 123,
      "calendar_event_id": 1
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "days": {
          "type": "number",
          "example": 2
        },
        "status": {
          "type": "number",
          "example": 1
        },
        "end_date": {
          "type": "string",
          "example": "2020-10-10"
        },
        "leave_type": {
          "type": "string",
          "example": "Vacation"
        },
        "start_date": {
          "type": "string",
          "example": "2020-10-10"
        },
        "employee_number": {
          "type": "number",
          "example": 123
        },
        "calendar_event_id": {
          "type": "number",
          "example": 1
        }
      }
    }
  }
}
object IntegrationsTransferOrganizationalStructureFromSageToVikarinaResponse
{
  "type": "object",
  "example": {
    "data": {
      "status": 1,
      "work_city": "employee city (custom_field)",
      "employee_id": 1,
      "section_code": "section code (custom_field)",
      "work_address": "employee address (custom_field)",
      "section_title": "section title (custom_field)",
      "department_code": "department code (custom_field)",
      "department_name": "department name (custom_field)",
      "subsection_code": "subsection code (custom_field)",
      "cost_center_code": "cost center code (custom_field)",
      "subsection_title": "Test Team",
      "cost_center_title": "cost center tile (custom_field)"
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number",
          "example": 1
        },
        "work_city": {
          "type": "string",
          "example": "employee city (custom_field)"
        },
        "employee_id": {
          "type": "number",
          "example": 1
        },
        "section_code": {
          "type": "string",
          "example": "section code (custom_field)"
        },
        "work_address": {
          "type": "string",
          "example": "employee address (custom_field)"
        },
        "section_title": {
          "type": "string",
          "example": "section title (custom_field)"
        },
        "department_code": {
          "type": "string",
          "example": "department code (custom_field)"
        },
        "department_name": {
          "type": "string",
          "example": "department name (custom_field)"
        },
        "subsection_code": {
          "type": "string",
          "example": "subsection code (custom_field)"
        },
        "cost_center_code": {
          "type": "string",
          "example": "cost center code (custom_field)"
        },
        "subsection_title": {
          "type": "string",
          "example": "Test Team"
        },
        "cost_center_title": {
          "type": "string",
          "example": "cost center tile (custom_field)"
        }
      }
    }
  }
}
object IntegrationsTransferSalaryInformationResponse
{
  "type": "object",
  "example": {
    "data": {
      "type": "Salary",
      "amount": 1000,
      "status": 1,
      "end_date": "2020-10-10",
      "start_date": "2020-09-10",
      "compensation_id": 1,
      "contract_number": "contract number (custom_field)",
      "employee_number": 123
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "example": "Salary"
        },
        "amount": {
          "type": "number",
          "example": 1000
        },
        "status": {
          "type": "number",
          "example": 1
        },
        "end_date": {
          "type": "string",
          "example": "2020-10-10"
        },
        "start_date": {
          "type": "string",
          "example": "2020-09-10"
        },
        "compensation_id": {
          "type": "number",
          "example": 1
        },
        "contract_number": {
          "type": "string",
          "example": "contract number (custom_field)"
        },
        "employee_number": {
          "type": "number",
          "example": 123
        }
      }
    }
  }
}
object IntegrationsTransferTerminationInfoToVikarinaResponse
{
  "type": "object",
  "example": {
    "data": {
      "status": 1,
      "employee_id": 1,
      "unused_days": 5,
      "compensation": 1000,
      "contract_number": "contract number (custom_field)",
      "employee_number": 123,
      "termination_date": "2020-09-10",
      "termination_reason": "New job",
      "termination_comment": "Was good employee"
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "status": {
          "type": "number",
          "example": 1
        },
        "employee_id": {
          "type": "number",
          "example": 1
        },
        "unused_days": {
          "type": "number",
          "example": 5
        },
        "compensation": {
          "type": "number",
          "example": 1000
        },
        "contract_number": {
          "type": "string",
          "example": "contract number (custom_field)"
        },
        "employee_number": {
          "type": "number",
          "example": 123
        },
        "termination_date": {
          "type": "string",
          "example": "2020-09-10"
        },
        "termination_reason": {
          "type": "string",
          "example": "New job"
        },
        "termination_comment": {
          "type": "string",
          "example": "Was good employee"
        }
      }
    }
  }
}
object IntegrationsTransferTimeScheduleInformationResponse
{
  "type": "object",
  "example": {
    "data": {
      "date": "2020-10-10",
      "hours": 8.5,
      "status": 1,
      "stand_by": 8,
      "nightours": 0.5,
      "employee_id": 1,
      "overtime_title": 0.5,
      "employee_number": 123,
      "cost_center_code": "cost center code (custom field)"
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "example": "2020-10-10"
        },
        "hours": {
          "type": "number",
          "example": 8.5
        },
        "status": {
          "type": "number",
          "example": 1
        },
        "stand_by": {
          "type": "number",
          "example": 8
        },
        "nightours": {
          "type": "number",
          "example": 0.5
        },
        "employee_id": {
          "type": "number",
          "example": 1
        },
        "overtime_title": {
          "type": "number",
          "example": 0.5
        },
        "employee_number": {
          "type": "number",
          "example": 123
        },
        "cost_center_code": {
          "type": "string",
          "example": "cost center code (custom field)"
        }
      }
    }
  }
}
object IntegrationsTransferUnusedVacationDaysToVikarinaResponse
{
  "type": "object",
  "example": {
    "data": {
      "date": "2020-10-10",
      "status": 1,
      "employee_id": 1,
      "unused_days": 5,
      "employee_number": 123
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "date": {
          "type": "string",
          "example": "2020-10-10"
        },
        "status": {
          "type": "number",
          "example": 1
        },
        "employee_id": {
          "type": "number",
          "example": 1
        },
        "unused_days": {
          "type": "number",
          "example": 5
        },
        "employee_number": {
          "type": "number",
          "example": 123
        }
      }
    }
  }
}
object LeaveManagementCreateKitDay422Response
{
  "type": "object",
  "example": {
    "errors": [
      "First error",
      "Second error"
    ],
    "error_code": "validation_failed"
  },
  "properties": {
    "errors": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "First error"
      }
    },
    "error_code": {
      "type": "string",
      "example": "validation_failed"
    }
  }
}
object LeaveManagementCreateKitDayRequest
{
  "type": "object",
  "required": [
    "policy_id",
    "employee_id"
  ],
  "properties": {
    "date": {
      "type": "string",
      "example": "2020-01-01",
      "description": "Date of single-day KIT day"
    },
    "date_to": {
      "type": "string",
      "example": "2020-01-01",
      "description": "End date of a multi-day KIT day"
    },
    "date_from": {
      "type": "string",
      "example": "2020-01-01",
      "description": "Start date of a multi-day KIT day"
    },
    "policy_id": {
      "type": "integer",
      "description": "Time-off policy identifier"
    },
    "employee_id": {
      "type": "integer",
      "description": "Employee identifier"
    }
  }
}
object LeaveManagementCreateKitDayResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 1
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 1
          }
        }
      }
    }
  }
}
object LeaveManagementGetIndividualAllowancesResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 11,
        "full_name": "Joe Doe",
        "eligibilities": [
          {
            "unit": "days",
            "policy": {
              "id": 2,
              "name": "Sickday"
            },
            "quantity": "0.0",
            "carryover": "0.0"
          },
          {
            "unit": "days",
            "policy": {
              "id": 1,
              "name": "Vacation"
            },
            "quantity": "25.0",
            "carryover": "100.0"
          }
        ]
      },
      {
        "id": 13,
        "full_name": "Jane Doe",
        "eligibilities": [
          {
            "unit": "days",
            "policy": {
              "id": 4,
              "name": "Custom Policy"
            },
            "quantity": "0.0",
            "carryover": "0.0"
          },
          {
            "unit": "days",
            "policy": {
              "id": 1,
              "name": "Vacation"
            },
            "quantity": "25.0",
            "carryover": "100.0"
          }
        ]
      }
    ],
    "meta": {
      "per_page": 25,
      "next_page": null,
      "total_pages": 1,
      "current_page": 1,
      "previous_page": null,
      "total_entries": 1
    }
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 11
          },
          "full_name": {
            "type": "string",
            "example": "Joe Doe"
          },
          "eligibilities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "unit": {
                  "type": "string",
                  "example": "days"
                },
                "policy": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "number",
                      "example": 2
                    },
                    "name": {
                      "type": "string",
                      "example": "Sickday"
                    }
                  }
                },
                "quantity": {
                  "type": "string",
                  "example": "0.0"
                },
                "carryover": {
                  "type": "string",
                  "example": "0.0"
                }
              }
            }
          }
        }
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "per_page": {
          "type": "number",
          "example": 25
        },
        "next_page": {
          "type": "string",
          "nullable": true,
          "x-konfig-null-placeholder": true
        },
        "total_pages": {
          "type": "number",
          "example": 1
        },
        "current_page": {
          "type": "number",
          "example": 1
        },
        "previous_page": {
          "type": "string",
          "nullable": true,
          "x-konfig-null-placeholder": true
        },
        "total_entries": {
          "type": "number",
          "example": 1
        }
      }
    }
  }
}
object LeaveManagementGetKitDaysResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 1,
        "status": "declined",
        "end_date": "2021-03-10",
        "start_date": "2021-03-09"
      },
      {
        "id": 2,
        "status": "approved",
        "end_date": "2021-03-10",
        "start_date": "2021-03-09"
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 1
          },
          "status": {
            "type": "string",
            "example": "declined"
          },
          "end_date": {
            "type": "string",
            "example": "2021-03-10"
          },
          "start_date": {
            "type": "string",
            "example": "2021-03-09"
          }
        }
      }
    }
  }
}
object LeaveManagementGetTimeOffBalancesResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "used": 5.6,
        "available": 2,
        "policy_id": 1
      },
      {
        "used": 75,
        "available": null,
        "policy_id": 2
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "used": {
            "type": "number",
            "example": 5.6
          },
          "available": {
            "type": "number",
            "example": 2,
            "nullable": true
          },
          "policy_id": {
            "type": "number",
            "example": 1
          }
        }
      }
    }
  }
}
object LeaveManagementGetTimeOffPolicyByIdResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 1,
        "name": "Vacation",
        "unit": "days",
        "color": "#3a7dd8",
        "no_reset": false,
        "accrue_type": "yearly",
        "max_accrual": false,
        "auto_approves": false,
        "do_not_accrue": false,
        "max_carryover": "100.0",
        "blocks_enabled": false,
        "enable_details": true,
        "only_full_days": false,
        "accrue_at_start": true,
        "require_details": false,
        "additional_field": true,
        "default_allowance": "25.0",
        "enable_attachment": false,
        "enable_replacement": false,
        "enable_limited_days": false,
        "enable_minimum_days": false,
        "replacement_required": false,
        "enable_employee_access": true,
        "child_allowance_enabled": false,
        "enable_probation_period": false,
        "enable_replacement_away": false,
        "enable_service_accruals": false,
        "enable_dependent_policy\"": false,
        "enable_monthly_expiration": false,
        "enable_negative_carryover": false,
        "enable_specific_approvers": false,
        "termination_recalculation": true,
        "dont_allow_negative_amount": false,
        "enable_duplicate_time_offs": false,
        "enable_scopped_replacement": false,
        "override_approvers_enabled": false,
        "requests_in_advance_required": false,
        "starter_yearly_accrual_limitation": false,
        "starter_monthly_accrual_limitation": false
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "Vacation"
          },
          "unit": {
            "type": "string",
            "example": "days"
          },
          "color": {
            "type": "string",
            "example": "#3a7dd8"
          },
          "no_reset": {
            "type": "boolean",
            "example": false
          },
          "accrue_type": {
            "type": "string",
            "example": "yearly"
          },
          "max_accrual": {
            "type": "boolean",
            "example": false
          },
          "auto_approves": {
            "type": "boolean",
            "example": false
          },
          "do_not_accrue": {
            "type": "boolean",
            "example": false
          },
          "max_carryover": {
            "type": "string",
            "example": "100.0"
          },
          "blocks_enabled": {
            "type": "boolean",
            "example": false
          },
          "enable_details": {
            "type": "boolean",
            "example": true
          },
          "only_full_days": {
            "type": "boolean",
            "example": false
          },
          "accrue_at_start": {
            "type": "boolean",
            "example": true
          },
          "require_details": {
            "type": "boolean",
            "example": false
          },
          "additional_field": {
            "type": "boolean",
            "example": true
          },
          "default_allowance": {
            "type": "string",
            "example": "25.0"
          },
          "enable_attachment": {
            "type": "boolean",
            "example": false
          },
          "enable_replacement": {
            "type": "boolean",
            "example": false
          },
          "enable_limited_days": {
            "type": "boolean",
            "example": false
          },
          "enable_minimum_days": {
            "type": "boolean",
            "example": false
          },
          "replacement_required": {
            "type": "boolean",
            "example": false
          },
          "enable_employee_access": {
            "type": "boolean",
            "example": true
          },
          "child_allowance_enabled": {
            "type": "boolean",
            "example": false
          },
          "enable_probation_period": {
            "type": "boolean",
            "example": false
          },
          "enable_replacement_away": {
            "type": "boolean",
            "example": false
          },
          "enable_service_accruals": {
            "type": "boolean",
            "example": false
          },
          "enable_dependent_policy\"": {
            "type": "boolean",
            "example": false
          },
          "enable_monthly_expiration": {
            "type": "boolean",
            "example": false
          },
          "enable_negative_carryover": {
            "type": "boolean",
            "example": false
          },
          "enable_specific_approvers": {
            "type": "boolean",
            "example": false
          },
          "termination_recalculation": {
            "type": "boolean",
            "example": true
          },
          "dont_allow_negative_amount": {
            "type": "boolean",
            "example": false
          },
          "enable_duplicate_time_offs": {
            "type": "boolean",
            "example": false
          },
          "enable_scopped_replacement": {
            "type": "boolean",
            "example": false
          },
          "override_approvers_enabled": {
            "type": "boolean",
            "example": false
          },
          "requests_in_advance_required": {
            "type": "boolean",
            "example": false
          },
          "starter_yearly_accrual_limitation": {
            "type": "boolean",
            "example": false
          },
          "starter_monthly_accrual_limitation": {
            "type": "boolean",
            "example": false
          }
        }
      }
    }
  }
}
object LeaveManagementListEmployeesOutTodayResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 2902504,
        "hours": 3.5,
        "policy": {
          "name": "Vacation"
        },
        "details": "Birthday lunch",
        "employee": {
          "last_name": "Doe",
          "first_name": "John"
        },
        "end_date": "2018-05-24",
        "policy_id": 2,
        "start_date": "2018-05-24",
        "employee_id": 5,
        "is_multi_date": false,
        "is_single_day": true,
        "is_part_of_day": true,
        "first_part_of_day": false,
        "second_part_of_day": true
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 2902504
          },
          "hours": {
            "type": "number",
            "example": 3.5
          },
          "policy": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "example": "Vacation"
              }
            }
          },
          "details": {
            "type": "string",
            "example": "Birthday lunch"
          },
          "employee": {
            "type": "object",
            "properties": {
              "last_name": {
                "type": "string",
                "example": "Doe"
              },
              "first_name": {
                "type": "string",
                "example": "John"
              }
            }
          },
          "end_date": {
            "type": "string",
            "example": "2018-05-24"
          },
          "policy_id": {
            "type": "number",
            "example": 2
          },
          "start_date": {
            "type": "string",
            "example": "2018-05-24"
          },
          "employee_id": {
            "type": "number",
            "example": 5
          },
          "is_multi_date": {
            "type": "boolean",
            "example": false
          },
          "is_single_day": {
            "type": "boolean",
            "example": true
          },
          "is_part_of_day": {
            "type": "boolean",
            "example": true
          },
          "first_part_of_day": {
            "type": "boolean",
            "example": false
          },
          "second_part_of_day": {
            "type": "boolean",
            "example": true
          }
        }
      }
    }
  }
}
object LeaveManagementListTimeOffPoliciesResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 1,
        "name": "Vacation",
        "unit": "days",
        "color": "#49B284",
        "accrue_type": "yearly",
        "do_not_accrue": false,
        "max_carryover": "100.0",
        "default_allowance": "26"
      },
      {
        "id": 2,
        "name": "Sickday",
        "unit": "days",
        "color": "#DB263F",
        "accrue_type": "no_tracking",
        "do_not_accrue": true,
        "max_carryover": "0.0",
        "default_allowance": "0.0"
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 1
          },
          "name": {
            "type": "string",
            "example": "Vacation"
          },
          "unit": {
            "type": "string",
            "example": "days"
          },
          "color": {
            "type": "string",
            "example": "#49B284"
          },
          "accrue_type": {
            "type": "string",
            "example": "yearly"
          },
          "do_not_accrue": {
            "type": "boolean",
            "example": false
          },
          "max_carryover": {
            "type": "string",
            "example": "100.0"
          },
          "default_allowance": {
            "type": "string",
            "example": "26"
          }
        }
      }
    }
  }
}
object LeaveManagementListTimeOffRequestsResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 2902504,
        "hours": 3.5,
        "fields": [
          {
            "title": "Approved by manager?",
            "answer": "yes"
          }
        ],
        "status": "Approved",
        "details": "Birthday lunch",
        "end_date": "2018-05-24",
        "policy_id": 1,
        "start_date": "2018-05-24",
        "employee_id": 1,
        "status_code": "approved",
        "request_date": "2018-05-22",
        "approval_date": null,
        "is_multi_date": false,
        "is_single_day": true,
        "is_part_of_day": true,
        "first_part_of_day": false,
        "second_part_of_day": true
      }
    ],
    "meta": {
      "per_page": 50,
      "next_page": 2,
      "total_pages": 2,
      "current_page": 1,
      "previous_page": null,
      "total_entries": 75
    }
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 2902504
          },
          "hours": {
            "type": "number",
            "example": 3.5
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string",
                  "example": "Approved by manager?"
                },
                "answer": {
                  "type": "string",
                  "example": "yes"
                }
              }
            }
          },
          "status": {
            "type": "string",
            "example": "Approved"
          },
          "details": {
            "type": "string",
            "example": "Birthday lunch"
          },
          "end_date": {
            "type": "string",
            "example": "2018-05-24"
          },
          "policy_id": {
            "type": "number",
            "example": 1
          },
          "start_date": {
            "type": "string",
            "example": "2018-05-24"
          },
          "employee_id": {
            "type": "number",
            "example": 1
          },
          "status_code": {
            "type": "string",
            "example": "approved"
          },
          "request_date": {
            "type": "string",
            "example": "2018-05-22"
          },
          "approval_date": {
            "type": "string",
            "nullable": true,
            "x-konfig-null-placeholder": true
          },
          "is_multi_date": {
            "type": "boolean",
            "example": false
          },
          "is_single_day": {
            "type": "boolean",
            "example": true
          },
          "is_part_of_day": {
            "type": "boolean",
            "example": true
          },
          "first_part_of_day": {
            "type": "boolean",
            "example": false
          },
          "second_part_of_day": {
            "type": "boolean",
            "example": true
          }
        }
      }
    },
    "meta": {
      "type": "object",
      "properties": {
        "per_page": {
          "type": "number",
          "example": 50
        },
        "next_page": {
          "type": "number",
          "example": 2
        },
        "total_pages": {
          "type": "number",
          "example": 2
        },
        "current_page": {
          "type": "number",
          "example": 1
        },
        "previous_page": {
          "type": "string",
          "nullable": true,
          "x-konfig-null-placeholder": true
        },
        "total_entries": {
          "type": "number",
          "example": 75
        }
      }
    }
  }
}
object LeaveManagementNewTimeOffRequest422Response
{
  "type": "object",
  "example": {
    "errors": [
      "Error message"
    ],
    "error_code": "validation_failed"
  },
  "properties": {
    "errors": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "Error message"
      }
    },
    "error_code": {
      "type": "string",
      "example": "validation_failed"
    }
  }
}
object LeaveManagementNewTimeOffRequestRequest
{
  "type": "object",
  "required": [
    "type",
    "time_off_policy_id",
    "employee_id",
    "part_of_day"
  ],
  "properties": {
    "date": {
      "type": "string",
      "description": "format: YYYY-MM-DD; required if type is single"
    },
    "type": {
      "enum": [
        "single",
        "multi"
      ],
      "type": "string"
    },
    "hours": {
      "type": "number",
      "description": "required if type is single & part_of_day is first_part_of_day or second_part_of_day"
    },
    "date_to": {
      "type": "string",
      "description": "format: YYYY-MM-DD; required if type is multi"
    },
    "details": {
      "type": "string",
      "description": "required based on policy settings"
    },
    "time_to": {
      "type": "string",
      "example": "15:00",
      "description": "format: H:M; required if part_of_day is specific_timespan"
    },
    "date_from": {
      "type": "string",
      "description": "format: YYYY-MM-DD; required if type is multi"
    },
    "time_from": {
      "type": "string",
      "example": "07:30",
      "description": "format: H:M; required if part_of_day is specific_timespan"
    },
    "employee_id": {
      "type": "integer"
    },
    "part_of_day": {
      "enum": [
        "all_day",
        "first_part_of_day",
        "second_part_of_day",
        "specific_timespan"
      ],
      "type": "string",
      "description": "required if type is single"
    },
    "time_off_policy_id": {
      "type": "integer"
    }
  }
}
object LeaveManagementNewTimeOffRequestResponse
{
  "type": "object",
  "example": {
    "data": {
      "id": 1
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "example": 1
        }
      }
    }
  }
}
object LeaveManagementProcessKitDayRequest
{
  "type": "object",
  "required": [
    "status"
  ],
  "properties": {
    "status": {
      "enum": [
        "cancel",
        "approve",
        "decline"
      ],
      "type": "string",
      "description": "Action to apply to the specified KIT day"
    }
  }
}
object LeaveManagementUpdateKitDaysConfigurationRequest
{
  "type": "object",
  "required": [
    "kit_days_enabled",
    "kit_days_quantity"
  ],
  "properties": {
    "kit_days_enabled": {
      "enum": [
        true,
        false
      ],
      "type": "boolean",
      "example": true,
      "description": "Whether the policy allows Kit days or not"
    },
    "kit_days_quantity": {
      "type": "integer",
      "example": 5,
      "description": "Maximum number of Kit days allowed in the policy"
    }
  }
}
object LeaveManagementUpdateKitDaysConfigurationResponse
{
  "type": "object",
  "example": {
    "errors": [
      "The policy specified is not an event-based policy"
    ],
    "error_code": "invalid_policy_type"
  },
  "properties": {
    "errors": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "The policy specified is not an event-based policy"
      }
    },
    "error_code": {
      "type": "string",
      "example": "invalid_policy_type"
    }
  }
}
object OffboardingCreateTaskRequest
{
  "type": "object",
  "required": [
    "title",
    "boarding_task_template_category_id",
    "due_in"
  ],
  "properties": {
    "title": {
      "type": "string"
    },
    "due_in": {
      "type": "number",
      "example": 30,
      "description": "Due date in days before employee last working day"
    },
    "assignee_id": {
      "type": "number",
      "description": "Specific assignee if default_assignee_type is 'employee'"
    },
    "description": {
      "type": "string"
    },
    "require_attachment": {
      "type": "string",
      "description": "'true' to enabled required attachment"
    },
    "default_assignee_type": {
      "enum": [
        "self",
        "leader",
        "employee"
      ],
      "type": "string",
      "description": "Default: self; leader - direct manager; employee - specific employee via assignee_id"
    },
    "boarding_task_template_category_id": {
      "type": "number"
    }
  }
}
object OffboardingCreateTaskResponse
{
  "type": "object",
  "example": {
    "data": {
      "id": 1
    }
  },
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "id": {
          "type": "number",
          "example": 1
        }
      }
    }
  }
}
object OffboardingListCategoriesResponse
{
  "type": "object",
  "example": {
    "data": [
      {
        "id": 1,
        "title": "General"
      },
      {
        "id": 2,
        "title": "Platform"
      }
    ]
  },
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "number",
            "example": 1
          },
          "title": {
            "type": "string",
            "example": "General"
          }
        }
      }
    }
  }
}