Заголовки запроса
string
обязательно
API-токен сервисного пользователя в формате
Bearer YOUR_TOKEN. Токен выпускает владелец школы в кабинете:
Управление → Школа → Для разработчиков → API-ключи — подробнее в разделе «Аутентификация».integer
обязательно
Числовой ID продавца — аккаунта, которому принадлежит школа. Скопируйте его на странице API-ключи в
карточке «Данные для интеграции → Идентификаторы». По этому ID проверяются права токена.
integer
обязательно
Числовой ID школы, берётся там же, где
Seller-Id. Значение должно совпадать со школой продавца — иначе
вернётся ошибка 400 с cause: "ForbiddenSchoolMismatch".Отсутствие (
absence) фиксирует период, когда сотрудник не работает: отсутствие без уточнения причины
(Absent), отпуск (Vacation), отгул (DayOff), командировку (BusinessTrip), больничный (SickLeave),
отпуск по уходу за ребёнком (ParentalLeave) или учебный отпуск (StudyLeave). Отсутствие привязывается
к трудоустройству сотрудника, а не к пользователю: если у сотрудника несколько мест работы, укажите то, к
которому относится отсутствие (на статус пользователя это не влияет — учитываются отсутствия по всем его
трудоустройствам).startAt и finishAt — моменты времени (ISO 8601, UTC), а не календарные дни. Отсутствие считается текущим,
пока startAt ≤ текущий момент ≤ finishAt. Отпуск «с 1 по 14 августа включительно» передавайте как
startAt: "2026-08-01T00:00:00Z", finishAt: "2026-08-14T23:59:59Z" (с поправкой на часовой пояс компании):
значение 2026-08-14T00:00:00Z завершит отсутствие в начале 14-го числа. Без finishAt отсутствие действует
бессрочно, пока вы не зададите дату окончания.Создание, обновление и удаление отсутствия автоматически синхронизирует статус пользователя
Active ↔
OnLeave: если у пользователя есть текущее (действующее на данный момент) отсутствие — статус становится
OnLeave, если текущих отсутствий не осталось — возвращается Active. OnLeave — информационный статус:
вход и доступ к платформе он не блокирует. Переходы не затрагивают пользователей в других статусах
(Banned, Blocked, Terminated). Помимо пересчёта при API-вызовах, платформа раз в час автоматически
сверяет статусы с календарём: отсутствие с будущей датой начала переведёт сотрудника в OnLeave при её
наступлении, а истёкшее — вернёт Active без каких-либо вызовов с вашей стороны.Список отсутствий
StaffView).
Параметры запроса
Параметры-массивы передаются повторением параметра в строке запроса:
employmentIds=1&employmentIds=2.Пагинация
integer
Количество записей, которые нужно пропустить. По умолчанию
0.integer
Номер страницы (альтернатива
skip). Начинается с 1.integer
Количество записей на странице. По умолчанию
100, максимум 1000.Фильтрация
string[]
Фильтр по внешним идентификаторам (
extId) отсутствий. До 250 значений, каждое до 50 символов.integer[]
Фильтр по ID трудоустройств. До 250 значений. При переводе и смене должности отсутствия остаются на закрытой
записи трудоустройства, поэтому для всей истории сотрудника передайте ID всех его записей — их можно получить
через
employment/list?userIds=....integer[]
Фильтр по ID должностей (должность берётся из трудоустройства, к которому привязано отсутствие). До 250
значений.
enum[]
Фильтр по типам отсутствия. Возможные значения:
Absent, Vacation, DayOff, BusinessTrip, SickLeave,
ParentalLeave, StudyLeave. До 250 значений.boolean
Если
true — вернуть только текущие отсутствия: startAt уже наступил, а finishAt не задан или ещё не
прошёл.Поля ответа
object
Постраничный список отсутствий.
Создать отсутствие
StaffManage).
Параметры запроса
Трудоустройство указывается ровно одним из двух полей:
employmentId или employmentExtId.string
Внешний идентификатор отсутствия из системы клиента. От 1 до 50 символов, без
/ и пробелов. Должен быть
уникален в рамках школы среди неудалённых записей — иначе вернётся ошибка StaffAbsenceExtIdIsNotUniq.integer
ID трудоустройства сотрудника, к которому относится отсутствие. Обязателен, если не передан
employmentExtId.
Можно указать и уже закрытую запись — например, при переносе истории отсутствий.string
Внешний идентификатор (
extId) трудоустройства — тот, что вы передали при найме. Альтернатива employmentId —
обязателен, если не передан employmentId. Ищется только среди открытых (не уволенных) трудоустройств школы;
если такого нет — вернётся ошибка StaffEmploymentNotFound.enum
обязательно
Тип отсутствия. Возможные значения:
Absent (отсутствует), Vacation (отпуск), DayOff (отгул),
BusinessTrip (командировка), SickLeave (больничный), ParentalLeave (отпуск по уходу за ребёнком),
StudyLeave (учебный отпуск).string
обязательно
Дата начала отсутствия в формате ISO 8601. Должна быть не позже
finishAt.string
Дата окончания отсутствия в формате ISO 8601. Должна быть не раньше
startAt, иначе запрос будет отклонён.
Не передавайте, если дата окончания пока неизвестна.string
Комментарий к отсутствию. Максимум 500 символов. Автоматически обрезаются пробелы в начале и конце.
Обновить отсутствие
StaffManage).
Обновляет поля отсутствия. Все поля тела необязательны — передавайте только те, которые нужно изменить.
Привязку к трудоустройству (employmentId) изменить нельзя.
Параметры запроса
integer
обязательно
ID обновляемого отсутствия.
string
Внешний идентификатор отсутствия из системы клиента. От 1 до 50 символов, без
/ и пробелов. Должен быть
уникален в рамках школы среди неудалённых записей — иначе вернётся ошибка StaffAbsenceExtIdIsNotUniq.enum
Тип отсутствия. Возможные значения:
Absent, Vacation, DayOff, BusinessTrip, SickLeave,
ParentalLeave, StudyLeave.string
Дата начала отсутствия в формате ISO 8601. Должна быть не позже
finishAt.string | null
Дата окончания отсутствия в формате ISO 8601. Должна быть не раньше
startAt (с учётом уже сохранённого
значения, если startAt не передан), иначе вернётся StaffAbsenceInvalidInterval. null снимает дату
окончания — отсутствие становится бессрочным.string
Комментарий к отсутствию. Максимум 500 символов.
Обновить отсутствие по extId
StaffManage).
Аналог обновления по absenceId, но отсутствие идентифицируется внешним идентификатором (extId) в рамках
школы. Тело запроса такое же, как у PUT /saas/v2/staff/absence/{absenceId}/update.
Параметры запроса
string
обязательно
Внешний идентификатор обновляемого отсутствия. Передаётся в URL-encoded виде.
string
Новый внешний идентификатор отсутствия. От 1 до 50 символов, без
/ и пробелов. Должен быть уникален
в рамках школы среди неудалённых записей.enum
Тип отсутствия. Возможные значения:
Absent, Vacation, DayOff, BusinessTrip, SickLeave,
ParentalLeave, StudyLeave.string
Дата начала отсутствия в формате ISO 8601. Должна быть не позже
finishAt.string | null
Дата окончания отсутствия в формате ISO 8601. Должна быть не раньше
startAt (с учётом уже сохранённого
значения, если startAt не передан), иначе вернётся StaffAbsenceInvalidInterval. null снимает дату
окончания — отсутствие становится бессрочным.string
Комментарий к отсутствию. Максимум 500 символов.
Удалить отсутствие
StaffManage).
Параметры запроса
integer
обязательно
ID удаляемого отсутствия.
Ответ
integer
обязательно
Количество удалённых записей (
1 при успешном удалении).Удалить отсутствие по extId
StaffManage).
Аналог удаления по absenceId, но отсутствие идентифицируется внешним идентификатором (extId) в рамках школы.
Параметры запроса
string
обязательно
Внешний идентификатор удаляемого отсутствия. Передаётся в URL-encoded виде.
Ответ
integer
обязательно
Количество удалённых записей (
1 при успешном удалении).Требования к правам доступа
Модуль staff доступен только для школ сегмента
Corporate. Для чтения списка требуется право «Просмотр персонала» (StaffView), для
создания, обновления и удаления отсутствий — право «Управление персоналом» (StaffManage).Обновлено: 2026-09-25 13:43 UTC