Перейти к содержимому
Войти Запросить демо

Сотрудники

Группа методов /api/v1/employees позволяет выполнять полный цикл синхронизации сотрудников с внешними HR- и payroll-системами: создавать карточки, обновлять персональные данные, вести исторические таблицы трудоустройства, позиций и компенсаций, а также архивировать уволенных сотрудников.

POST /api/v1/employees

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

Обязательные поля:

ПолеТипОписание
first_namestringИмя
last_namestringФамилия
date_effective_fromstring (date)Дата найма

Опциональные поля:

ПолеОписание
middle_nameОтчество
division_idID дивизиона
department_idID отдела
position_idID должности
position_level_idID грейда
location_idID локации
legal_entity_idID юридического лица
reporting_to_idID руководителя
employment_contract_idID типа договора
employment_type_idID типа трудоустройства
employment_work_pattern_idID графика работы
base_salary_grossЗарплата gross
base_salary_netЗарплата net
currencyВалюта (ISO 4217)
per_typeПериод: hourly, weekly, monthly, yearly

Пример запроса:

{
"first_name": "Иван",
"last_name": "Петров",
"date_effective_from": "2024-01-15",
"department_id": 42,
"position_id": 7,
"base_salary_gross": "150000",
"currency": "RUB",
"per_type": "monthly"
}

GET /api/v1/employees/{employee_id}

Возвращает полную карточку сотрудника, включая текущую позицию, трудоустройство, компенсацию и кастомные поля (custom_fields).


PUT /api/v1/employees/{employee_id}

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

Обязательные поля: first_name, last_name

Опциональные поля:

ПолеОписание
emailРабочий email
email_personalЛичный email
phoneРабочий телефон
phone_personalЛичный телефон
date_birthДата рождения
genderПол
personnel_numberТабельный номер
address_1, address_2, city, state, zipАдрес
country_idID страны
custom_fieldsdict: {slug: value} - значения кастомных полей сотрудника

Пример запроса:

{
"first_name": "Иван",
"last_name": "Петров",
"email": "[email protected]",
"personnel_number": "EMP-001",
"custom_fields": {
"snils": "123-456-789 00",
"inn": "7712345678"
}
}

DELETE /api/v1/employees/{employee_id}

Переводит сотрудника в архив (увольнение). Это мягкое удаление - данные сохраняются.


Позиция содержит информацию о подразделении, должности, руководителе и локации сотрудника на конкретную дату.

POST /api/v1/employees/{employee_id}/positions
ПолеТипОписание
date_effective_fromstring (date)Дата начала действия
division_idintegerID дивизиона
department_idintegerID отдела
position_idintegerID должности
position_level_idintegerID грейда
reporting_to_idintegerID руководителя
legal_entity_idintegerID юридического лица
location_idintegerID локации
commentstringКомментарий
PUT /api/v1/employees/{employee_id}/positions/{id}
DELETE /api/v1/employees/{employee_id}/positions/{id}
POST /api/v1/employees/{employee_id}/positions/search

Возвращает страницу записей позиций с полными объектами: department, division, position, manager, legal_entity, location. Поддерживает пагинацию.


Трудоустройство фиксирует тип договора, тип занятости, график работы и период работы.

GET /api/v1/employees/{employee_id}/employments

Возвращает полный список записей (текущую и прошлые).

POST /api/v1/employees/{employee_id}/employments
ПолеТипОписание
date_effective_fromstring (date)Дата начала (дата найма)
date_effective_tostring (date)Дата окончания / увольнения
employment_type_idintegerID типа трудоустройства
employment_contract_idintegerID типа договора
work_pattern_idintegerID графика работы
date_probation_endsstring (date)Дата окончания испытательного срока
commentstringКомментарий

Обновить / удалить запись трудоустройства

Заголовок раздела «Обновить / удалить запись трудоустройства»
PUT /api/v1/employees/{employee_id}/employments/{id}
DELETE /api/v1/employees/{employee_id}/employments/{id}

Компенсация фиксирует базовую зарплату (gross/net) с привязкой к дате начала действия.

POST /api/v1/employees/{employee_id}/compensations
ПолеТипОписание
date_effective_fromstring (date)Дата начала действия
base_salary_grossnumberЗарплата gross
base_salary_netnumberЗарплата net
currencystringВалюта (ISO 4217)
per_typestringhourly, weekly, monthly, yearly
change_reason_idintegerID причины изменения
commentstringКомментарий
POST /api/v1/employees/{employee_id}/compensations/search

Возвращает страницу записей компенсаций с пагинацией.

PUT /api/v1/employees/{employee_id}/compensations/{id}
DELETE /api/v1/employees/{employee_id}/compensations/{id}

Дополнительные компенсации - это надбавки и бонусы сотрудника как отдельная сущность (не путать с кастомными таблицами).

GET /api/v1/employees/{employee_id}/additional-compensations
POST /api/v1/employees/{employee_id}/additional-compensations
ПолеТипОписание
compensation_type_idintegerID типа компенсации (обязательно)
typestringone_time или recurring (обязательно)
amountnumberСумма (обязательно)
date_effective_fromstring (date)Дата начала (обязательно)
date_effective_tostring (date)Дата окончания
frequency_typestringmonthly, quarterly, yearly (для recurring)
currencystringВалюта
descriptionstringОписание
commentstringКомментарий
PUT /api/v1/employees/{employee_id}/additional-compensations/{id}
DELETE /api/v1/employees/{employee_id}/additional-compensations/{id}

Позволяет писать произвольные строки в кастомные таблицы, привязанные к сотруднику (например, «Бонусы начисленные», «Реквизиты выплат»). Список доступных таблиц и их slug полей получается через GET /api/v1/custom-fields/tables.

POST /api/v1/employees/{employee_id}/field-tables/{table_id}/rows
ПолеТипОписание
date_effective_fromstring (date)Дата начала действия строки
cellsobject{slug: value} - значения ячеек

Поддерживаемые типы значений в cells:

  • text / textarea / email / phone - строка
  • number / currency / percentage - число
  • date - строка YYYY-MM-DD
  • datetime - строка ISO 8601
  • select - ID опции
  • switch - boolean
  • employee_reference - integer (ID сотрудника)

Пример запроса:

{
"date_effective_from": "2024-01-01",
"cells": {
"bonus_amount": 50000,
"bonus_currency": "RUB",
"bonus_comment": "Квартальный бонус Q1"
}
}
PUT /api/v1/employees/{employee_id}/field-tables/{table_id}/rows/{id}
DELETE /api/v1/employees/{employee_id}/field-tables/{table_id}/rows/{id}

Полный цикл создания нового сотрудника из HR/payroll-системы:

  1. Создать сотрудника - POST /api/v1/employees с базовыми данными и датой найма.
  2. Обновить персональные данные - PUT /api/v1/employees/{id} с email, телефоном, кастомными полями.
  3. Зафиксировать трудоустройство - POST /api/v1/employees/{id}/employments с типом договора.
  4. Зафиксировать компенсацию - POST /api/v1/employees/{id}/compensations с зарплатой.
  5. Записать строки в кастомные таблицы - POST /api/v1/employees/{id}/field-tables/{table_id}/rows для бонусов, реквизитов и т.п.

При увольнении:

  1. Закрыть трудоустройство - PUT /api/v1/employees/{id}/employments/{id} (добавить date_effective_to).
  2. Архивировать сотрудника - DELETE /api/v1/employees/{id}.