> ## Documentation Index
> Fetch the complete documentation index at: https://faq.exode.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# API и синхронизация оргструктуры

> Как подключить HR-систему или 1С к компании через API: какие операции доступны, внешние идентификаторы и правила синхронизации

Если кадровый учёт ведётся в 1С, собственной HR-системе или другом сервисе, оргструктуру можно
синхронизировать с Exode через API. Ваша система создаёт подразделения и должности, принимает, переводит и
увольняет сотрудников, передаёт отсутствия. Exode применяет к этим изменениям те же правила, что и к
изменениям в интерфейсе, включая автоназначение курсов.

Эта страница описывает возможности API для бизнеса и HR. Техническое описание запросов — в
[документации для разработчиков](https://docs.exode.biz/). Общие сведения об API-ключах — в разделе
[API](https://faq.exode.biz/ru/general/developers/api.md).

## API-ключ компании

Ключи создаются в разделе **Компания → Для разработчиков → API-ключи**.

* В компании может быть до 5 API-ключей. Больше — по запросу в поддержку: «Лимит API-ключей - 5. Напишите в
  поддержку».
* Ключ показывается один раз, сразу после выпуска. Сохраните его.
* **Перевыпустить API-ключ** выдаёт новый ключ, а старый сразу перестаёт работать.
* В компании новый ключ получает права на оргструктуру — «Управление персоналом» и «Просмотр персонала» —
  и не получает права на продажи и возвраты. Права ключа можно изменить.

## Что можно делать через API

| Раздел | Операции |
| - | - |
| **Подразделения** | Получить дерево и список, создать, изменить, удалить, назначить вышестоящее подразделение и основного руководителя |
| **Должности** | Получить список, создать, изменить, удалить, задать грейды и подразделения должности |
| **Грейды** | Получить список, создать, изменить, удалить |
| **Назначения сотрудников** | Получить список, принять, перевести в другое подразделение, сменить должность или грейд, уволить |
| **Руководители подразделений** | Назначить, снять |
| **Отсутствия** | Получить список, создать, изменить, удалить |
| **Пользователи** | Создать, обновить, создать или обновить одной операцией, найти, получить список, удалить |

Операции с оргструктурой работают только в корпоративной компании. В онлайн-школе они недоступны.

## Внешние идентификаторы

Чтобы не хранить у себя идентификаторы Exode, передавайте свои — табельный номер, код подразделения из 1С и
т. п. Почти все операции можно выполнить как по идентификатору Exode, так и по вашему внешнему
идентификатору.

| Объект | Правило уникальности |
| - | - |
| Подразделение, должность, грейд, отсутствие | Внешний идентификатор уникален в компании |
| Назначение сотрудника | Уникален среди действующих назначений. При переводе и смене должности сохраняется за сотрудником |
| Руководитель подразделения | Уникален в компании |

Если идентификатор уже занят, операция вернёт ошибку, например «Внешний идентификатор занятости не
уникален» или «Внешний идентификатор грейда не уникален».

## Как синхронизировать сотрудников

**1. Передайте структуру**

Создайте подразделения сверху вниз — сначала вышестоящие, потом вложенные. Затем создайте должности и, если
нужно, грейды.

**2. Создайте учётные записи**

Создайте пользователя и сразу передайте его подразделение, должность и грейд. В компании пользователь без
подразделения не создаётся: «Не заполнены обязательные данные о занятости».

**3. Передавайте кадровые события**

Перевод, смену должности и увольнение отправляйте отдельными операциями по внешнему идентификатору
назначения.

**4. Передавайте отсутствия**

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

> [!TIP]
>
> Для регулярной сверки используйте операцию «создать или обновить» пользователя. Повторная отправка того же
> сотрудника с тем же подразделением и должностью не создаёт дубль: Exode вернёт существующее назначение и, если
> у него ещё нет внешнего идентификатора, привяжет ваш.

## Правила, которые действуют и в API

| Правило | Ошибка |
| - | - |
| Принять можно только пользователя, который уже есть в компании | Ошибка: пользователь не найден |
| У человека не может быть двух одинаковых назначений в одном подразделении | «Такое назначение сотрудника уже существует» |
| Должность назначается только в разрешённых подразделениях | «Должность недоступна в этом подразделении» |
| Грейд должен входить в грейды должности | «Этот грейд не относится к должности» |
| Грейд можно присвоить, только если грейды включены | «Грейды выключены в настройках оргструктуры» |
| Дата перевода, смены должности или увольнения не может выходить за период действия назначения | «Некорректная дата изменения назначения» |
| Подразделение нельзя перенести внутрь собственной ветки | «Нельзя переместить подразделение внутрь собственной ветки» |
| Удалить можно только пустое подразделение и должность, грейд без сотрудников | Ошибка удаления |
| Нельзя уволить владельца компании | «Нельзя удалить последнее назначение владельца школы» |
| Записи из Verifix меняются только в Verifix | «Запись ведётся во внешней системе (Verifix) — измените её там» |

## Что происходит после изменений через API

* **Приём, перевод, смена должности или грейда** — через минуту-две проверяются правила автоназначения. См.
  [Автоназначение курсов](https://faq.exode.biz/ru/corporate/auto-assignment.md).
* **Увольнение из последнего подразделения** — учётная запись получает статус «Уволен», вход закрывается.
  Данные и прогресс сохраняются.
* **Повторный приём уволенного** — учётная запись снова становится активной.
* **Удаление пользователя** — все его назначения закрываются.

## Вебхуки

Вебхуки в компании работают так же, как в онлайн-школе: см. [Вебхуки](https://faq.exode.biz/ru/general/developers/webhooks.md).
События об оплатах, возвратах и записи через оплату в компании недоступны. Вебхуки находятся в разделе
**Компания → Для разработчиков → Вебхуки**.

## Частые вопросы

> **Можно ли принять сотрудника, у которого ещё нет учётной записи?**
>
> Нет. Сначала создайте пользователя, передав подразделение при создании, — тогда учётная запись и назначение
> появятся одной операцией.

> **Как передать перевод в другой отдел вместе с новой должностью?**
>
> Одной операцией перевода: в ней можно указать новое подразделение, новую должность и грейд. Должность
> проверяется для нового подразделения.

> **Что будет, если отправить увольнение задним числом?**
>
> Дата увольнения не может быть раньше начала назначения. Если дата раньше, вернётся ошибка «Некорректная
> дата изменения назначения».

> **Сохранится ли внешний идентификатор после перевода?**
>
> Да. Внешний идентификатор назначения переходит к новому назначению, поэтому следующие операции можно
> отправлять по тому же идентификатору.

> **Можно ли одновременно использовать API и Verifix?**
>
> Можно, но записи из Verifix через API изменить нельзя — их меняют только в Verifix. Управляйте через API
> теми записями, которые не приходят из Verifix.

> **Почему операции с оргструктурой возвращают ошибку доступа?**
>
> У ключа нет прав «Управление персоналом» или «Просмотр персонала». Проверьте права ключа в разделе
> **API-ключи**.

> **Есть ли вебхуки о приёме и увольнении сотрудников?**
>
> Нет. Кадровые события вы передаёте в Exode сами, поэтому они уже есть в вашей системе. Вебхуки сообщают о
> событиях обучения и пользователей, например о завершении курса или выдаче сертификата.

***

*Обновлено: 2026-10-15 18:32 UTC*


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.