Skip to main content

Заголовки запроса

Authorization
string
required
API токен сервисного пользователя в формате Bearer. Получите токен в панели администратора школы. Формат: Bearer YOUR_TOKEN.
Seller-Id
string
required
Уникальный идентификатор продавца в системе. Используется для разграничения доступа между разными продавцами.
School-Id
string
required
Уникальный идентификатор школы в системе. Определяет контекст выполнения операции.
Отсутствие (absence) фиксирует период, когда сотрудник не работает: отпуск (Vacation), больничный (SickLeave) или командировку (BusinessTrip). Отсутствие привязывается к трудоустройству сотрудника.
Все эндпоинты модуля staff доступны только для школ сегмента Corporate. Для остальных сегментов запрос вернёт ошибку 403 Forbidden.

Список отсутствий

GET /saas/v2/staff/absence/list
Требуется аутентификация и право StaffView.

Параметры запроса

Параметры-массивы передаются повторением параметра в строке запроса: employmentIds=1&employmentIds=2.

Пагинация

skip
integer
Количество записей, которые нужно пропустить. По умолчанию 0.
page
integer
Номер страницы (альтернатива skip). Начинается с 1.
take
integer
Количество записей на странице. По умолчанию 10.

Фильтрация

employmentIds
integer[]
Фильтр по ID трудоустройств. До 250 значений.
positionIds
integer[]
Фильтр по ID должностей. До 250 значений.
types
enum[]
Фильтр по типам отсутствия. Возможные значения: Vacation, SickLeave, BusinessTrip. До 250 значений.
currentOnly
boolean
Если true — вернуть только текущие (активные на данный момент) отсутствия.

Поля ответа

payload
object
Постраничный список отсутствий.
curl --location 'https://api.exode.biz/saas/v2/staff/absence/list?take=10&types=Vacation' \
  --header 'Seller-Id: {{ sellerId }}' \
  --header 'School-Id: {{ schoolId }}' \
  --header 'Authorization: Bearer YOUR_TOKEN'
{
  "success": true,
  "code": 200,
  "payload": {
    "page": 1,
    "count": 1,
    "pages": 1,
    "isFirst": true,
    "isLast": true,
    "items": [
      {
        "id": 2,
        "createdAt": "2026-07-02T11:15:47.341Z",
        "updatedAt": "2026-07-02T11:15:47.354Z",
        "archivedAt": null,
        "schoolId": 198,
        "employmentId": 9,
        "type": "Vacation",
        "startAt": "2026-07-06T00:00:00.000Z",
        "finishAt": "2026-07-20T00:00:00.000Z",
        "note": "Summer vacation (updated)"
      }
    ],
    "next": {
      "skip": 0,
      "take": 10,
      "page": 1
    },
    "prev": {
      "skip": 0,
      "take": 10,
      "page": 1
    }
  }
}

Создать отсутствие

POST /saas/v2/staff/absence/create
Требуется аутентификация и право StaffManage.

Параметры запроса

employmentId
integer
required
ID трудоустройства сотрудника, к которому относится отсутствие.
type
enum
required
Тип отсутствия. Возможные значения: Vacation (отпуск), SickLeave (больничный), BusinessTrip (командировка).
startAt
string
required
Дата начала отсутствия в формате ISO 8601. Должна быть не позже finishAt.
finishAt
string
Дата окончания отсутствия в формате ISO 8601. Должна быть не раньше startAt.
note
string
Комментарий к отсутствию. Максимум 500 символов. Автоматически обрезаются пробелы в начале и конце.
curl --location 'https://api.exode.biz/saas/v2/staff/absence/create' \
  --header 'Seller-Id: {{ sellerId }}' \
  --header 'School-Id: {{ schoolId }}' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --data-raw '{
    "employmentId": 9,
    "type": "Vacation",
    "startAt": "2026-07-06T00:00:00.000Z",
    "finishAt": "2026-07-20T00:00:00.000Z",
    "note": "Summer vacation"
  }'
{
  "success": true,
  "code": 201,
  "payload": {
    "id": 2,
    "createdAt": "2026-07-02T11:15:47.341Z",
    "updatedAt": "2026-07-02T11:15:47.341Z",
    "archivedAt": null,
    "schoolId": 198,
    "employmentId": 9,
    "type": "Vacation",
    "startAt": "2026-07-06T00:00:00.000Z",
    "finishAt": "2026-07-20T00:00:00.000Z",
    "note": "Summer vacation"
  }
}

Обновить отсутствие

PUT /saas/v2/staff/absence/{absenceId}/update
Требуется аутентификация и право StaffManage. Обновляет поля отсутствия. Все поля тела необязательны — передавайте только те, которые нужно изменить. Привязку к трудоустройству (employmentId) изменить нельзя.

Параметры запроса

absenceId
integer
required
ID обновляемого отсутствия.
type
enum
Тип отсутствия. Возможные значения: Vacation, SickLeave, BusinessTrip.
startAt
string
Дата начала отсутствия в формате ISO 8601. Должна быть не позже finishAt.
finishAt
string
Дата окончания отсутствия в формате ISO 8601. Должна быть не раньше startAt.
note
string
Комментарий к отсутствию. Максимум 500 символов.
curl --location --request PUT 'https://api.exode.biz/saas/v2/staff/absence/2/update' \
  --header 'Seller-Id: {{ sellerId }}' \
  --header 'School-Id: {{ schoolId }}' \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_TOKEN' \
  --data-raw '{
    "note": "Summer vacation (updated)"
  }'
{
  "success": true,
  "code": 200,
  "payload": {
    "id": 2,
    "createdAt": "2026-07-02T11:15:47.341Z",
    "updatedAt": "2026-07-02T11:15:47.354Z",
    "archivedAt": null,
    "schoolId": 198,
    "employmentId": 9,
    "type": "Vacation",
    "startAt": "2026-07-06T00:00:00.000Z",
    "finishAt": "2026-07-20T00:00:00.000Z",
    "note": "Summer vacation (updated)"
  }
}

Удалить отсутствие

DELETE /saas/v2/staff/absence/{absenceId}/delete
Требуется аутентификация и право StaffManage.

Параметры запроса

absenceId
integer
required
ID удаляемого отсутствия.

Ответ

deleted
boolean
required
Флаг успешного удаления.
curl --location --request DELETE 'https://api.exode.biz/saas/v2/staff/absence/2/delete' \
  --header 'Seller-Id: {{ sellerId }}' \
  --header 'School-Id: {{ schoolId }}' \
  --header 'Authorization: Bearer YOUR_TOKEN'
{
  "success": true,
  "code": 200,
  "payload": {
    "deleted": true
  }
}

Требования к правам доступа

Модуль staff доступен только для школ сегмента Corporate. Для чтения списка требуется право StaffView, для создания, обновления и удаления отсутствий — право StaffManage.
Сервисный пользователь должен быть аутентифицирован по токену и иметь соответствующие права доступа к указанной школе.