...
- для использования функционала планирования отпусков необходимо вкючить включить его на тенанте ...через тпчерез Службу заботы (линк или контакты - Телеграм: @podderzhkavsego_bot
Почта: help@hr-link.ru) - админу Кадровику доступны любые изменения, согласование и т.д. в любом периоде. независимо от разрешения планирования
- Разрешить планирование только Админ
- добавить особенности по этой сторе [US] HRL-8465 Ограничить возможность изменять прошедшие отпуска Сотрудником/Руководителем
- после завершения планирования (шаг Х) сотрудники не смогут, руковдители смогут....
- для планирвания необходимы дост дни для планирвания
- планирование осуществляется с учетом регионального календаря сотрудника, если он был загружен сотруднику (Шаг Х)
- планирование осуществляется только по осн и доп отпуску
- планирование осуществляется по всем сотрудникам пользователя (развернуть + про согласование)
справочник типов отпусков пока не используется...планируется в будущем
- при необходимости, можно загрузить изменения отпусков из внешней системы в Линк (шаг х)
...
| No Format |
|---|
{
"result": true
} |
ШАГ 3.
...
Сотрудники планируют отпуска в HRlink
Шаг выполняется на портале HRlink.
Создать или обновить отпуска пользователя клиента
...
| Метод | Ссылка на документацию OpenAPI |
|---|
PUT https://{host}/api/v1/clients/{clientId}/ |
users/{clientUserId}/vacations | https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleManage/operation/ |
| createOrUpdateVacations |
Дополнительная информация
- Опциональный шаг.
- Если необходимо в текущем году запретить Сотрудникам и Руководителям изменять отпуска, то требуется выполнить этот шаг.
- После наступления нового календарного года изменение отпусков будет автоматически недоступно для Сотрудника и Руководителя.
- Завершить планирование может только Администратор.
- Пользователь должен иметь право VACATIONS_CHANGE_PLANNING_STATE на уровне пользователя клиента или на уровне активного сотрудника.
Описание переменных
...
tenantHost
...
да
...
clientId
...
Состояние планирования отпусков в системе HRlink.
Может принимать два состояния:
- ENABLED - Планирование разрешено.
- DISABLED - Планирование запрещено.
...
Год, на который устанавливается настройка планирования.
- Допустимо указывать значение только текущего или следующего года.
- Если год не задан, то по умолчанию, настройка устанавливается на текущий год.
...
| language | bash |
|---|---|
| title | Пример запроса |
...
:
описать правила
ШАГ 4. Руководители согласуют отпуска в HRlink
Шаг выполняется на портале HRlink.
Установить состояние утверждения отпуска
| Метод | Ссылка на документацию OpenAPI |
|---|---|
PUT https://{host}/api/v1/clients/{clientId}/vacations/{vacationId}/setApprovingState | https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleManage/operation/setVacationApprovingState |
Дополнительная информация:
описать правила планирования
ШАГ 5. Завершить планирование отпусков на год
Установить состояние возможности планирования отпусков
| Метод | Ссылка на документацию OpenAPI |
|---|---|
PUT https://{host}/api/v1/clients/{clientId}/vacations/setPlanningState |
...
Пример ответа
| No Format |
|---|
{
"result": true
} |
ШАГ 4. Выгрузить спланированные отпуска из HRlink
Получить данные о запланированных отпусках сотрудников
...
POST https://{host}/api/v1/clients/{clientId}/employees/getPlannedVacationPeriod
...
Дополнительная информация
- Опциональный шаг.
- Если необходимо в текущем году запретить Сотрудникам и Руководителям изменять отпуска, то требуется выполнить этот шаг.
- После наступления нового календарного года изменение отпусков будет автоматически недоступно для Сотрудника и Руководителя.
- Завершить планирование может только Администратор.
- Пользователь должен иметь право VACATIONS_CHANGE_PLANNING_STATE на уровне пользователя клиента или на уровне активного сотрудника.
Описание переменных
| Переменная | Описание | Обязательность |
|---|---|---|
tenantHost | Хост тенанта, на который должен быть выполнен запрос | да |
clientId | ИД клиента HRlink | да |
| planningState | Состояние планирования отпусков в системе HRlink. Может принимать два состояния:
| да |
| planningYear | Год, на который устанавливается настройка планирования.
| нет |
| Code Block | ||||
|---|---|---|---|---|
| ||||
curl --request PUT \
--url 'https://{{tenantHost}}/api/v1/clients/{clientId}/vacations/setPlanningState?planningState=DISABLED&planningYear=2026' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value
|
Пример ответа
| No Format |
|---|
{
"result": true
} |
ШАГ 6. Выгрузить спланированные отпуска из HRlink
Получить данные о запланированных отпусках сотрудников
| Метод | Ссылка на документацию OpenAPI |
|---|---|
POST https://{host}/api/v1/clients/{clientId}/employees/getPlannedVacationPeriod | https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleGet/operation/getPlannedVacationPeriod |
Дополнительная информация
- Получить спланированные периоды отпусков может как Администратор, так и Кадровик.
- Пользователь должен иметь право EMPLOYEE_PLANNED_VACATIONS на уровне пользователя клиента или на уровне активного сотрудника.
Описание переменных
| Переменная | Описание | Обязательность |
|---|---|---|
tenantHost | Хост тенанта, на который должен быть выполнен запрос | да |
clientId | ИД клиента HRlink | да |
| vacations{} | Данные для фильтрации периодов планируемых отпусков.
| да |
| startDateFrom | Начало периода, в который должно попадать начало запрашиваемого планируемого отпуска. | нет |
| startDateTo | Конец периода, в который должно попадать начало запрашиваемого планируемого отпуска | нет |
| status | Статус запрашиваемых планируемых отпусков сотрудников. | нет |
| employees[] | Список сотрудников, по которым необходимо получить отпуска.
| да |
id | ID сотрудника в системе HRlink. | нет |
| externalId | ID сотрудника во внешней системе. | нет |
| department[] | Список отделов, по которым необходимо получить отпуска.
| да |
id | ID отдела в системе HRlink. | нет |
| externalId | ID отдела клиента во внешней системе. | нет |
| legalEntity[] | Список юрлиц, по которым необходимо получить отпуска.
| да |
id | ID юрлица клиента в системе HRlink. | нет |
| externalId | ID юрлица клиента во внешней системе. | нет |
| limit | Количество возвращаемых при запросе элементов.
| нет |
| offset | Количество элементов, которые нужно пропустить при выборке. | нет |
| withoutDismissedEmployees | Вернуть ответ без уволенных сотрудников?
| нет |
| Code Block | ||||
|---|---|---|---|---|
| ||||
curl --request POST \
--url 'https://{{tenantHost}}/api/v1/clients/{clientId}/employees/getPlannedVacationPeriod' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value \
--data '{
"vacations": {
"startDateFrom": "2026-01-01",
"startDateTo": "2026-12-01",
"status": "ALL"
},
"employees |
Дополнительная информация
- Получить спланированные периоды отпусков может как Администратор, так и Кадровик.
- Пользователь должен иметь право EMPLOYEE_PLANNED_VACATIONS на уровне пользователя клиента или на уровне активного сотрудника.
Описание переменных
...
tenantHost
...
да
...
clientId
...
Данные для фильтрации периодов планируемых отпусков.
- Даты начала и конца периода либо заданы обе, либо не заданы совсем.
...
Статус запрашиваемых планируемых отпусков сотрудников.
...
Список сотрудников, по которым необходимо получить отпуска.
- Если массив пуст, то в ответе будут присутствовать все доступные сотрудники, с учетом иных фильтров.
- Если массив задан, то передано одно из значений ID сотрудника, или внутренний, или внешний.
...
id
...
Список отделов, по которым необходимо получить отпуска.
- Если массив пуст, то в ответе будут присутствовать все сотрудники из доступных отделов, с учетом иных фильтров.
- Если массив задан, то передано одно из значений ID отдела, или внутренний, или внешний.
...
id
...
Список юрлиц, по которым необходимо получить отпуска.
- Если массив пуст, то в ответе будут присутствовать все сотрудники из доступных юрлиц, с учетом иных фильтров.
- Если массив задан, то передано одно из значений ID юрлица, или внутренний, или внешний.
...
id
...
Количество возвращаемых при запросе элементов.
- Максимальное значение - 100
- Значение по умолчанию - 10
...
Вернуть ответ без уволенных сотрудников?
- По умолчанию, уволенные сотрудники вернутся в ответе.
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
curl --request POST \
--url 'https://{{tenantHost}}/api/v1/clients/{clientId}/employees/getPlannedVacationPeriod' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value
--data '{
"vacations": {
"startDateFrom": "2026-01-01",
"startDateTo": "2026-12-01",
"status": "ALL"
},
"employees": [
{
"externalId": "{{Внешний ИД сотрудника}}"
}
],
"department": [
{
"externalId": "{{Внешний ИД отдела}}"
}
],
"legalEntity": [
{
"externalId": "{{Внешний ИД юрлица}}"
}
],
"limit": null,
"offset": null,
"withoutDismissedEmployees": true
}'
|
Пример ответа
| No Format |
|---|
{ "result": true, "employeePlannedVacationPeriods": [ { "idexternalId": "{{ВнутреннийВнешний ИД сотрудника}}" } ], "department": [ { "externalId": "{{Внешний ИД сотрудникаотдела}}", } ], "periodslegalEntity": [ { "externalId": "{{Внешний ИД юрлица}}" {} ], "limit": null, "vacationTypeoffset": "Основной"null, "withoutDismissedEmployees": true }' |
Пример ответа
| No Format |
|---|
{ "result": true, "vacationStatusemployeePlannedVacationPeriods": "Ожидает согласования",[ { "dateFromid": "2026-09-15{{Внутренний ИД сотрудника}}", "dateToexternalId": "2026-09-28" {{Внешний ИД сотрудника}}", "periods": [ }, { "vacationType": "ДополнительныйОсновной", "vacationStatus": "СогласованоОжидает согласования", "dateFrom": "2026-1009-0115", "dateTo": "2026-1009-0328" } , ] } ] } |
ШАГ 5. Загрузить обновленные периоды запланированных отпусков в HRlink
Создать задачу массовой синхронизации данных
...
POST https://{host}/api/v1/clients/{clientId}/bulkDataSyncTasks
type = CLIENT_USER_VACATIONS
...
{
"vacationType": "Дополнительный",
"vacationStatus": "Согласовано",
"dateFrom": "2026-10-01",
"dateTo": "2026-10-03"
}
]
}
]
} |
ШАГ 6. Загрузить обновленные периоды запланированных отпусков в HRlink
Создать задачу массовой синхронизации данных
| Метод | Ссылка на документацию OpenAPI |
|---|---|
POST https://{host}/api/v1/clients/{clientId}/bulkDataSyncTasks type = CLIENT_USER_VACATIONS | https://docs.myhrlink.ru/public/openapi/hr-link/#tag/otherDataSync/operation/createBulkDataSyncTask |
Дополнительная информация
- Отпуска загружаются по физ.лицам, т.е. по пользователям HRlink. Все сотрудники пользователя будут иметь одинаковые периоды отпуска.
- Загрузить запланированные отпуска может как Администратор, так и Кадровик.
- Пользователь должен иметь право BULK_DATA_SYNC_TASKS_CREATE и право VACATIONS_CREATE_AND_UPDATE на уровне пользователя клиента или на уровне активного сотрудника.
- Загрузить запланированные отпуска возможно на любой год, вне зависимости от настройки разрешения планирования отпусков и наличия доступных дней отпуска у сотрудника.
- В одной задаче массовой синхронизации возможно загрузить не более 500 пользователей
Описание переменных
| Переменная | Описание | Обязательность |
|---|---|---|
tenantHost | Хост тенанта, на который должен быть выполнен запрос | да |
clientId | ИД клиента HRlink | да |
| externalId | Идентификатор пользователя во внешней системе. | да |
| year | Год отпуска. | да |
| withApproval | Являются ли периоды отпуска согласованными.
| нет |
| vacationPeriods[] | Список данных о планируемых отпусках.
| нет |
| startDate | Дата начала отпуска. | да |
| endDate | Дата окончания отпуска. | да |
| type | Тип отпуска.
| да |
| Code Block | ||||
|---|---|---|---|---|
| ||||
curl --request POST \
--url 'https://{{tenantHost}}/api/v1/clients/{{clientId}}/bulkDataSyncTasks' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value \
--data '{
"type": "CLIENT_USER_VACATIONS",
"data": [
{
|
Дополнительная информация
- Отпуска загружаются по физ.лицам, т.е. по пользователям HRlink. Все сотрудники пользователя будут иметь одинаковые периоды отпуска.
- Загрузить запланированные отпуска может как Администратор, так и Кадровик.
- Пользователь должен иметь право BULK_DATA_SYNC_TASKS_CREATE и право VACATIONS_CREATE_AND_UPDATE на уровне пользователя клиента или на уровне активного сотрудника.
- Загрузить запланированные отпуска возможно на любой год, вне зависимости от настройки разрешения планирования отпусков и наличия доступных дней отпуска у сотрудника.
- В одной задаче массовой синхронизации возможно загрузить не более 500 пользователей
Описание переменных
...
tenantHost
...
да
...
clientId
...
Требуется ли утверждение отпусков после выполнения операции создания или обновления?
- true - требуется утверждения = отпуска не согласованы
- false - утверждение не требуется = отпуска согласованы
По факту:
- Если флаг не передан, то по умолчанию считаем FALSE (все периоды отпуска не согласованны)
- TRUE - отпуска согласованы = не требуют утверждения
Являются ли периоды отпуска согласованными.
...
Список данных о планируемых отпусках.
Массив не задан (null) то что
...
Тип отпуска.
Может принимать следующие значения:
- MAIN - Основной отпуск
- ADDITIONAL - Дополнительный отпуск
...
| Code Block | ||||
|---|---|---|---|---|
| ||||
curl --request POST \ --url 'https://{{tenantHost}}/api/v1/clients/{{clientId}}/bulkDataSyncTasks' \ --header 'Impersonated-User-Id: {{clientUserExternalId}}' \ --header 'Impersonated-User-Id-Type: EXTERNAL_ID' \ --data '{ "type": "EMPLOYEE_VACATIONS_PLANNING", "data": [ { "externalId": "{{Внешний ИД сотрудника}}", "legalEntityExternalId": "{{Внешний ИД юрлица}}", "availableVacationsPlanning": [ { "planningYear": 2026, "basicVacationDayCountexternalId": 28 "{{Внешний ИД сотрудника}}", "year": 2025, "additionalVacationDayCountwithApproval": 3true, } "vacationPeriods": [ { ] } ] }' |
Пример ответа
| No Format |
|---|
{ "resultstartDate": true"2025-07-01", "employeePlannedVacationPeriods": [ { "idendDate": "{{Внутренний ИД сотрудника}}2025-07-15", "externalId": "{{Внешний ИД сотрудника}}", "periodstype": [ "MAIN" {}, "vacationType": "Основной", { "vacationStatusstartDate": "Ожидает согласования2025-10-22", "dateFromendDate": "20262025-0910-1523", "dateTotype": "2026-09-28ADDITIONAL" }, { ] "vacationType": "Дополнительный", } ] }' |
Пример ответа
| No Format |
|---|
{ "vacationStatusresult": "Согласовано"true, "dateFrombulkDataSyncTask": "2026-10-01", { "dateToid": "2026-10-03" } ] } ]{{ИД задачи массовой синхронизации данных}}" } } |