Для AI-агентов: markdown этой страницы — /docs-content/entities/quotes/fields.md индекс документации — /llms.txt
Поля предложения
GET /v1/quotes/fields
Возвращает полный список доступных полей, включая пользовательские (ufCrm_*).
Примеры
curl — личный ключ
curl "https://vibecode.bitrix24.tech/v1/quotes/fields" \
-H "X-Api-Key: YOUR_API_KEY"
curl — OAuth-приложение
curl "https://vibecode.bitrix24.tech/v1/quotes/fields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN"
JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/quotes/fields', {
headers: {
'X-Api-Key': 'YOUR_API_KEY',
},
})
const { success, data } = await res.json()
console.log('Полей:', Object.keys(data.fields).length)
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/quotes/fields', {
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
},
})
const { success, data } = await res.json()
Поля ответа
| Поле | Битрикс24 | Тип | RO | Описание |
|---|---|---|---|---|
id |
id |
number | да | ID предложения |
quoteNumber |
quoteNumber |
string | № предложения | |
title |
title |
string | Название | |
amount |
opportunity |
number | Сумма | |
taxValue |
taxValue |
number | да | Сумма налога по предложению. Считается Битрикс24 по товарным позициям и не принимается ни на одной двери записи. Замерено 2026-09-11 на живых порталах обеих платформ: создание и изменение в обоих режимах суммы, импорт в обоих режимах — чтение назад даёт 0 всегда. Поэтому объявлено только для чтения: попытка записи отклоняется, а не отвечает успехом с потерей значения. Налог задаётся через товарные позиции |
currency |
currencyId |
string | Валюта. Список: GET /v1/currencies |
|
stageId |
stageId |
string | Статус: DRAFT, SENT, APPROVED. Список: GET /v1/statuses?filter[entityId]=QUOTE_STATUS |
|
isManualOpportunity |
isManualOpportunity |
boolean | Ручной режим суммы (Y/N в Битрикс24, преобразуется в булево) |
|
opened |
opened |
boolean | Доступно для всех | |
closed |
closed |
boolean | да | Предложение закрыто |
dealId |
dealId |
number | ID сделки. Поиск: GET /v1/deals |
|
leadId |
leadId |
number | ID лида. Поиск: GET /v1/leads |
|
contactId |
contactId |
number | ID контакта. Поиск: GET /v1/contacts |
|
contactIds |
contactIds |
array | ID контактов предложения. Передавайте полный список — набор привязок заменяется целиком, а не дополняется | |
contacts |
contacts |
array | да | Не возвращается: item-API Битрикс24 не отдаёт этот ключ у предложений, и маршрута привязок у предложений нет — привязанные контакты в contactIds. Объявлено ради отказа на записи (400 READONLY_FIELD вместо сырой ошибки Битрикс24). В select отвечает 400 SELECT_FIELD_NOT_RETURNED, в filter и order не принимается — 400 UNKNOWN_FILTER_FIELD / 400 UNKNOWN_SORT_FIELD |
clientTitle |
clientTitle |
string | да | Название клиента из старого снимка клиента. Семь полей client* (название, адрес, контактное лицо, e-mail, телефон, ИНН, КПП) привязка компании и контакта не заполняет, а item-API их не принимает — значение, присланное при создании, изменении, в пачке или импорте, портал отбрасывает. Сохраняют их устаревшие методы crm.quote.add / crm.quote.update (ими пользуются старые интеграции), поэтому они возвращаются при чтении, работают в фильтре и сортировке и объявлены только для чтения. Запись отклоняется, а не отвечает успехом с потерей значения: 400 READONLY_FIELD, в пачке — BATCH_ITEM_VALIDATION, в импорте — IMPORT_ITEM_VALIDATION. null, если ничего не сохранено, как у остальных строковых полей. Замерено 2026-09-15/16 прямым вебхуком на тестовом портале Битрикс24 |
clientAddr |
clientAddr |
string | да | Адрес клиента из старого снимка клиента — заполняется и читается так же, как clientTitle |
clientContact |
clientContact |
string | да | Контактное лицо клиента из старого снимка клиента — как clientTitle |
clientEmail |
clientEmail |
string | да | E-mail клиента из старого снимка клиента — как clientTitle |
clientPhone |
clientPhone |
string | да | Телефон клиента из старого снимка клиента — как clientTitle |
clientTpId |
clientTpId |
string | да | ИНН клиента из старого снимка клиента — как clientTitle |
clientTpaId |
clientTpaId |
string | да | КПП клиента из старого снимка клиента — как clientTitle |
companyId |
companyId |
number | ID компании. Поиск: GET /v1/companies |
|
mycompanyId |
mycompanyId |
number | Реквизиты вашей компании | |
personTypeId |
personTypeId |
number | да | Тип плательщика |
assignedById |
assignedById |
number | Ответственный. Список: GET /v1/users |
|
createdBy |
createdBy |
number | да | Создатель. Поиск: GET /v1/users |
updatedBy |
updatedBy |
number | да | Кем обновлено |
lastActivityBy |
lastActivityBy |
number | Автор последней активности | |
comments |
comments |
string | Комментарий | |
content |
content |
string | Содержание | |
terms |
terms |
string | Условия | |
locationId |
locationId |
string | Местоположение | |
webformId |
webformId |
number | Создано CRM-формой | |
storageTypeId |
storageTypeId |
number | Тип хранилища файлов | |
storageElementIds |
storageElementIds |
array | ID файлов в хранилище | |
utmSource |
utmSource |
string | UTM Source | |
utmMedium |
utmMedium |
string | UTM Medium | |
utmCampaign |
utmCampaign |
string | UTM Campaign | |
utmContent |
utmContent |
string | UTM Content | |
utmTerm |
utmTerm |
string | UTM Term | |
beginDate |
begindate |
datetime | Дата начала | |
closeDate |
closedate |
datetime | Дата закрытия | |
actualDate |
actualDate |
datetime | Актуально до | |
lastActivityTime |
lastActivityTime |
datetime | Последняя активность | |
lastCommunicationTime |
lastCommunicationTime |
string | да | Дата последней коммуникации |
lastCommunicationCallTime |
lastCommunicationCallTime |
datetime | да | Дата последнего звонка |
lastCommunicationEmailTime |
lastCommunicationEmailTime |
datetime | да | Дата последнего e-mail |
lastCommunicationImolTime |
lastCommunicationImolTime |
datetime | да | Дата последнего диалога в открытой линии |
lastCommunicationWebformTime |
lastCommunicationWebformTime |
datetime | да | Дата последнего заполнения CRM-формы |
createdTime |
createdTime |
datetime | да | Дата создания |
updatedTime |
updatedTime |
datetime | да | Дата изменения |
UTM-поля возвращаются в list/get, но в фильтре и сортировке не принимаются. Запрос с filter[utmSource] отвечает 400 UNKNOWN_FILTER_FIELD, с sort=utmSource — 400 UNKNOWN_SORT_FIELD, и оба отказа приходят до обращения к Битрикс24.
Пользовательские поля (ufCrm_*) также возвращаются в ответах и принимаются при создании/обновлении.
Доступные include
Эндпоинт GET /v1/quotes/fields возвращает список доступных include: deal, contact, company.
Пример использования: Получить quotes.
Подробнее об include: Связанные данные.
Пример ответа
{
"success": true,
"data": {
"fields": {
"id": {
"type": "number",
"readonly": true,
"label": "ID предложения",
"description": "Идентификатор предложения, присваивается Битрикс24."
},
"title": {
"type": "string",
"readonly": false,
"label": "Название",
"description": "Название предложения, отображается в списке и в карточке."
},
"assignedById": {
"type": "number",
"readonly": false,
"label": "Ответственный",
"description": "Сотрудник, ответственный за предложение. Список: GET /v1/users."
}
},
"batch": ["create", "update", "delete"]
}
}
Показаны 3 из множества полей. Полный список в таблице выше.
Каждое поле описано объектом { type, readonly, label, description }. label — короткая подпись на русском языке, а у полей, которые платформа берёт напрямую с портала, — на языке портала, description — расширенное описание: назначение поля, где взять список допустимых значений, поведение при записи. Заголовками запроса язык не переключается. У поля stageId набор значений настраивается на портале, поэтому вместо словаря в описании указана ссылка на справочник статусов.
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа crm |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
| 429 | RATE_LIMITED |
Превышен лимит запросов: 300 в минуту на портал, все API-ключи портала делят один лимит. Точное значение — в заголовке x-ratelimit-limit (потолок делится на реплики). Повторите после срока из заголовка Retry-After |
Полный список общих ошибок API — Ошибки.