[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fdocuments":3,"docs-tabs-entities\u002Fdocuments":6},{"content":4,"lastmod":5},"# Документы\n\nДокумент — это готовый файл, который Битрикс24 формирует по шаблону с подстановкой значений. Каждый документ создаётся на основе шаблона документов и провайдера данных.\n\nБитрикс24 API: `documentgenerator.document.*`\nСкоуп: `documentgenerator`\n\n## Операции\n\n- [Создать документ](.\u002Fdocuments\u002Fcreate.md) — `POST \u002Fv1\u002Fdocuments`\n- [Список документов](.\u002Fdocuments\u002Flist.md) — `GET \u002Fv1\u002Fdocuments`\n- [Документы по CRM-сущности](.\u002Fdocuments\u002Fcrm-list.md) — `GET \u002Fv1\u002Fcrm-documents`\n- [Получить документ](.\u002Fdocuments\u002Fget.md) — `GET \u002Fv1\u002Fdocuments\u002F:id`\n- [Обновить документ](.\u002Fdocuments\u002Fupdate.md) — `PATCH \u002Fv1\u002Fdocuments\u002F:id`\n- [Удалить документ](.\u002Fdocuments\u002Fdelete.md) — `DELETE \u002Fv1\u002Fdocuments\u002F:id`\n- [Поиск документов](.\u002Fdocuments\u002Fsearch.md) — `POST \u002Fv1\u002Fdocuments\u002Fsearch`\n- [Поля документа](.\u002Fdocuments\u002Ffields.md) — `GET \u002Fv1\u002Fdocuments\u002Ffields`\n\n## Ключевые поля\n\n| Поле | Описание |\n|------|---------|\n| `templateId` | Идентификатор шаблона. Источник: `GET \u002Fv1\u002Fdoc-templates` |\n| `providerClassName` | Класс провайдера данных, например `Bitrix\\DocumentGenerator\\DataProvider\\Rest` |\n| `value` | Внешний идентификатор объекта-источника, например `ORDER-1024` |\n| `values` | Значения полей-меток шаблона |\n| `number` | Номер документа |\n| `pdfUrl` | Ссылка на готовый PDF |\n\nПолный список полей — [Поля документа](.\u002Fdocuments\u002Ffields.md).\n\n## Что нужно знать перед работой\n\n1. Документ создаётся по шаблону: обязательны `templateId`, `providerClassName` и `value`.\n2. `providerClassName` задаёт класс провайдера данных, `value` — внешний идентификатор объекта-источника, по которому подставляются значения полей-меток.\n3. Значения полей-меток шаблона передаются в `values`.\n4. Поля ответа приходят в camelCase.\n5. Готовый файл доступен по ссылкам `downloadUrl` и `pdfUrl` (для пользователя) и `downloadUrlMachine` \u002F `pdfUrlMachine` (для приложения).\n6. Документы конкретной записи CRM возвращает отдельный эндпоинт [`GET \u002Fv1\u002Fcrm-documents`](.\u002Fdocuments\u002Fcrm-list.md) со скоупом `crm`: отбор идёт по `entityTypeId` и `entityId`, идентификаторы в ответе приходят строками.\n\n## Типичный сценарий\n\n1. Выбрать шаблон: [`GET \u002Fv1\u002Fdoc-templates`](\u002Fdocs\u002Fentities\u002Fdoc-templates).\n2. Создать документ по шаблону: [`POST \u002Fv1\u002Fdocuments`](.\u002Fdocuments\u002Fcreate.md) с `templateId`, `providerClassName` и `value`.\n3. Получить, обновить или удалить документ по `id`: [`GET \u002Fv1\u002Fdocuments\u002F:id`](.\u002Fdocuments\u002Fget.md), [`PATCH \u002Fv1\u002Fdocuments\u002F:id`](.\u002Fdocuments\u002Fupdate.md), [`DELETE \u002Fv1\u002Fdocuments\u002F:id`](.\u002Fdocuments\u002Fdelete.md).\n4. Посмотреть все документы, прикреплённые к записи CRM: [`GET \u002Fv1\u002Fcrm-documents`](.\u002Fdocuments\u002Fcrm-list.md) с `entityTypeId` и `entityId`.\n\n## Лимиты\n\n| Лимит | Значение |\n|-------|----------|\n| Максимум записей на запрос | 5000 (`limit ≤ 5000`) |\n| Авто-пагинация | включается при `limit > 50` |\n| `offset` на больших выборках | рекомендуется `limit ≤ 500` при `offset ≥ 2500` |\n| Batch-запросы | до 50 операций в [`POST \u002Fv1\u002Fbatch`](\u002Fdocs\u002Fbatch) |\n| Rate limit | общий для API Вайбкод — см. [Лимиты и оптимизация](\u002Fdocs\u002Foptimization) |\n\n## Смотрите также\n\n- [Шаблоны документов](\u002Fdocs\u002Fentities\u002Fdoc-templates)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Batch](\u002Fdocs\u002Fbatch)\n","2026-06-29",{"documents\u002Fcreate.md":7,"documents\u002Flist.md":8,"documents\u002Fcrm-list.md":9,"documents\u002Fget.md":10,"documents\u002Fupdate.md":11,"documents\u002Fdelete.md":12,"documents\u002Fsearch.md":13,"documents\u002Ffields.md":14},"\n## Создать документ\n\n`POST \u002Fv1\u002Fdocuments`\n\nСоздаёт документ по шаблону: Битрикс24 формирует файл, подставляя в шаблон значения из провайдера данных.\n\n## Поля запроса (body)\n\nМинимум для создания: `templateId`, `providerClassName`, `value`.\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|---------|\n| `templateId` | number | ★ | Идентификатор шаблона, по которому формируется документ. Список шаблонов: `GET \u002Fv1\u002Fdoc-templates` |\n| `providerClassName` | string | ★ | Класс провайдера данных — источник значений для меток шаблона. Например `Bitrix\\DocumentGenerator\\DataProvider\\Rest` |\n| `value` | string | ★ | Внешний идентификатор объекта-источника, по которому провайдер подставляет значения. Например `ORDER-1024` |\n| `values` | object | | Значения полей-меток шаблона. Ключ — имя метки, значение — подставляемый текст. Например `{\"DocumentNumber\":\"2026-001\"}` |\n| `fields` | object | | Описание форматирования полей документа |\n| `stampsEnabled` | boolean | | Подставлять в документ печати и подписи |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"templateId\": 53,\n    \"providerClassName\": \"Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest\",\n    \"value\": \"ORDER-1024\",\n    \"values\": { \"DocumentNumber\": \"2026-001\" }\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"templateId\": 53,\n    \"providerClassName\": \"Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest\",\n    \"value\": \"ORDER-1024\",\n    \"values\": { \"DocumentNumber\": \"2026-001\" }\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    templateId: 53,\n    providerClassName: 'Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest',\n    value: 'ORDER-1024',\n    values: { DocumentNumber: '2026-001' },\n  }),\n})\n\nconst { success, data } = await res.json()\nconsole.log('Document ID:', data.id)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    templateId: 53,\n    providerClassName: 'Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest',\n    value: 'ORDER-1024',\n    values: { DocumentNumber: '2026-001' },\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | object | Созданный документ со всеми полями — см. [Поля документа](\u002Fdocs\u002Fentities\u002Fdocuments\u002Ffields) |\n\nПоле `provider` в ответе соответствует переданному в запросе `providerClassName`.\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 51,\n    \"title\": \"Договор поставки 2026-001\",\n    \"number\": \"2026-001\",\n    \"templateId\": 53,\n    \"provider\": \"Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest\",\n    \"value\": \"ORDER-1024\",\n    \"fileId\": 241,\n    \"pdfId\": 245,\n    \"imageId\": 243,\n    \"createTime\": \"2026-03-18T17:27:48+03:00\",\n    \"updateTime\": \"2026-03-18T17:27:48+03:00\",\n    \"createdBy\": 503,\n    \"updatedBy\": null,\n    \"values\": { \"DocumentNumber\": \"2026-001\" },\n    \"stampsEnabled\": false,\n    \"publicUrl\": null,\n    \"downloadUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getfile&id=51\",\n    \"pdfUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getpdf&id=51\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n403 — нет скоупа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'documentgenerator' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | API-ключ не имеет скоупа `documentgenerator` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 400 | `MISSING_REQUIRED_FIELDS` | Не передано одно из обязательных полей: `templateId`, `providerClassName` или `value` |\n| 404 | `ENTITY_NOT_FOUND` | Шаблон с указанным `templateId` не найден или недоступен |\n| 422 | `BITRIX_ERROR` | Провайдер данных не вернул объект по указанному `value` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список документов](\u002Fdocs\u002Fentities\u002Fdocuments\u002Flist)\n- [Получить документ](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fget)\n- [Шаблоны документов](\u002Fdocs\u002Fentities\u002Fdoc-templates)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n","## Список документов\n\n`GET \u002Fv1\u002Fdocuments`\n\nВозвращает список документов с поддержкой фильтрации, сортировки, выбора полей и автоматической пагинации.\n\n## Параметры\n\n| Параметр | Тип | По умолч. | Описание |\n|----------|-----|-----------|---------|\n| `limit` | number | `50` | Количество записей (до 5000). При `limit > 50` Вайбкод автоматически запрашивает несколько страниц |\n| `offset` | number | `0` | Пропустить N записей. При `offset > 0` рекомендуется `limit ≤ 500` |\n| `select` | string | — | Выборка полей: `?select=id,title,number` |\n| `order` | object | — | Сортировка: `?order[id]=desc` |\n| `filter` | object | — | Фильтрация по полям `GET \u002Fv1\u002Fdocuments\u002Ffields`.\u003Cbr>[Синтаксис фильтрации](\u002Fdocs\u002Ffiltering). Пример: `?filter[templateId]=53` |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments?limit=10&order[id]=desc&filter[templateId]=53\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments?limit=10&order[id]=desc&filter[templateId]=53\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments?limit=10&order[id]=desc&filter[templateId]=53', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data, meta } = await res.json()\nconsole.log(`Найдено ${meta.total} документов`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments?limit=10&order[id]=desc&filter[templateId]=53', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data, meta } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив документов (все поля элемента — см. [Поля документа](\u002Fdocs\u002Fentities\u002Fdocuments\u002Ffields)) |\n| `meta.total` | number | Количество записей, соответствующих фильтру |\n| `meta.hasMore` | boolean | Есть ли ещё записи за пределами `limit` |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 51,\n      \"title\": \"Договор поставки 2026-001\",\n      \"number\": \"2026-001\",\n      \"templateId\": 53,\n      \"provider\": \"Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest\",\n      \"value\": \"ORDER-1024\",\n      \"fileId\": 241,\n      \"pdfId\": 245,\n      \"imageId\": 243,\n      \"createTime\": \"2026-03-18T17:27:48+03:00\",\n      \"updateTime\": \"2026-03-18T17:27:48+03:00\",\n      \"createdBy\": 503,\n      \"updatedBy\": null,\n      \"values\": { \"DocumentNumber\": \"2026-001\" },\n      \"stampsEnabled\": false,\n      \"downloadUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getfile&id=51\",\n      \"pdfUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getpdf&id=51\"\n    },\n    {\n      \"id\": 52,\n      \"title\": \"Договор поставки 2026-002\",\n      \"number\": \"2026-002\",\n      \"templateId\": 53,\n      \"provider\": \"Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest\",\n      \"value\": \"ORDER-1025\",\n      \"fileId\": 248,\n      \"pdfId\": 250,\n      \"imageId\": 249,\n      \"createTime\": \"2026-03-19T10:12:03+03:00\",\n      \"updateTime\": \"2026-03-19T10:12:03+03:00\",\n      \"createdBy\": 503,\n      \"updatedBy\": null,\n      \"values\": { \"DocumentNumber\": \"2026-002\" },\n      \"stampsEnabled\": false,\n      \"downloadUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getfile&id=52\",\n      \"pdfUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getpdf&id=52\"\n    }\n  ],\n  \"meta\": { \"total\": 2, \"hasMore\": false }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — фильтр по несуществующему полю:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"UNKNOWN_FILTER_FIELD\",\n    \"message\": \"Unknown filter field 'zzzNope' for entity 'documents'. Available: id, title, number, templateId, providerClassName, value, values, fields, createTime, updateTime, fileId, pdfId, imageId, stampsEnabled, provider, downloadUrl, pdfUrl, imageUrl, downloadUrlMachine, pdfUrlMachine, imageUrlMachine, createdBy, updatedBy, publicUrl\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `UNKNOWN_FILTER_FIELD` | Фильтр по полю, которого нет у документа. Список полей — `GET \u002Fv1\u002Fdocuments\u002Ffields` |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `documentgenerator` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\nПри `limit > 50` Вайбкод запрашивает несколько страниц и собирает все записи в один ответ. За один вызов возвращается не более 5000 записей.\n\nПри `offset ≥ 2500` для устойчивости запроса используйте `limit ≤ 500`.\n\nДля сложных фильтров с множеством условий параметры передаются в теле запроса — `POST \u002Fv1\u002Fdocuments\u002Fsearch`. Этот эндпоинт также поддерживает оконный поиск по датам для больших выборок. См. [Поиск документов](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fsearch).\n\n## Смотрите также\n\n- [Поиск документов](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fsearch)\n- [Создать документ](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fcreate)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Справочник сущностей](\u002Fdocs\u002Fentity-api)\n- [Batch-запросы](\u002Fdocs\u002Fbatch)\n- [Лимиты и оптимизация](\u002Fdocs\u002Foptimization)\n","## Документы по CRM-сущности\n\n`GET \u002Fv1\u002Fcrm-documents`\n\nВозвращает документы, прикреплённые к конкретной записи CRM — сделке, контакту, компании, лиду, предложению, счёту или элементу смарт-процесса. В отличие от списка всех документов портала, отбор идёт по типу записи и её идентификатору.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | По умолч. | Описание |\n|----------|-----|-------|-----------|---------|\n| `entityTypeId` (query) | number | да | — | Тип записи CRM. Допустимые значения — в списке «Типы записей CRM» ниже |\n| `entityId` (query) | number | нет | — | ID записи. Без него возвращаются документы всех записей указанного типа. Где взять ID по типу — в списке «Типы записей CRM» ниже |\n| `select` (query) | string | нет | — | Выборка полей: `?select=id,title,number` |\n| `order` (query) | object | нет | — | Сортировка: `?order[updateTime]=desc`. Направление — `asc` или `desc` |\n| `start` (query) | number | нет | `0` | Смещение для постраничного чтения |\n\nЗа один вызов возвращается до 50 документов. Для следующей страницы передайте значение `meta.next` в параметр `start`. Когда документов больше нет, `meta.next` равно `null`.\n\n### Типы записей CRM\n\nЗначение `entityTypeId` и эндпоинт, откуда взять `entityId`:\n\n- `1` — лид. ID записи: `GET \u002Fv1\u002Fleads`\n- `2` — сделка. ID записи: `GET \u002Fv1\u002Fdeals`\n- `3` — контакт. ID записи: `GET \u002Fv1\u002Fcontacts`\n- `4` — компания. ID записи: `GET \u002Fv1\u002Fcompanies`\n- `7` — предложение. ID записи: `GET \u002Fv1\u002Fquotes`\n- `31` — счёт. ID записи: `GET \u002Fv1\u002Finvoices`\n- `128` и выше — элемент смарт-процесса. Значение `entityTypeId` — из `GET \u002Fv1\u002Fsmart-processes`, ID записи — из `GET \u002Fv1\u002Fitems\u002F:entityTypeId`\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcrm-documents?entityTypeId=2&entityId=15&order[updateTime]=desc\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcrm-documents?entityTypeId=2&entityId=15&order[updateTime]=desc\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcrm-documents?entityTypeId=2&entityId=15&order[updateTime]=desc', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data, meta } = await res.json()\nconsole.log(`У записи ${meta.total} документов`)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcrm-documents?entityTypeId=2&entityId=15&order[updateTime]=desc', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data, meta } = await res.json()\n```\n\n## Поля ответа\n\nИдентификаторы возвращаются строками.\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив документов |\n| `data[].id` | string | Идентификатор документа |\n| `data[].title` | string | Название документа |\n| `data[].number` | string | Номер документа |\n| `data[].templateId` | string | Идентификатор шаблона. Источник — `GET \u002Fv1\u002Fdoc-templates` |\n| `data[].entityTypeId` | string | Тип записи CRM, к которой прикреплён документ |\n| `data[].entityId` | string | ID записи CRM, к которой прикреплён документ |\n| `data[].fileId` | string | Идентификатор готового файла |\n| `data[].pdfId` | string | Идентификатор PDF-версии |\n| `data[].imageId` | string | Идентификатор изображения-превью |\n| `data[].downloadUrl` | string | Ссылка на скачивание файла для пользователя |\n| `data[].pdfUrl` | string | Ссылка на PDF для пользователя |\n| `data[].imageUrl` | string | Ссылка на изображение-превью для пользователя |\n| `data[].downloadUrlMachine` | string | Ссылка на скачивание для приложения |\n| `data[].pdfUrlMachine` | string | Ссылка на PDF для приложения |\n| `data[].imageUrlMachine` | string | Ссылка на изображение для приложения |\n| `data[].stampsEnabled` | boolean | Включены ли подпись и печать |\n| `data[].values` | object | Значения полей-меток шаблона |\n| `data[].createTime` | string | Дата создания в формате ISO 8601 |\n| `data[].updateTime` | string | Дата изменения в формате ISO 8601 |\n| `data[].createdBy` | string | ID создателя. Источник — `GET \u002Fv1\u002Fusers` |\n| `data[].updatedBy` | string \\| null | ID последнего редактора. Источник — `GET \u002Fv1\u002Fusers` |\n| `meta.total` | number | Количество документов у записи |\n| `meta.start` | number | Смещение текущей страницы |\n| `meta.next` | number \\| null | Смещение следующей страницы. `null`, если документов больше нет |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": \"405\",\n      \"title\": \"Счёт А161\",\n      \"number\": \"А161\",\n      \"templateId\": \"1\",\n      \"entityTypeId\": \"2\",\n      \"entityId\": \"15\",\n      \"fileId\": \"1369\",\n      \"pdfId\": \"1373\",\n      \"imageId\": \"1371\",\n      \"downloadUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=crm.documentgenerator.document.download&id=405\",\n      \"pdfUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=crm.documentgenerator.document.getPdf&id=405\",\n      \"imageUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=crm.documentgenerator.document.getImage&id=405\",\n      \"downloadUrlMachine\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Frest\u002F1\u002FAPP_TOKEN\u002Fcrm.documentgenerator.document.download\u002F?id=405\",\n      \"pdfUrlMachine\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Frest\u002F1\u002FAPP_TOKEN\u002Fcrm.documentgenerator.document.getPdf\u002F?id=405\",\n      \"imageUrlMachine\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Frest\u002F1\u002FAPP_TOKEN\u002Fcrm.documentgenerator.document.getImage\u002F?id=405\",\n      \"stampsEnabled\": false,\n      \"values\": { \"_creationMethod\": \"public\" },\n      \"createTime\": \"2026-01-18T11:10:00+03:00\",\n      \"updateTime\": \"2026-01-18T11:10:00+03:00\",\n      \"createdBy\": \"29\",\n      \"updatedBy\": null\n    },\n    {\n      \"id\": \"406\",\n      \"title\": \"Акт А162\",\n      \"number\": \"А162\",\n      \"templateId\": \"4\",\n      \"entityTypeId\": \"2\",\n      \"entityId\": \"15\",\n      \"fileId\": \"1402\",\n      \"pdfId\": \"1404\",\n      \"imageId\": \"1403\",\n      \"downloadUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=crm.documentgenerator.document.download&id=406\",\n      \"pdfUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=crm.documentgenerator.document.getPdf&id=406\",\n      \"imageUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=crm.documentgenerator.document.getImage&id=406\",\n      \"downloadUrlMachine\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Frest\u002F1\u002FAPP_TOKEN\u002Fcrm.documentgenerator.document.download\u002F?id=406\",\n      \"pdfUrlMachine\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Frest\u002F1\u002FAPP_TOKEN\u002Fcrm.documentgenerator.document.getPdf\u002F?id=406\",\n      \"imageUrlMachine\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Frest\u002F1\u002FAPP_TOKEN\u002Fcrm.documentgenerator.document.getImage\u002F?id=406\",\n      \"stampsEnabled\": false,\n      \"values\": { \"_creationMethod\": \"public\" },\n      \"createTime\": \"2026-01-19T09:30:00+03:00\",\n      \"updateTime\": \"2026-01-19T09:30:00+03:00\",\n      \"createdBy\": \"29\",\n      \"updatedBy\": null\n    }\n  ],\n  \"meta\": { \"total\": 2, \"start\": 0, \"next\": null }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — `entityTypeId` не передан или некорректен. Значение `0`, дробное или нечисловое возвращает тот же код:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_PARAMS\",\n    \"message\": \"Query parameter `entityTypeId` (positive integer) is required. Common values: 1=LEAD, 2=DEAL, 3=CONTACT, 4=COMPANY, 7=QUOTE, 31=INVOICE, 128+ for smart processes.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `MISSING_PARAMS` | Не передан `entityTypeId` или его значение не является положительным целым числом |\n| 400 | `INVALID_ENTITY_ID` | `entityId` передан, но не является положительным целым числом |\n| 400 | `INVALID_START` | `start` передан, но не является целым числом 0 или больше |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `crm` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `TOKEN_MISSING` | Ключу авторизации не сопоставлены токены — ключ OAuth-приложения вызван без пользовательской сессии |\n| 422 | `BITRIX_ERROR` | Модуль генератора документов не установлен на портале |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\nПараметр `select` ограничивает набор полей, но ссылки на файлы `downloadUrl`, `pdfUrl`, `imageUrl` вместе с машинными вариантами, а также `stampsEnabled` и `values` возвращаются всегда, даже если их нет в выборке.\n\n## Смотрите также\n\n- [Список документов](\u002Fdocs\u002Fentities\u002Fdocuments\u002Flist)\n- [Создать документ](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fcreate)\n- [Шаблоны документов](\u002Fdocs\u002Fentities\u002Fdoc-templates)\n","## Получить документ\n\n`GET \u002Fv1\u002Fdocuments\u002F:id`\n\nВозвращает документ по идентификатору со всеми полями, включая ссылки на готовый файл, PDF и изображение.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `id` (path) | number | да | Идентификатор документа |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Документ:', data.title, '—', data.number)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | object | Объект документа со всеми полями — см. [Поля документа](\u002Fdocs\u002Fentities\u002Fdocuments\u002Ffields) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 51,\n    \"title\": \"Договор поставки 2026-001\",\n    \"number\": \"2026-001\",\n    \"templateId\": 53,\n    \"provider\": \"Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest\",\n    \"value\": \"ORDER-1024\",\n    \"fileId\": 241,\n    \"pdfId\": 245,\n    \"imageId\": 243,\n    \"createTime\": \"2026-03-18T17:27:48+03:00\",\n    \"updateTime\": \"2026-03-18T17:27:48+03:00\",\n    \"createdBy\": 503,\n    \"updatedBy\": null,\n    \"values\": {\n      \"DocumentNumber\": \"2026-001\",\n      \"ClientName\": \"ООО «Ромашка»\"\n    },\n    \"stampsEnabled\": false,\n    \"publicUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002F~aBcDeF\",\n    \"downloadUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getfile&id=51\",\n    \"pdfUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getpdf&id=51\",\n    \"imageUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getimage&id=51\",\n    \"downloadUrlMachine\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Frest\u002Fdocumentgenerator.api.document.getfile.json?token=t0k3n\",\n    \"pdfUrlMachine\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Frest\u002Fdocumentgenerator.api.document.getpdf.json?token=t0k3n\",\n    \"imageUrlMachine\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Frest\u002Fdocumentgenerator.api.document.getimage.json?token=t0k3n\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n404 — документ не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Документ не найден\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 404 | `ENTITY_NOT_FOUND` | Документ с таким `id` не найден |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `documentgenerator` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список документов](\u002Fdocs\u002Fentities\u002Fdocuments\u002Flist)\n- [Обновить документ](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fupdate)\n- [Поля документа](\u002Fdocs\u002Fentities\u002Fdocuments\u002Ffields)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n","\n## Обновить документ\n\n`PATCH \u002Fv1\u002Fdocuments\u002F:id`\n\nОбновляет поля существующего документа — передайте только изменяемые. Системные поля (даты, автор, ссылки на файлы) доступны только для чтения. Полный список — в [справочнике полей](\u002Fdocs\u002Fentities\u002Fdocuments\u002Ffields).\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `id` (path) | number | да | Идентификатор документа |\n\n## Поля запроса (body)\n\n| Параметр | Тип | Описание |\n|----------|-----|---------|\n| `title` | string | Название документа |\n| `number` | string | Номер документа |\n| `stampsEnabled` | boolean | Печати и подписи на документе |\n| `values` | object | Значения полей-меток шаблона |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"title\": \"Договор поставки 2026-001 (ред.)\",\n    \"stampsEnabled\": true\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X PATCH \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"title\": \"Договор поставки 2026-001 (ред.)\",\n    \"stampsEnabled\": true\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    title: 'Договор поставки 2026-001 (ред.)',\n    stampsEnabled: true,\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51', {\n  method: 'PATCH',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    title: 'Договор поставки 2026-001 (ред.)',\n    stampsEnabled: true,\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | object | Объект документа со всеми полями — см. [Поля документа](\u002Fdocs\u002Fentities\u002Fdocuments\u002Ffields) |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 51,\n    \"title\": \"Договор поставки 2026-001 (ред.)\",\n    \"number\": \"2026-001\",\n    \"templateId\": 53,\n    \"provider\": \"Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest\",\n    \"value\": \"ORDER-1024\",\n    \"createTime\": \"2026-03-18T17:27:48+03:00\",\n    \"updateTime\": \"2026-03-20T09:14:11+03:00\",\n    \"createdBy\": 503,\n    \"updatedBy\": 503,\n    \"values\": { \"DocumentNumber\": \"2026-001\" },\n    \"stampsEnabled\": true,\n    \"publicUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002F~aBcDeF\",\n    \"downloadUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getfile&id=51\",\n    \"pdfUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getpdf&id=51\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n404 — документ не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Документ не найден\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 404 | `ENTITY_NOT_FOUND` | Документа с указанным `id` не существует |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `documentgenerator` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Получить документ](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fget)\n- [Создать документ](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fcreate)\n- [Поля документа](\u002Fdocs\u002Fentities\u002Fdocuments\u002Ffields)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n","## Удалить документ\n\n`DELETE \u002Fv1\u002Fdocuments\u002F:id`\n\nУдаляет документ по идентификатору. Восстановить удалённый документ через API нельзя — создавайте новый при необходимости.\n\n## Параметры\n\n| Параметр | Тип | Обяз. | Описание |\n|----------|-----|:-----:|---------|\n| `id` (path) | number | да | Идентификатор документа |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X DELETE \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nif (res.status === 204) {\n  console.log('Документ удалён')\n}\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002F51', {\n  method: 'DELETE',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nif (res.status === 204) {\n  console.log('Удалено')\n}\n```\n\n## Ответ\n\nПри успешном удалении возвращается HTTP-статус `204 No Content` с пустым телом. Признак успеха — код ответа, не содержимое.\n\n## Пример ответа\n\n```\nHTTP\u002F1.1 204 No Content\n```\n\n## Пример ответа при ошибке\n\n404 — документ не найден:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"ENTITY_NOT_FOUND\",\n    \"message\": \"Документ не найден\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 404 | `ENTITY_NOT_FOUND` | Документ с таким `id` не найден |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `documentgenerator` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Получить документ](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fget)\n- [Список документов](\u002Fdocs\u002Fentities\u002Fdocuments\u002Flist)\n- [Entity API](\u002Fdocs\u002Fentity-api)\n","\n## Поиск документов\n\n`POST \u002Fv1\u002Fdocuments\u002Fsearch`\n\nВозвращает документы по фильтру, переданному в теле запроса. Аналогичен `GET \u002Fv1\u002Fdocuments` с фильтрами, но условия отбора передаются в теле запроса — это удобнее для сложных выборок с большим количеством условий.\n\n## Поля запроса (body)\n\n| Поле | Тип | По умолч. | Описание |\n|------|-----|-----------|---------|\n| `filter` | object | — | Отбор по полям документа.\u003Cbr>[Синтаксис фильтрации](\u002Fdocs\u002Ffiltering). Пример: `{ \"filter\": { \"templateId\": 53 } }` |\n| `limit` | number | `50` | Количество документов в ответе, до 5000 |\n| `offset` | number | `0` | Пропустить указанное число документов |\n| `sort` | object | — | Сортировка: `{ \"id\": \"desc\" }`. Допустимы те же поля, что и в `filter` |\n| `select` | string[] | — | Выборка полей: `[\"id\", \"title\", \"number\"]`. В ответе остаются только перечисленные поля и `id` |\n| `autoWindow` | boolean | `true` | Разбиение выборки по датам при фильтре с полями `createTime` \u002F `updateTime`. Передайте `false`, чтобы отключить разбиение |\n\nИмена полей для `filter`, `sort` и `select` — из [Полей документа](\u002Fdocs\u002Fentities\u002Fdocuments\u002Ffields).\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"templateId\": 53 },\n    \"limit\": 10,\n    \"sort\": { \"id\": \"desc\" }\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002Fsearch\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"filter\": { \"templateId\": 53 },\n    \"limit\": 10,\n    \"sort\": { \"id\": \"desc\" }\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002Fsearch', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    filter: { templateId: 53 },\n    limit: 10,\n    sort: { id: 'desc' },\n  }),\n})\n\nconst { data, meta } = await res.json()\nconsole.log('Найдено:', meta.total)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002Fsearch', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    filter: { templateId: 53 },\n    limit: 10,\n    sort: { id: 'desc' },\n  }),\n})\n\nconst { data, meta } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `success` | boolean | Всегда `true` при успехе |\n| `data` | array | Массив документов (все поля — см. [Поля документа](\u002Fdocs\u002Fentities\u002Fdocuments\u002Ffields)) |\n| `meta.total` | number | Количество документов, попавших под фильтр |\n| `meta.hasMore` | boolean | Есть ли документы за пределами `limit` |\n| `meta.durationMs` | number | Время обработки запроса в миллисекундах |\n| `meta.autoWindowed` | boolean | Присутствует, когда выборка разбита по датам |\n| `meta.windowCount` | number | Количество подзапросов при разбиении по датам |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": [\n    {\n      \"id\": 51,\n      \"title\": \"Договор поставки 2026-001\",\n      \"number\": \"2026-001\",\n      \"templateId\": 53,\n      \"provider\": \"Bitrix\\\\DocumentGenerator\\\\DataProvider\\\\Rest\",\n      \"value\": \"ORDER-1024\",\n      \"createTime\": \"2026-03-18T17:27:48+03:00\",\n      \"updateTime\": \"2026-03-18T17:27:48+03:00\",\n      \"createdBy\": 503,\n      \"updatedBy\": null,\n      \"values\": { \"DocumentNumber\": \"2026-001\" },\n      \"stampsEnabled\": false,\n      \"pdfUrl\": \"https:\u002F\u002Fexample.bitrix24.ru\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.document.getpdf&id=51\"\n    }\n  ],\n  \"meta\": { \"total\": 1, \"hasMore\": false, \"durationMs\": 42 }\n}\n```\n\nКогда под фильтр не попал ни один документ, `data` приходит пустым массивом, а `meta.total` равен `0`:\n\n```json\n{\n  \"success\": true,\n  \"data\": [],\n  \"meta\": { \"total\": 0, \"hasMore\": false, \"durationMs\": 644 }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — поле в `filter` не входит в список полей документа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"UNKNOWN_FILTER_FIELD\",\n    \"message\": \"Unknown filter field 'notArealField' for entity 'documents'.\"\n  }\n}\n```\n\n## Известные особенности\n\nИмя поля в `filter` и `sort` сверяется со списком полей документа до обращения к данным. Неизвестное поле в `filter` возвращает `400 UNKNOWN_FILTER_FIELD`, неизвестное поле в `sort` — `400 UNKNOWN_SORT_FIELD`. В обоих случаях сообщение перечисляет допустимые имена полей.\n\n**Разбиение по датам.** При фильтре с полями `createTime` или `updateTime` выборка делится на подзапросы по интервалам дат, и в `meta` появляются `autoWindowed` и `windowCount`. Передайте `autoWindow: false`, чтобы выполнить один запрос без разбиения.\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `UNKNOWN_FILTER_FIELD` | Поле в `filter` не входит в список полей документа |\n| 400 | `UNKNOWN_SORT_FIELD` | Поле в `sort` не входит в список полей документа |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `documentgenerator` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список документов](\u002Fdocs\u002Fentities\u002Fdocuments\u002Flist)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n- [Справочник сущностей](\u002Fdocs\u002Fentity-api)\n- [Batch-запросы](\u002Fdocs\u002Fbatch)\n","\n## Поля документа\n\n`GET \u002Fv1\u002Fdocuments\u002Ffields`\n\nВозвращает полную схему полей документа: имя поля, тип, признак «только для чтения» и обязательность при создании. Поля помечены ★ — обязательны в теле запроса при создании документа.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\"\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002Ffields\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\"\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n  },\n})\n\nconst { success, data } = await res.json()\nconsole.log('Всего полей:', Object.keys(data.fields).length)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdocuments\u002Ffields', {\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n  },\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Битрикс24 | Тип | RO | Описание |\n|------|----------|-----|:--:|---------|\n| `id` | `id` | number | да | Идентификатор документа |\n| `title` | `title` | string | | Название документа |\n| `number` | `number` | string | | Номер документа |\n| `templateId` | `templateId` | number | | ★ Идентификатор шаблона. Список: `GET \u002Fv1\u002Fdoc-templates` |\n| `providerClassName` | `providerClassName` | string | | ★ Класс провайдера данных, например `Bitrix\\DocumentGenerator\\DataProvider\\Rest` |\n| `value` | `value` | string | | ★ Внешний идентификатор объекта-источника, из которого подставляются данные |\n| `values` | `values` | object | | Значения полей-меток шаблона |\n| `fields` | `fields` | object | | Описание форматирования полей |\n| `createTime` | `createTime` | datetime | да | Дата создания |\n| `updateTime` | `updateTime` | datetime | да | Дата последнего изменения |\n| `fileId` | `fileId` | number | | Идентификатор файла DOCX |\n| `pdfId` | `pdfId` | number | | Идентификатор файла PDF |\n| `imageId` | `imageId` | number | | Идентификатор файла изображения |\n| `stampsEnabled` | `stampsEnabled` | boolean | | Включены ли печати и подписи |\n| `provider` | `provider` | string | да | Класс провайдера данных документа |\n| `downloadUrl` | `downloadUrl` | string | да | Ссылка на скачивание DOCX для пользователя |\n| `pdfUrl` | `pdfUrl` | string | да | Ссылка на скачивание PDF для пользователя |\n| `imageUrl` | `imageUrl` | string | да | Ссылка на изображение для пользователя |\n| `downloadUrlMachine` | `downloadUrlMachine` | string | да | Ссылка на скачивание DOCX для приложения |\n| `pdfUrlMachine` | `pdfUrlMachine` | string | да | Ссылка на скачивание PDF для приложения |\n| `imageUrlMachine` | `imageUrlMachine` | string | да | Ссылка на изображение для приложения |\n| `createdBy` | `createdBy` | number | да | Идентификатор создавшего пользователя. Список: `GET \u002Fv1\u002Fusers` |\n| `updatedBy` | `updatedBy` | number \\| null | да | Идентификатор изменившего пользователя. `null`, если документ не изменялся. Список: `GET \u002Fv1\u002Fusers` |\n| `publicUrl` | `publicUrl` | string \\| null | да | Публичная ссылка на документ. `null`, если публичная ссылка не сформирована |\n\n★ — поля `templateId`, `providerClassName`, `value` обязательны в теле запроса при создании документа.\n\n## Пример ответа\n\nПоказаны 8 из 24 полей. Полный список — в таблице выше.\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"fields\": {\n      \"id\": { \"type\": \"number\", \"readonly\": true },\n      \"title\": { \"type\": \"string\", \"readonly\": false },\n      \"number\": { \"type\": \"string\", \"readonly\": false },\n      \"templateId\": { \"type\": \"number\", \"readonly\": false, \"required\": true },\n      \"providerClassName\": { \"type\": \"string\", \"readonly\": false, \"required\": true },\n      \"value\": { \"type\": \"string\", \"readonly\": false, \"required\": true },\n      \"createTime\": { \"type\": \"datetime\", \"readonly\": true },\n      \"publicUrl\": { \"type\": \"string\", \"readonly\": true }\n    },\n    \"batch\": [\"create\", \"update\", \"delete\"]\n  }\n}\n```\n\nПоле `batch` перечисляет операции документа, доступные в [пакетном запросе](\u002Fdocs\u002Fbatch).\n\n## Пример ответа при ошибке\n\n403 — у ключа нет нужного скоупа:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"SCOPE_DENIED\",\n    \"message\": \"This endpoint requires 'documentgenerator' scope\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 403 | `SCOPE_DENIED` | API-ключу не хватает скоупа `documentgenerator` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Список документов](\u002Fdocs\u002Fentities\u002Fdocuments\u002Flist)\n- [Создать документ](\u002Fdocs\u002Fentities\u002Fdocuments\u002Fcreate)\n- [Справочник сущностей](\u002Fdocs\u002Fentity-api)\n- [Синтаксис фильтрации](\u002Fdocs\u002Ffiltering)\n"]