---
title: "Завести подразделение"
method: POST
path: "/api/v1/core/org-structure/departments"
tags: ["Core employees"]
---

# Завести подразделение

`POST /api/v1/core/org-structure/departments`

## Request

- Base URL: `https://erp.akeda.ru`
- URL: `https://erp.akeda.ru/api/v1/core/org-structure/departments`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://erp.akeda.ru/oauth2/authorize`, token URL `https://erp.akeda.ru/oauth2/token`, scopes: `akeda:delegate`)
  - HTTP bearer

Заводит подразделение одним вызовом. Родитель — id, путь «Родитель / Имя» или однозначное название; руководитель и заместитель — id, почта (с правом `core.employee_requisites:read`) или ФИО действующего сотрудника. Неоднозначное совпадение — 400 со списком candidates. Бизнес без указания берётся у родителя, при одном бизнесе кабинета — он. Вид без указания — по месту в дереве. Подразделение с тем же названием под тем же родителем уже есть — меняется оно (status updated или skipped). Руководитель вне оргструктуры ставится в это подразделение (head_placed).

## Request body

- CoreOrgDepartmentInput
  - `name` string: Название; обязательно при заведении
  - `parent` string: Родитель: id, путь «Родитель / Имя» или однозначное название; пустая строка или «-» — корень
  - `kind` 'department' | 'division' | 'group': Вид: department (департамент), division (отдел), group (группа)
  - `head` string: Руководитель: id, почта или ФИО действующего сотрудника; пустая строка или «-» снимает
  - `deputy` string: Заместитель: id, почта или ФИО; не руководитель; пустая строка или «-» снимает
  - `business` string: Бизнес: id или название; без него — бизнес родителя или единственный бизнес кабинета
  - `default_cfo_id` string: ЦФО по умолчанию: id действующего ЦФО; пустая строка или «-» снимает

## Response `200`

Подразделение уже было

- CoreOrgDepartmentSaveResult
  - `status` 'created' | 'updated' | 'skipped', required
  - `head_placed` boolean, required: Руководитель был вне оргструктуры и поставлен в это подразделение
  - `department` CoreOrgDepartmentNode, required
    - `id` string, uuid, required
    - `name` string, required
    - `code` string, required
    - `path` string, required: Путь «Родитель / Имя»
    - `kind` 'department' | 'division' | 'group' | '', required
    - `parent_id` string, uuid, nullable, required
    - `business_id` string, uuid, nullable, required
    - `business_name` string, required
    - `head` CoreOrgPersonRef, required
      - `employee_id` string, uuid, required
      - `full_name` string, required
    - `deputy` CoreOrgPersonRef, required
      - `employee_id` string, uuid, required
      - `full_name` string, required
    - `default_cfo_id` string, uuid, nullable, required
    - `people` CoreOrgMember[], required
      - `employee_id` string, uuid, required
      - `full_name` string, required
      - `position` string, required
      - `position_id` string, uuid, nullable, required
      - `email` string, required: Пусто у чужой карточки без права core.employee_requisites:read
      - `user_id` integer, nullable, required
      - `username` string, required
      - `department` string, required
      - `department_id` string, uuid, nullable, required
      - `manager` CoreOrgPersonRef, required
        - `employee_id` string, uuid, required
        - `full_name` string, required
      - `is_head` boolean, required
    - `children` CoreOrgDepartmentNode[], required

## Other responses

- `201`: Подразделение заведено
- `400`: Некорректный запрос или нарушение бизнес-правила
- `401`: Сессия, ключ или кабинет не подтверждены
- `403`: Текущая роль не имеет требуемого права
- `409`: Конфликт версии, идемпотентности или бизнес-состояния

---

[API](https://skmtc.dev/akeda/apis/akeda-erp-client-api.md) · [All operations](https://skmtc.dev/akeda/apis/akeda-erp-client-api/llms.txt) · [OpenAPI document](https://skmtc.dev/akeda/apis/akeda-erp-client-api/revisions/3c60ded179f2?raw)
