Поля заказа
GET /v1/orders/fields
Возвращает схему полей заказа: типы, флаги только-для-чтения, список агрегируемых полей.
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/orders/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/orders/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/orders/fields', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { data } = await res.json()
console.log('Поля заказа:', Object.keys(data.fields))
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/orders/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { data } = await res.json()
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id |
number | Идентификатор заказа (только чтение) |
accountNumber |
string | Порядковый номер заказа на портале. Только чтение — присваивается автоматически, запись отклоняется с 400 READONLY_FIELD |
lid |
string | Идентификатор сайта-источника (всегда "s1" для облачных порталов) |
personTypeId |
number | Идентификатор типа плательщика |
currency |
string | Валюта заказа. Список: `GET /v1/currencies` |
price |
number | Общая сумма заказа. Задаётся при создании. На обновлении значение пересчитывается из позиций корзины — переданное вручную игнорируется, при пустой корзине становится 0 |
discountValue |
number | Значение скидки |
taxValue |
number | Сумма налога |
statusId |
string | Текущий статус заказа. Источник: `GET /v1/order-statuses?filter[type]=O` |
userId |
number | Идентификатор пользователя Битрикс24 — покупателя в интернет-магазине. Источник: `GET /v1/users` |
responsibleId |
number | Ответственный сотрудник. Источник: `GET /v1/users` |
payed |
boolean | Оплачен ли заказ полностью. Только чтение — управляется подсистемой оплат. Запись отклоняется с 400 READONLY_FIELD |
canceled |
boolean | Отменён ли заказ |
marked |
boolean | Отмечен ли заказ как проблемный. Задаётся при создании. На обновлении игнорируется |
deducted |
boolean | Списан ли товар со склада |
reasonCanceled |
string | null | Причина отмены. null, если заказ не отменён |
reasonMarked |
string | null | Причина пометки. null, если пометки нет |
additionalInfo |
string | null | Дополнительная информация. null, если не задана |
comments |
string | null | Комментарий менеджера к заказу. null, если не задан |
userDescription |
string | null | Комментарий покупателя к заказу. null, если не задан |
orderTopic |
string | null | Тема заказа. null, если не задана |
xmlId |
string | Внешний идентификатор для синхронизации |
id1c |
string | null | Идентификатор в 1С. null, если заказ не синхронизирован с 1С |
version1c |
string | null | Версия в 1С. null, если заказ не синхронизирован с 1С |
updated1c |
boolean | Обновлён ли заказ через 1С |
externalOrder |
boolean | Создан ли заказ во внешней системе |
recountFlag |
boolean | Флаг автоматического пересчёта |
affiliateId |
number | null | Идентификатор партнёра партнёрской программы. null, если не задан |
lockedBy |
number | null | Идентификатор пользователя, заблокировавшего заказ (актуально для коробочных порталов). null, если заказ не заблокирован |
dateLock |
datetime | null | Время блокировки. null, если заказ не заблокирован |
recurringId |
number | null | Идентификатор подписки (если заказ создан из повторяющегося шаблона). null, если заказ не из подписки |
dateInsert |
datetime | Дата создания (только чтение) |
dateUpdate |
datetime | Дата последнего изменения (только чтение) |
dateCanceled |
datetime | null | Дата отмены (только чтение). null, если заказ не отменён |
dateStatus |
datetime | Дата установки текущего статуса (только чтение) |
empCanceledId |
number | null | Сотрудник, отменивший заказ (только чтение). null, если заказ не отменён |
empMarkedId |
number | null | Сотрудник, поставивший пометку (только чтение). null, если пометки нет |
empStatusId |
number | null | Сотрудник, последний раз менявший статус (только чтение). null, если статус не менялся |
Дополнительные поля и вложенные массивы
Эти поля тоже входят в схему GET /v1/orders/fields. companyId доступен для чтения и записи и по нему можно фильтровать, остальные — только для чтения. Массивы clients, payments, basketItems, propertyValues возвращает только `GET /v1/orders/:id` — в списочном ответе `GET /v1/orders` их нет. Логические поля внутри вложенных объектов приходят как true/false, даты — в UTC формате …Z.
| Поле | Тип | Описание |
|---|---|---|
companyId |
number | null | Идентификатор связанной CRM-компании. null, если компания не задана. Доступен для записи и фильтрации. Список: `GET /v1/companies` |
dateMarked |
datetime | null | Дата последней пометки заказа (только чтение) |
personTypeXmlId |
string | null | Внешний идентификатор типа плательщика (только чтение) |
statusXmlId |
string | null | Внешний идентификатор статуса (только чтение) |
version |
number | Внутренний номер версии записи (только чтение) |
clients |
array | CRM-привязки заказа, только чтение. Каждый элемент: {entityTypeId, entityId, isPrimary, roleId, sort}, где isPrimary — true/false. entityTypeId равен 3 — контакт (`GET /v1/contacts`), 4 — компания (`GET /v1/companies`) |
payments |
array | null | Оплаты заказа, только чтение. Поля оплаты — Оплаты. null, если оплат нет |
basketItems |
array | Позиции корзины, только чтение. Поля позиции — Позиции корзины |
propertyValues |
array | Значения свойств заказа — ФИО, e-mail, телефон, адрес доставки, только чтение. Набор зависит от настройки портала |
requisiteLink |
object | Связь с реквизитами получателя (requisiteId/bankDetailId/mcRequisiteId/mcBankDetailId); [] если не задана; только чтение |
Пример ответа
{
"success": true,
"data": {
"fields": {
"id": { "type": "number", "readonly": true },
"accountNumber": { "type": "string", "readonly": true },
"price": { "type": "number", "readonly": false },
"currency": { "type": "string", "readonly": false },
"statusId": { "type": "string", "readonly": false },
"userId": { "type": "number", "readonly": false },
"dateInsert": { "type": "datetime", "readonly": true },
"dateUpdate": { "type": "datetime", "readonly": true },
"payed": { "type": "boolean", "readonly": true },
"canceled": { "type": "boolean", "readonly": false }
},
"aggregatable": ["price", "statusId", "payed", "canceled", "personTypeId", "responsibleId", "userId"],
"batch": ["create", "update", "delete"]
}
}
Показаны самые важные поля. Полный набор описан в таблице выше — этот же набор возвращается живым вызовом GET /v1/orders/fields.
Пример ответа при ошибке
403 — нет скоупа:
{
"success": false,
"error": {
"code": "SCOPE_DENIED",
"message": "This endpoint requires 'sale' scope"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа sale |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
Полный список общих ошибок API — Ошибки.