Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Схема процесса интеграции



Общие правила планирования(question)  нужны

  • админу Кадровику доступны любые изменения, согласование и т.д. в любом периоде. независимо от разрешения планирования
  • Разрешить планирование только Админ
  • после завершения планирования (шаг Х) сотрудники не смогут, руковдители смогут....
  • для планирвания необходимы дост дни  для планирвания
  • планирование осуществляется с учетом регионального календаря сотрудника, если он был загружен сотруднику (Шаг Х)
  • планирование осуществляется только по осн и доп отпуску
  • планирование осуществляется по всем сотрудникам пользователя (развернуть + про согласование)
  • (warning)  справочник типов отпусков пока не используется...планируется в будущем
  • при необходимости, можно загрузить изменения отпусков из внешней системы в Линк (шаг х)


Шаги процесса

Table of Contents

...

  • Разрешить планирование может только  как только Администратор.
    • Пользователь должен иметь право VACATIONS_CHANGE_PLANNING_STATE на уровне пользователя клиента или на уровне активного сотрудника.

...

No Format
{
    "result": true
}



ШАГ 3. Завершить планирование отпусков на год

Установить состояние возможности планирования отпусков

МетодСсылка на документацию OpenAPI

PUT https://{host}/api/v1/clients/{clientId}/vacations/setPlanningState


https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleManage/operation/setPlanningState


Дополнительная информация

  • Опциональный шаг.
    • Если необходимо в текущем году запретить Сотрудникам и Руководителям изменять отпуска, то требуется выполнить этот шаг.
    • После наступления нового календарного года изменение отпусков будет автоматически недоступно для Сотрудника и Руководителя.
  • Завершить планирование может только Администратор.
    • Пользователь должен иметь право VACATIONS_CHANGE_PLANNING_STATE на уровне пользователя клиента или на уровне активного сотрудника.
ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
planningState

Состояние планирования отпусков в системе HRlink.

Может принимать два состояния:

  • ENABLED - Планирование разрешено.
  • DISABLED - Планирование запрещено.
да
planningYear

Год, на который устанавливается настройка планирования.

  • Допустимо указывать значение только текущего или следующего года.
  • Если год не задан, то по умолчанию, настройка устанавливается на текущий год. 
нет


Code Block
languagebash
titleПример запроса
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
}


ШАГ 4. Выгрузить спланированные отпуска 

Получить данные о запланированных отпусках сотрудников

...

  • Получить спланированные периоды отпусков может  может как Администратор,  так и Кадровик.
    • Пользователь должен иметь право EMPLOYEE_PLANNED_VACATIONS на уровне пользователя клиента или на уровне активного сотрудника.
ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
vacations{}

Данные для фильтрации периодов планируемых отпусков.

  • Даты начала и конца периода либо заданы обе, либо не заданы совсем.
да
startDateFromНачало периода, в который должно попадать начало запрашиваемого планируемого отпуска.нет
startDateToКонец периода, в который должно попадать начало запрашиваемого планируемого отпусканет
status

Статус запрашиваемых планируемых отпусков сотрудников.

нет
employees[]

Список сотрудников, по которым необходимо получить отпуска.

  • Если массив пуст, то в ответе будут присутствовать все доступные сотрудники, с учетом иных фильтров.
..
  • Если массив задан, то передано одно из значений ID сотрудника, или внутренний, или внешний.
да

id

ID сотрудника в системе HRlink.нет
externalIdID сотрудника во внешней системе.нет
department[]

Список отделов, по которым необходимо получить отпуска.

  • Если массив пуст, то в ответе будут присутствовать все сотрудники из доступных отделов, с учетом иных фильтров.
..
  • Если массив задан, то передано одно из значений ID отдела, или внутренний, или внешний.
да

id

ID отдела в системе HRlink.нет
externalIdID отдела клиента во внешней системе.нет
legalEntity[]

Список юрлиц, по которым необходимо получить отпуска.

  • Если массив пуст
..
  • , то в ответе будут присутствовать все сотрудники из доступных юрлиц, с учетом иных фильтров.
  • Если массив задан, то передано одно из значений ID юрлица, или внутренний, или внешний.
да

id

ID юрлица клиента в системе HRlink.нет
externalIdID юрлица клиента во внешней системе.нет
limit

Количество возвращаемых при запросе элементов.

  • Максимальное значение - 100 (question) 
  • Значение по умолчанию - 10
нет
offsetКоличество элементов, которые нужно пропустить при выборке.нет
withoutDismissedEmployees

Вернуть ответ без уволенных сотрудников?

  • По умолчанию, уволенные сотрудники
включены 
  • вернутся в
результат ответа
  • ответе.
нет


Code Block
languagebash
titleПример запроса
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": [
    {
      "id": "{{Внутренний ИД сотрудника}}",
      "externalId": "{{Внешний ИД сотрудника}}",
      "periods": [
        {
          "vacationType": "Основной",
          "vacationStatus": "Ожидает согласования",
          "dateFrom": "2026-09-15",
          "dateTo": "2026-09-28"
        },
        {
          "vacationType": "Дополнительный",
          "vacationStatus": "Согласовано",
          "dateFrom": "2026-10-01",
          "dateTo": "2026-10-03"
        } 
      ]
    }
  ]
}

...





Загрузка отпусков из внешней системы в HRlink

...