Для AI-агентов: markdown этой страницы — /docs-content/entities/catalog-documents/fields.md индекс документации — /llms.txt
Поля складского документа
GET /v1/catalog-documents/fields
Возвращает схему всех полей складского документа. Помогает собрать тело запроса для создания и обновления документа.
Параметры
| Параметр | Тип | По умолч. | Описание |
|---|---|---|---|
refresh (query) |
string | false |
Передайте true, чтобы получить схему без кэша. Пример: ?refresh=true |
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/catalog-documents/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/catalog-documents/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-documents/fields', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
const required = Object.entries(data.fields)
.filter(([, field]) => field.required)
.map(([name]) => name)
console.log('Обязательные при создании:', required)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/catalog-documents/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
const required = Object.entries(data.fields)
.filter(([, field]) => field.required)
.map(([name]) => name)
console.log('Обязательные при создании:', required)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.fields |
object | Карта полей документа: ключ — имя поля, значение — его описание |
data.fields.<поле>.type |
string | Тип значения: number, string, datetime |
data.fields.<поле>.readonly |
boolean | true — поле заполняется системой и не принимается при создании и обновлении |
data.fields.<поле>.createOnly |
boolean | Приходит со значением true у полей, которые задаются только при создании. На обновлении такое поле отклоняется с 400 READONLY_FIELD |
data.fields.<поле>.required |
boolean | Приходит со значением true у полей, обязательных при создании |
data.fields.<поле>.label |
string | Подпись поля |
data.fields.<поле>.description |
string | Описание поля |
data.batch |
string[] | Операции, доступные в массовом режиме через Batch: create, update, delete |
meta.warnings |
array | Приходит, только если схему полей не удалось получить от Битрикс24 целиком. Содержит объект с кодом fields_partial и текстом message: в ответе только поля из схемы Вайбкод, часть подписей может отсутствовать. Повторите запрос |
Подписи label и description приходят на русском языке.
Поля документа:
| Поле | Тип | RO | Описание |
|---|---|---|---|
id |
number | да | Идентификатор документа |
docType |
string | Тип документа: A — приход, S — оприходование, M — перемещение, R — возврат, D — списание. Обязательно при создании, задаётся только при создании |
|
currency |
string | Валюта документа. Обязательно при создании, задаётся только при создании. Список: GET /v1/currencies |
|
responsibleId |
number | Ответственный сотрудник. Обязательно при создании. Список: GET /v1/users |
|
status |
string | да | Статус проведения: Y — проведён, N — не проведён. Меняется проведением и отменой проведения |
dateStatus |
datetime | да | Дата смены статуса проведения. У нового документа совпадает с датой создания |
createdBy |
number | Сотрудник, создавший документ. Задаётся только при создании. Список: GET /v1/users |
|
dateCreate |
datetime | да | Дата создания |
title |
string | Название документа | |
docNumber |
string | Номер документа. null, если не задан |
|
commentary |
string | Комментарий. null, если не задан |
|
dateDocument |
datetime | Дата документа. null, если не задана |
|
siteId |
string | Идентификатор сайта портала. Если не передать при создании, подставляется s1 |
|
total |
number | Сумма документа. Из позиций не рассчитывается: если сумму не задать, остаётся null и после проведения |
|
modifiedBy |
number | Сотрудник, последним изменивший документ. Список: GET /v1/users |
|
statusBy |
number | Сотрудник, сменивший статус проведения. null, пока статус не менялся. Список: GET /v1/users |
|
dateModify |
datetime | Дата последнего изменения |
Даты приходят в ISO 8601 по UTC, например 2026-10-12T13:20:16.000Z.
Пример ответа
{
"success": true,
"data": {
"fields": {
"id": {
"type": "number",
"readonly": true,
"label": "ID документа",
"description": "ID документа"
},
"docType": {
"type": "string",
"readonly": false,
"createOnly": true,
"required": true,
"label": "Тип документа",
"description": "Тип документа"
},
"currency": {
"type": "string",
"readonly": false,
"createOnly": true,
"required": true,
"label": "Валюта",
"description": "Валюта"
},
"responsibleId": {
"type": "number",
"readonly": false,
"required": true,
"label": "Ответственный",
"description": "Ответственный"
},
"status": {
"type": "string",
"readonly": true,
"label": "Статус проведения",
"description": "Статус проведения"
},
"dateStatus": {
"type": "datetime",
"readonly": true,
"label": "Дата статуса",
"description": "Дата статуса"
},
"createdBy": {
"type": "number",
"readonly": false,
"createOnly": true,
"label": "Создал",
"description": "Создал"
},
"dateCreate": {
"type": "datetime",
"readonly": true,
"label": "Дата создания",
"description": "Дата создания"
},
"title": {
"type": "string",
"readonly": false,
"label": "Название",
"description": "Название"
},
"docNumber": {
"type": "string",
"readonly": false,
"label": "Номер документа",
"description": "Номер документа"
},
"commentary": {
"type": "string",
"readonly": false,
"label": "Комментарий",
"description": "Комментарий"
},
"dateDocument": {
"type": "datetime",
"readonly": false,
"label": "Дата документа",
"description": "Дата документа"
},
"siteId": {
"type": "string",
"readonly": false,
"label": "Сайт",
"description": "Сайт"
},
"total": {
"type": "number",
"readonly": false,
"label": "Сумма документа",
"description": "Сумма документа"
},
"modifiedBy": {
"type": "number",
"readonly": false,
"label": "Изменил",
"description": "Изменил"
},
"statusBy": {
"type": "number",
"readonly": false,
"label": "Изменил статус",
"description": "Изменил статус"
},
"dateModify": {
"type": "datetime",
"readonly": false,
"label": "Дата изменения",
"description": "Дата изменения"
}
},
"batch": [
"create",
"update",
"delete"
]
}
}
Пример ответа при ошибке
401 — не передан API-ключ:
{
"success": false,
"error": {
"code": "MISSING_API_KEY",
"message": "API key required. Pass via X-Api-Key header."
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Переданный API-ключ не найден |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа catalog |
| 429 | RATE_LIMITED |
Превышен лимит запросов: 300 в минуту на портал, все API-ключи портала делят один лимит. Действующее значение — в заголовке x-ratelimit-limit. Повторите после срока из заголовка Retry-After |
Полный список общих ошибок API — Ошибки.