[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-entities\u002Fdoc-templates\u002Fcreate":3,"docs-tabs-entities\u002Fdoc-templates\u002Fcreate":6},{"content":4,"lastmod":5},"\n## Создать шаблон\n\n`POST \u002Fv1\u002Fdoc-templates`\n\nСоздаёт шаблон документа из файла `.docx`. Файл передаётся одним из двух способов:\n\n- `file` — содержимое `.docx` в виде строки base64.\n- `fileId` — идентификатор файла, заранее загруженного на Диск.\n\n## Поля запроса (body)\n\n| Поле | Тип | Обяз. | Описание |\n|------|-----|:-----:|---------|\n| `name` | string | да | Название шаблона |\n| `numeratorId` | number | да | Идентификатор нумератора |\n| `region` | string | да | Регион, например `ru` |\n| `file` | string | * | Содержимое файла `.docx` в виде строки base64. Альтернатива полю `fileId` |\n| `fileId` | number | * | Идентификатор файла на Диске. Источник: загрузка через `POST \u002Fv1\u002Ffiles\u002Fupload`. Альтернатива полю `file` |\n| `code` | string | нет | Символьный код шаблона |\n| `active` | string | нет | Активность шаблона: `\"Y\"` или `\"N\"` |\n| `withStamps` | string | нет | Использовать печати и подписи: `\"Y\"` или `\"N\"` |\n| `sort` | number | нет | Индекс сортировки |\n| `users` | array | нет | Идентификаторы сотрудников, которым доступен шаблон |\n\n\\* Поля `file` и `fileId` взаимоисключающие: передаётся одно из двух.\n\nЧтобы получить `fileId`, загрузите файл `.docx` через `POST \u002Fv1\u002Ffiles\u002Fupload` — значение `id` из ответа используйте как `fileId`.\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdoc-templates\" \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"Шаблон договора\",\n    \"numeratorId\": 1,\n    \"region\": \"ru\",\n    \"fileId\": 9175\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST \"https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdoc-templates\" \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"name\": \"Шаблон договора\",\n    \"numeratorId\": 1,\n    \"region\": \"ru\",\n    \"fileId\": 9175\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdoc-templates', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    name: 'Шаблон договора',\n    numeratorId: 1,\n    region: 'ru',\n    fileId: 9175,\n  }),\n})\n\nconst { success, data } = await res.json()\nconsole.log('ID шаблона:', data.id)\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fdoc-templates', {\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    name: 'Шаблон договора',\n    numeratorId: 1,\n    region: 'ru',\n    fileId: 9175,\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\nАльтернатива — передать содержимое файла `.docx` напрямую в поле `file` (base64):\n\n```json\n{\n  \"name\": \"Шаблон договора\",\n  \"numeratorId\": 1,\n  \"region\": \"ru\",\n  \"file\": \"\u003Cbase64-содержимое .docx>\"\n}\n```\n\n## Поля ответа\n\nВозвращается полный объект созданного шаблона. Статус ответа — `201`.\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `id` | number | Идентификатор созданного шаблона |\n| `name` | string | Название шаблона |\n| `region` | string | Регион |\n| `code` | string | Символьный код шаблона |\n| `active` | string | Активность: `\"Y\"` или `\"N\"` |\n| `moduleId` | string | Идентификатор модуля-источника шаблона |\n| `numeratorId` | number | Идентификатор нумератора |\n| `withStamps` | string | Использование печатей и подписей: `\"Y\"` или `\"N\"` |\n| `providers` | object | Сопоставление поставщиков данных шаблона |\n| `users` | object | Сопоставление идентификаторов пользователей, которым доступен шаблон |\n| `isDeleted` | boolean | Помечен ли шаблон удалённым |\n| `sort` | number | Индекс сортировки |\n| `createTime` | string | Дата создания (ISO 8601) |\n| `updateTime` | string | Дата последнего изменения (ISO 8601) |\n| `download` | string | Адрес скачивания собранного документа из шаблона |\n| `downloadMachine` | string | Адрес скачивания с токеном для программного доступа |\n\n## Пример ответа\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"id\": 209,\n    \"name\": \"Шаблон договора\",\n    \"region\": \"ru\",\n    \"code\": null,\n    \"download\": \"\u002Fbitrix\u002Fservices\u002Fmain\u002Fajax.php?action=documentgenerator.api.template.download&SITE_ID=s1&id=209\",\n    \"active\": \"Y\",\n    \"moduleId\": \"rest\",\n    \"numeratorId\": 1,\n    \"withStamps\": \"N\",\n    \"providers\": {\n      \"bitrix\\\\documentgenerator\\\\dataprovider\\\\rest\": \"bitrix\\\\documentgenerator\\\\dataprovider\\\\rest\"\n    },\n    \"users\": {\n      \"U1\": \"U1\"\n    },\n    \"isDeleted\": false,\n    \"sort\": 500,\n    \"createTime\": \"2026-05-12T09:03:38.000Z\",\n    \"updateTime\": \"2026-05-12T09:03:38.000Z\",\n    \"downloadMachine\": \"https:\u002F\u002F\u003Cportal>\u002Frest\u002F1\u002F\u003Ctoken>\u002Fdocumentgenerator.api.template.download\u002F?token=\u003Ctoken>\"\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — не передан файл:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_FILE_OR_FILE_ID\",\n    \"message\": \"POST \u002Fv1\u002Fdoc-templates requires either \\\"file\\\" (base64-encoded .docx content) or \\\"fileId\\\" (Disk file ID). Neither was provided.\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `MISSING_FILE_OR_FILE_ID` | Не передан ни `file`, ни `fileId` |\n| 400 | `CONFLICTING_FILE_FIELDS` | Переданы и `file`, и `fileId` |\n| 400 | `MISSING_REQUIRED_FIELD` | Отсутствует `name`, `numeratorId` или `region` |\n| 400 | `INVALID_PARAMS` | `name`\u002F`region` не строка либо `numeratorId` не положительное целое |\n| 415 | `UNSUPPORTED_MEDIA_TYPE` | Запрос отправлен с `multipart\u002Fform-data` |\n| 413 | `FST_ERR_CTP_BODY_TOO_LARGE` | Тело запроса в формате `multipart\u002Fform-data` содержит данные |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `documentgenerator` |\n| 401 | `TOKEN_MISSING` | У ключа нет настроенных токенов |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Смотрите также\n\n- [Получить шаблон](\u002Fdocs\u002Fentities\u002Fdoc-templates\u002Fget)\n- [Обновить шаблон](\u002Fdocs\u002Fentities\u002Fdoc-templates\u002Fupdate)\n- [Список шаблонов](\u002Fdocs\u002Fentities\u002Fdoc-templates\u002Flist)\n","2026-07-14",{}]