Для AI-агентов: markdown этой страницы — /docs-content/entities/documents/crm-create.md индекс документации — /llms.txt
Создать CRM-документ
POST /v1/crm-documents
Формирует документ по шаблону CRM для записи CRM — сделки, контакта, компании или элемента смарт-процесса — и прикрепляет его к этой записи. Поля передаются в корне JSON без обёртки fields.
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
templateId |
number | да | ID шаблона CRM, положительное целое число. Шаблоны, доступные для записи: GET /v1/crm-document-templates/available |
entityTypeId |
number | да | Тип записи CRM, положительное целое число: 2 — сделка, 3 — контакт, 4 — компания. Остальные типы — в списке «Типы записей CRM» на странице GET /v1/crm-documents |
entityId |
number | да | ID записи, положительное целое число. Источник зависит от типа: сделки — GET /v1/deals, контакты — GET /v1/contacts, компании — GET /v1/companies |
values |
object | нет | Значения полей шаблона. Например, DocumentNumber задаёт номер документа |
stampsEnabled |
boolean | нет | Включить печати и подписи. Если поле не передано, печати выключены. Есть ли печати в шаблоне, показывает поле changeStampsEnabled ответа |
Другие поля, например title, запрос не принимает. Флаг печатей передаётся только в корне тела, не внутри values.
Примеры
curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/crm-documents" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"templateId": 87,
"entityTypeId": 2,
"entityId": 8781,
"values": { "DocumentNumber": "VD-100" }
}'
curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/crm-documents" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"templateId": 87,
"entityTypeId": 2,
"entityId": 8781,
"values": { "DocumentNumber": "VD-100" }
}'
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-documents', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
templateId: 87,
entityTypeId: 2,
entityId: 8781,
values: { DocumentNumber: 'VD-100' },
}),
})
const { success, data } = await res.json()
console.log('Документ:', data.id, data.number)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/crm-documents', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
templateId: 87,
entityTypeId: 2,
entityId: 8781,
values: { DocumentNumber: 'VD-100' },
}),
})
const { success, data } = await res.json()
Поля ответа
Возвращается HTTP-статус 201 Created и созданный документ. Полное описание полей документа — на странице Получить CRM-документ.
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.id |
number | Идентификатор созданного документа. Приходит числом, в отличие от ответа GET /v1/crm-documents/:id |
data.title |
string | Название документа, сформированное по шаблону |
data.number |
string | Номер документа. Задаётся values.DocumentNumber или нумератором шаблона |
data.templateId |
string | ID шаблона |
data.entityTypeId |
string | Тип записи CRM |
data.entityId |
number | ID записи CRM |
data.values |
object | Переданные значения полей шаблона вместе со служебными ключами |
data.stampsEnabled |
boolean | Включены ли печати и подписи |
data.changeStampsEnabled |
boolean | Можно ли включить печати: false, если в шаблоне их нет |
data.createdBy |
number | ID создателя. Список: GET /v1/users |
data.downloadUrl |
string | Ссылка на файл DOCX для сотрудника в браузере |
data.downloadUrlMachine |
string | Адрес /v1/crm-documents/:id/download. Нужен X-Api-Key со скоупом crm |
Пример ответа
Показаны основные поля. Полный список: Получить CRM-документ.
{
"success": true,
"data": {
"changeStampsEnabled": false,
"downloadUrl": "https://example.bitrix24.ru/bitrix/services/main/ajax.php?action=crm.documentgenerator.document.download&SITE_ID=s1&id=1981",
"publicUrl": null,
"title": "Адреса VD-100",
"number": "VD-100",
"id": 1981,
"createTime": "2026-10-08T17:55:00+03:00",
"createdBy": 1317,
"stampsEnabled": false,
"isTransformationError": false,
"values": {
"productsTableVariant": "",
"stampsEnabled": false,
"_creationMethod": "rest",
"DocumentNumber": "VD-100"
},
"templateId": "87",
"entityId": 8781,
"entityTypeId": "2",
"downloadUrlMachine": "https://vibecode.bitrix24.tech/v1/crm-documents/1981/download"
}
}
Пример ответа при ошибке
404 — шаблона с таким templateId нет:
{
"success": false,
"error": {
"code": "ENTITY_NOT_FOUND",
"message": "Шаблон не найден"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | MISSING_REQUIRED_FIELDS |
Тело не JSON-объект, например массив. Сообщение: A document body is required |
| 400 | MISSING_REQUIRED_FIELDS |
Не передан templateId, entityTypeId или entityId, либо значение не положительное целое число. Сообщение: templateId, entityTypeId and entityId must be positive integers |
| 400 | READONLY_FIELD |
В теле поле, которого нет в таблице выше, например title |
| 400 | INVALID_PARAMS |
values не объект, values содержит stampsEnabled или stampsEnabled не логическое значение |
| 404 | ENTITY_NOT_FOUND |
Шаблона с таким templateId нет. Сообщение: Шаблон не найден |
| 422 | BITRIX_ERROR |
Тип entityTypeId не поддерживается для документов, например 999. Сообщение: No provider for entityTypeId |
| 502 | BITRIX_INVALID_RESPONSE |
Битрикс24 ответил без документа |
| 403 | BITRIX_ACCESS_DENIED |
Нет доступа к записи CRM, в том числе к контакту, которого нет. Сообщение: Access denied |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ работает в режиме только для чтения |
| 403 | SCOPE_DENIED |
Ключу не хватает скоупа crm |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | TOKEN_MISSING |
Ключу не сопоставлены токены — ключ OAuth-приложения вызван без пользовательской сессии |
Полный список общих ошибок API — Ошибки.
Известные особенности
Существование сделки не проверяется. С entityTypeId: 2 документ создаётся и для entityId, которого нет среди сделок: ответ 201. Для контакта с несуществующим ID приходит 403 BITRIX_ACCESS_DENIED. Проверяйте запись заранее, например через GET /v1/deals/:id.
PDF и изображение появляются позже. В ответе создания есть только ссылки на DOCX. Ссылки на PDF и изображение приходят в GET /v1/crm-documents/:id, когда файлы готовы. До этого скачивание PDF отвечает 409 DOCUMENT_NOT_READY.
ID можно передать строкой. "templateId": "87" принимается так же, как 87.