Заголовки запроса
string
required
API токен сервисного пользователя в формате Bearer. Получите токен в панели администратора школы. Формат:
Bearer YOUR_TOKEN.string
required
Уникальный идентификатор продавца в системе. Используется для разграничения доступа между разными продавцами.
string
required
Уникальный идентификатор школы в системе. Определяет контекст выполнения операции.
Трудоустройство (
employment) связывает пользователя школы с департаментом и, опционально, должностью.
У сотрудника может быть несколько записей трудоустройства в истории, но только одна активная для
конкретной пары департамент + должность. Должность можно не указывать — тогда сотрудник числится в
департаменте без должности, и активная запись такого типа уникальна по паре департамент + пользователь.
У записи также фиксируются условия занятости: вид (kind), тип (type) и ставка (rate).Перевод (
transfer) и повышение (promote) не изменяют текущую запись, а закрывают её (finishAt, статус
Terminated) и создают новую активную запись в целевом департаменте либо с новой должностью. Условия
занятости (kind, type, rate) и внешний идентификатор extId переносятся в новую запись без изменений.
В ответе возвращается именно новая запись трудоустройства.У трудоустройства может быть внешний идентификатор
extId — ID записи в системе клиента (например, HR-системе).
От 1 до 50 символов, без / и пробелов. Уникален в рамках школы среди открытых (не завершённых)
трудоустройств: при переводе или повышении extId переносится на новую активную запись (закрытая сохраняет
копию). По extId доступны отдельные роуты ext/{extId}/transfer, ext/{extId}/promote и
ext/{extId}/terminate.Список трудоустройств
StaffView.
Параметры запроса
Параметры-массивы передаются повторением параметра в строке запроса:
userIds=1&userIds=2&userIds=3.Пагинация
integer
Количество записей, которые нужно пропустить. По умолчанию
0.integer
Номер страницы (альтернатива
skip). Начинается с 1.integer
Количество записей на странице. По умолчанию
100, максимум 1000.Фильтрация
integer[]
Фильтр по ID трудоустройств. До 250 значений.
string[]
Фильтр по внешним идентификаторам (
extId) трудоустройств. До 250 значений, каждое до 50 символов.integer[]
Фильтр по ID пользователей. До 250 значений.
integer[]
Фильтр по ID департаментов. До 250 значений.
string[]
Фильтр по внешним идентификаторам (
extId) департаментов. До 250 значений, каждое до 50 символов.integer[]
Фильтр по ID должностей. До 250 значений.
string[]
Фильтр по внешним идентификаторам (
extId) должностей. До 250 значений, каждое до 50 символов.enum[]
Фильтр по статусам трудоустройства. Возможные значения:
Active, Terminated. До 250 значений.boolean
Если
true — вернуть только активные трудоустройства.string
Поиск по сотруднику (имя, идентификаторы). Максимум 50 символов.
Поля ответа
object
Постраничный список трудоустройств.
Нанять сотрудника
StaffManage.
Создаёт новую активную запись трудоустройства. Пользователь, департамент и должность (если указана) должны
принадлежать школе. У сотрудника не может быть активного дубля с той же парой департамент + должность, а при
найме без должности — с той же парой департамент + пользователь. Если пользователь ранее был уволен и имеет
статус Terminated, найм автоматически возвращает ему статус Active.
Департамент обязателен и указывается по ID или внешнему идентификатору: в паре departmentId /
departmentExtId передаётся ровно один параметр. Должность опциональна: передайте ровно один параметр из
пары positionId / positionExtId, либо не передавайте оба — тогда сотрудник нанимается без должности. Оба
поля одной пары одновременно передавать нельзя.
Параметры запроса
integer
required
ID пользователя, который принимается на работу. Пользователь должен принадлежать школе.
string
Внешний идентификатор трудоустройства из системы клиента. От 1 до 50 символов, без
/ и пробелов.
Должен быть уникален в рамках школы среди открытых (не завершённых) трудоустройств.integer
ID должности. Должность должна принадлежать школе. Опционально: передайте один параметр из пары
positionId / positionExtId, либо не передавайте оба — сотрудник будет нанят без должности.string
Внешний идентификатор (
extId) должности — альтернатива positionId.integer
ID департамента. Департамент должен принадлежать школе. Передаётся ровно один параметр из пары
departmentId / departmentExtId.string
Внешний идентификатор (
extId) департамента — альтернатива departmentId.string
Дата начала трудоустройства в формате ISO 8601. По умолчанию — текущий момент.
enum
Вид занятости:
Main (основное место работы), InternalSecondary (внутреннее совместительство),
ExternalSecondary (внешнее совместительство). По умолчанию Main.enum
Тип занятости:
FullTime (полная) или PartTime (частичная). По умолчанию FullTime.number
Ставка — доля полной ставки, от
0.01 до 1. По умолчанию 1.Перевести в другой департамент
StaffManage.
Закрывает текущую активную запись трудоустройства (finishAt, статус Terminated) и создаёт новую активную
запись в целевом департаменте с сохранением должности. Целевой департамент должен принадлежать школе, у сотрудника
не должно быть активного дубля в целевом департаменте.
Параметры запроса
integer
required
ID переводимой активной записи трудоустройства.
integer
ID целевого департамента. Департамент должен принадлежать школе. Передаётся ровно один параметр из пары
toDepartmentId / toDepartmentExtId.string
Внешний идентификатор (
extId) целевого департамента — альтернатива toDepartmentId.string
Дата перевода в формате ISO 8601. Должна попадать в интервал текущего трудоустройства. По умолчанию — текущий
момент.
Перевести по внешнему идентификатору
StaffManage.
Аналог перевода по employmentId, но активная запись трудоустройства находится по внешнему идентификатору
extId в рамках школы. Тело запроса — как у обычного перевода, без поля employmentId.
Параметры запроса
string
required
Внешний идентификатор активной записи трудоустройства. Значение в пути должно быть URL-encoded.
integer
ID целевого департамента. Департамент должен принадлежать школе. Передаётся ровно один параметр из пары
toDepartmentId / toDepartmentExtId.string
Внешний идентификатор (
extId) целевого департамента — альтернатива toDepartmentId.string
Дата перевода в формате ISO 8601. Должна попадать в интервал текущего трудоустройства. По умолчанию — текущий
момент.
Сменить должность
StaffManage.
Закрывает текущую активную запись трудоустройства (finishAt, статус Terminated) и создаёт новую активную
запись с новой должностью в том же департаменте. Целевая должность должна принадлежать школе, у сотрудника не
должно быть активного дубля с новой должностью.
Запрос должен явно выражать намерение: передайте должность (toPositionId или toPositionExtId), чтобы
назначить её, либо toPositionId: null, чтобы снять должность (сотрудник останется в департаменте без
должности). Если не передать ни одно из этих полей, вернётся ошибка StaffEmploymentInputRequired.
Параметры запроса
integer
required
ID изменяемой активной записи трудоустройства.
integer | null
ID целевой должности. Должность должна принадлежать школе. Передаётся ровно один параметр из пары
toPositionId / toPositionExtId. Значение null снимает должность — трудоустройство остаётся в
департаменте без должности. Оба поля пары одновременно передавать нельзя.string
Внешний идентификатор (
extId) целевой должности — альтернатива toPositionId.string
Дата смены должности в формате ISO 8601. Должна попадать в интервал текущего трудоустройства. По умолчанию —
текущий момент.
Сменить должность по внешнему идентификатору
StaffManage.
Аналог смены должности по employmentId, но активная запись трудоустройства находится по внешнему идентификатору
extId в рамках школы. Тело запроса — как у обычной смены должности, без поля employmentId: передайте
должность, чтобы назначить её, либо toPositionId: null, чтобы снять её; иначе — ошибка
StaffEmploymentInputRequired.
Параметры запроса
string
required
Внешний идентификатор активной записи трудоустройства. Значение в пути должно быть URL-encoded.
integer | null
ID целевой должности. Должность должна принадлежать школе. Передаётся ровно один параметр из пары
toPositionId / toPositionExtId. Значение null снимает должность — трудоустройство остаётся в
департаменте без должности. Оба поля пары одновременно передавать нельзя.string
Внешний идентификатор (
extId) целевой должности — альтернатива toPositionId.string
Дата смены должности в формате ISO 8601. Должна попадать в интервал текущего трудоустройства. По умолчанию —
текущий момент.
Уволить сотрудника
StaffManage.
Закрывает активную запись трудоустройства: проставляет finishAt, переводит статус в Terminated и снимает
сотрудника с руководства департаментами. В ответе возвращается закрытая запись.
Защиты при увольнении с последнего активного трудоустройства: нельзя уволить самого себя
(
StaffCannotTerminateSelf) и владельца школы (StaffCannotTerminateSchoolOwner).Параметры запроса
integer
required
ID увольняемой активной записи трудоустройства.
string
Дата увольнения в формате ISO 8601. Должна попадать в интервал текущего трудоустройства. По умолчанию —
текущий момент.
Уволить по внешнему идентификатору
StaffManage.
Аналог увольнения по employmentId, но активная запись трудоустройства находится по внешнему идентификатору
extId в рамках школы. Тело запроса — как у обычного увольнения, без поля employmentId. Действуют те же
защиты и та же логика перевода пользователя в статус Terminated при увольнении с последнего активного
трудоустройства.
Параметры запроса
string
required
Внешний идентификатор активной записи трудоустройства. Значение в пути должно быть URL-encoded.
string
Дата увольнения в формате ISO 8601. Должна попадать в интервал текущего трудоустройства. По умолчанию —
текущий момент.
Требования к правам доступа
Модуль staff доступен только для школ сегмента
Corporate. Для чтения списка требуется право StaffView, для
операций найма, перевода, повышения и увольнения — право StaffManage.Обновлено: 2026-07-22 12:19 UTC