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

# Типы документов

> Откуда взять type_id и какой тип пригоден для создания через API

`type_id` обязателен при создании документа, но придумать его нельзя — он
берётся из справочника типов вашего тенанта. Типы группируются по категориям и
задают, из какого шаблона генерируется документ и о ком он.

Всё чтение справочника покрывает область `documents:read`.

## Список типов

```bash theme={null}
curl -H "X-API-Key: $DOODOCS_API_KEY" \
  "https://app.doodocs.kz/api/developer/v1/document_types?limit=100"
```

```json theme={null}
{
  "document_types": [
    {
      "id": "5c9e1f04-…",
      "title": "Приказ о приёме на работу",
      "status": "ACTIVE",
      "template_id": "tpl_7c1a…",
      "category_id": "cat_2b8f…",
      "subject_type": "HR",
      "confidential": false,
      "allow_upload": true,
      "allow_api": true
    }
  ],
  "next_page_token": ""
}
```

| Поле           | Что означает                                                           |
| -------------- | ---------------------------------------------------------------------- |
| `template_id`  | Шаблон, из которого генерируется документ. Пустой — у типа нет шаблона |
| `category_id`  | Категория для группировки; ей же фильтруется список                    |
| `subject_type` | Кого касается документ: `HR` — сотрудника, `INTERNAL` — внутренний     |
| `confidential` | Документы типа видны ограниченному кругу                               |
| `allow_upload` | Тип предполагает создание из загруженного файла                        |
| `allow_api`    | Тип предназначен для создания через Developer API                      |

<Warning>
  `allow_api` и `allow_upload` — пометки администратора о назначении типа. Сервер
  их сейчас не проверяет при создании документа, поэтому опирайтесь на них сами:
  создавая документ типа с `allow_api: false`, вы обходите договорённость,
  принятую в вашей компании.
</Warning>

## Фильтр по категории

```bash theme={null}
curl -H "X-API-Key: $DOODOCS_API_KEY" \
  "https://app.doodocs.kz/api/developer/v1/document_types?category_id=cat_2b8f…"
```

Список категорий отдаёт `GET /document_type_categories`:

```json theme={null}
{
  "categories": [
    {
      "id": "cat_2b8f…",
      "title": "Кадровые приказы",
      "status": "ACTIVE",
      "icon": "file-lines",
      "sort_order": 10
    }
  ],
  "next_page_token": ""
}
```

`sort_order` повторяет порядок категорий в интерфейсе — используйте его, если
показываете справочник пользователю.

## Как выбрать тип

<Steps>
  <Step title="Найдите категорию">
    Один раз выгрузите `GET /document_type_categories` и сохраните у себя. Список
    меняется редко.
  </Step>

  <Step title="Найдите тип в категории">
    `GET /document_types?category_id=…`. Сопоставьте по `title` и запомните `id`.
  </Step>

  <Step title="Возьмите шаблон типа">
    `template_id` из типа передайте в `GET /document_templates/{template_id}` и
    прочитайте `variable_schema` — см. [Шаблоны](/ru/guides/documents/templates).
  </Step>

  <Step title="Создайте документ">
    В `POST /documents` передайте `type_id`, `template_id`, `template_version` и
    `template_values`. Дальше — [Подписание](/ru/guides/documents/signing).
  </Step>
</Steps>

<Tip>
  Не сопоставляйте типы по названию на каждом запуске: названия редактируются.
  Сохраните `id` типа и шаблона у себя в конфигурации интеграции.
</Tip>

Оба списка подчиняются общей [пагинации](/ru/api-reference/pagination): `limit`
по умолчанию `100`, максимум `1000`, дальше — по `page_token`.
