Поля счета в REST 3.0
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Поля относятся к методам REST 3.0. Особенности вызова и формат ответа новой версии API описаны в обзоре REST 3.0.
Поля счета возвращают методы crm.smartinvoice.get и crm.smartinvoice.list, а принимают методы crm.smartinvoice.add и crm.smartinvoice.update. Значения множественных полей по одному добавляют и удаляют методы crm.smartinvoice.addfieldvalue и crm.smartinvoice.deletefieldvalue. Список полей с признаками возвращает метод crm.smartinvoice.field.list.
Методы crm.smartinvoice.* работают со счетами нового типа, у которых entityTypeId = 31. Товары счета хранятся отдельно от полей, их возвращает метод crm.smartinvoice.productrow.list.
Часть полей существует в двух видах: как идентификатор и как связанный объект, например assignedById и assignedBy. Идентификатор можно передать при записи, а связанный объект — только запросить в select.
Какие поля принимают и возвращают методы
|
Метод |
Принимает |
Возвращает |
|
Поля таблицы Объект счета, которые можно изменять, и пользовательские поля. Обязательных полей нет: счет создается и с пустым объектом |
Идентификатор созданного счета |
|
|
|
Признак успеха |
|
|
|
Без |
|
|
|
Без |
|
|
crm.smartinvoice.addfieldvalue, crm.smartinvoice.deletefieldvalue |
|
Признак успеха |
Поля с пометкой «только чтение» методы add и update не принимают и возвращают ошибку BITRIX_REST_V3_EXCEPTION_VALIDATION_DTOVALIDATIONEXCEPTION с текстом «Поле "taxValue" не доступно к заполнению». Связанные объекты, например company и stage, тоже только для чтения: для записи передавайте идентификатор — companyId, stageId.
Поля со значениями из справочников метод проверяет при записи. Если значения нет в справочнике, метод вернет ошибку «Значение поля не содержится в списке допустимых значений». Для стадии, источника и валюты в тексте ошибки перечислены допустимые значения.
Логические поля принимают и возвращают true или false. Значения Y, N, 1 и 0 не подходят: метод вернет ошибку «В поле opened требуется тип данных bool для такого запроса».
Поля типа date — beginTime и closeTime — принимают и возвращают дату в формате YYYY-MM-DD, например 2026-11-03. Дату со временем или в формате 03.11.2026 такое поле не принимает. Поля типа datetime возвращаются в формате ISO 8601, например 2026-11-03T14:52:21+03:00. В фильтре по полю datetime тоже передавайте дату со временем.
Фильтровать и сортировать можно только по полям, у которых это указано в описании. На другие поля метод list вернет ошибку «требуется наличие атрибута Filterable» или «Sortable». Через точку можно фильтровать по полям связанных элементов CRM и объекта lastCommunication, например ["company.title", "=", "Ромашка"] или ["myCompany.title", "=", "Моя компания"]. По полям сотрудников, стадии и источника, например assignedBy.id или stage.semanticId, фильтр не работает: метод вернет ошибку BITRIX_REST_V3_EXCEPTION_INVALIDFILTEREXCEPTION. Формат фильтра описан на странице crm.<тип>.list и в статье Обзор REST API 3.0.
Поля closed, stageSemanticId и stageSemantic есть в ответе crm.smartinvoice.field.list, но методы get и list их не принимают. На такое поле в select, filter или order метод вернет ошибку BITRIX_REST_V3_EXCEPTION_UNKNOWNDTOPROPERTYEXCEPTION. Группу стадии можно получить из поля semanticId объекта стадии: "select": ["stage.semanticId"].
Объект счета
|
Название |
Описание |
|
id |
Идентификатор счета. Назначается при создании. Только чтение. Можно фильтровать и сортировать |
|
title |
Название счета, до 255 символов. Если не передать название при создании, Битрикс24 подставит слово «Счет» и идентификатор, например Можно изменять, фильтровать и сортировать |
|
accountNumber |
Номер счета, например Можно изменять, фильтровать и сортировать |
|
xmlId |
Внешний код счета, до 255 символов. Используйте для связи счета с записью во внешней системе. Можно изменять, фильтровать и сортировать |
|
stageId |
Идентификатор стадии, например Можно изменять, фильтровать и сортировать |
|
stage |
Стадия счета. Объект типа стадия. Только чтение. Запрашивается в |
|
movedTime |
Дата и время последней смены стадии. Только чтение. Можно фильтровать и сортировать |
|
movedById |
Идентификатор пользователя, который последним сменил стадию. Только чтение. Можно фильтровать и сортировать |
|
movedBy |
Пользователь, который последним сменил стадию. Объект типа сотрудник. Только чтение. Запрашивается в |
|
closed |
Закрыт ли счет: Только чтение. Поле есть в ответе |
|
stageSemanticId |
Группа стадии. Возможные значения:
Только чтение. Поле есть в ответе |
|
stageSemantic |
Группа стадии с названием: Только чтение. Поле есть в ответе |
|
beginTime |
Дата выставления счета. Если не передать при создании, Битрикс24 подставит дату создания счета. Можно изменять, фильтровать и сортировать |
|
closeTime |
Срок оплаты. Если не передать при создании, Битрикс24 подставит дату через семь дней после создания счета. Можно изменять, фильтровать и сортировать |
|
opportunity |
Сумма счета, не меньше Можно изменять, фильтровать и сортировать |
|
isManualOpportunity |
Режим расчета суммы: Можно изменять, фильтровать и сортировать |
|
taxValue |
Сумма налога. Рассчитывается по товарным позициям. Только чтение. Можно фильтровать и сортировать |
|
currencyId |
Идентификатор валюты, например Можно изменять, фильтровать и сортировать |
|
currency |
Валюта. Объект типа валюта. Только чтение. Запрашивается в |
|
companyId |
Идентификатор компании-клиента. Компании возвращает метод crm.company.list. Можно изменять, фильтровать и сортировать |
|
company |
Компания-клиент. Объект типа элемент CRM. Только чтение. Запрашивается в |
|
contactsId |
Идентификаторы контактов счета. Контакты возвращает метод crm.contact.list. Переданный массив заменяет текущий список контактов. Можно изменять и фильтровать, сортировать нельзя |
|
contacts |
Контакты счета. Массив объектов типа элемент CRM. Если контактов нет — пустой массив. Только чтение. Запрашивается в |
|
contactId |
Идентификатор основного контакта — первого в списке Только чтение. Можно фильтровать, сортировать нельзя |
|
contact |
Основной контакт. Объект типа элемент CRM. Только чтение. Запрашивается в |
|
myCompanyId |
Идентификатор вашей компании, от имени которой выставлен счет. Если не передать при создании, Битрикс24 подставит вашу компанию по умолчанию. Список ваших компаний возвращает метод crm.mycompany.list. Идентификатор компании клиента метод не примет и вернет ошибку «Значение поля не содержится в списке допустимых значений». Реквизиты вашей компании в счете задает метод crm.smartinvoice.mycompanyrequisite.set. Можно изменять, фильтровать и сортировать |
|
myCompany |
Ваша компания. Объект типа элемент CRM. Ее поля описаны в статье Поля моей компании в REST 3.0. Только чтение. Запрашивается в |
|
relatedDealId |
Идентификатор сделки, к которой относится счет. Если сделки нет, метод вернет ошибку «Значение поля не содержится в списке допустимых значений». Можно изменять и фильтровать, сортировать нельзя |
|
relatedDeal |
Сделка, к которой относится счет. Объект типа элемент CRM. Только чтение. Запрашивается в |
|
relatedQuoteId |
Идентификатор предложения, к которому относится счет. Если предложения нет, метод вернет ошибку «Значение поля не содержится в списке допустимых значений». Можно изменять и фильтровать, сортировать нельзя |
|
relatedQuote |
Предложение, к которому относится счет. Объект типа элемент CRM. Только чтение. Запрашивается в |
|
locationId |
Идентификатор местоположения. Если местоположение не задано — Можно изменять, фильтровать и сортировать |
|
sourceId |
Идентификатор источника, например Можно изменять, фильтровать и сортировать |
|
source |
Источник. Объект типа значение справочника. Только чтение. Запрашивается в |
|
sourceDescription |
Дополнительная информация об источнике. Можно изменять и фильтровать, сортировать нельзя |
|
assignedById |
Идентификатор ответственного за счет. Если не передать при создании, ответственным станет пользователь, который вызвал метод. Идентификаторы пользователей возвращает метод user.get. Если пользователя нет, метод вернет ошибку «Значение поля не содержится в списке допустимых значений». Можно изменять, фильтровать и сортировать |
|
assignedBy |
Ответственный. Объект типа сотрудник. Только чтение. Запрашивается в |
|
observersId |
Идентификаторы наблюдателей. Идентификаторы пользователей возвращает метод user.get. Переданный массив заменяет текущий список наблюдателей. Можно изменять и фильтровать, сортировать нельзя. В фильтре |
|
observers |
Наблюдатели. Массив объектов типа сотрудник. Если наблюдателей нет — пустой массив. Только чтение. Запрашивается в |
|
opened |
Доступен ли счет всем пользователям: Можно изменять, фильтровать и сортировать |
|
comments |
Комментарий к счету. Можно изменять. Фильтровать и сортировать нельзя |
|
createdTime |
Дата и время создания счета. Только чтение. Можно фильтровать и сортировать |
|
createdById |
Идентификатор пользователя, который создал счет. Только чтение. Можно фильтровать и сортировать |
|
createdBy |
Пользователь, который создал счет. Объект типа сотрудник. Только чтение. Запрашивается в |
|
updatedTime |
Дата и время последнего изменения счета. Только чтение. Можно фильтровать и сортировать |
|
updatedById |
Идентификатор пользователя, который последним изменил счет. Только чтение. Можно фильтровать и сортировать |
|
updatedBy |
Пользователь, который последним изменил счет. Объект типа сотрудник. Только чтение. Запрашивается в |
|
lastActivityTime |
Дата и время последней активности в таймлайне счета. Только чтение. Можно фильтровать и сортировать |
|
lastActivityById |
Идентификатор автора последней активности в таймлайне. Только чтение. Можно фильтровать и сортировать |
|
lastActivityBy |
Автор последней активности в таймлайне. Объект типа сотрудник. Только чтение. Запрашивается в |
|
webformId |
Идентификатор CRM-формы, через которую создан счет. Если счет создан не формой — Только чтение. Можно фильтровать и сортировать |
|
webform |
CRM-форма, через которую создан счет. Объект типа CRM-форма. Только чтение. Запрашивается в |
|
lastCommunication |
Даты последних коммуникаций по счету. Объект типа последняя коммуникация. Только чтение. Запрашивается в |
|
entityTypeId |
Идентификатор типа объекта. Для счета — Только чтение |
|
canRead |
Может ли текущий пользователь просматривать счет: Только чтение |
|
url |
Относительная ссылка на карточку счета, например Только чтение |
Связанные объекты
Связанный объект запрашивается в select по имени поля без суффикса Id: assignedBy, stage, company. Имя объекта целиком возвращает все его поля, путь через точку — только выбранные, например ["stage.name", "assignedBy.firstName"]. Путь поддерживает один уровень вложенности.
Связанный элемент CRM — contact, contacts, company, myCompany, relatedDeal, relatedQuote — по имени целиком возвращает только id. Остальные поля элемента запрашивайте через точку. Через точку доступны поля из объекта элемента CRM и любые поля типа связанного элемента, например ["company.title", "company.phone", "myCompany.title"].
Если связь не заполнена, объект приходит как null, а массив объектов, например observers или contacts, — как пустой массив.
Объект сотрудника
Поля createdBy, updatedBy, lastActivityBy, assignedBy, movedBy, observers.
|
Название |
Описание |
|
id |
Идентификатор пользователя |
|
firstName |
Имя |
|
lastName |
Фамилия |
|
personalGender |
Пол: |
|
url |
Относительная ссылка на профиль пользователя, например |
|
personalPhoto |
Ссылка на фотографию пользователя. Если фотографии нет — |
Объект элемента CRM
Поля contact, contacts, company, myCompany, relatedDeal, relatedQuote.
|
Название |
Описание |
|
id |
Идентификатор элемента |
|
entityTypeId |
Идентификатор типа объекта, например |
|
canRead |
Может ли текущий пользователь просматривать элемент |
|
title |
Название элемента. У контакта — фамилия, имя и отчество |
|
url |
Относительная ссылка на карточку элемента, например |
Объект стадии
Поле stage.
|
Название |
Описание |
|
id |
Идентификатор стадии, например |
|
name |
Название стадии, например |
|
sort |
Порядок стадии в воронке |
|
color |
Цвет стадии в формате |
|
semanticId |
Группа стадии: |
Объект значения справочника
Поле source.
|
Название |
Описание |
|
id |
Идентификатор значения, например |
|
name |
Название значения, например |
|
sort |
Порядок сортировки |
Объект CRM-формы
Поле webform.
|
Название |
Описание |
|
id |
Идентификатор CRM-формы |
|
name |
Название CRM-формы |
Объект последней коммуникации
Поле lastCommunication. Если коммуникации такого вида не было, поле равно null.
|
Название |
Описание |
|
communicationTime |
Дата и время последней коммуникации любого вида |
|
callTime |
Дата и время последнего звонка |
|
emailTime |
Дата и время последнего письма |
|
imolTime |
Дата и время последнего сообщения в открытой линии |
|
webformTime |
Дата и время последнего заполнения CRM-формы |
Объект валюты
Поле currency.
|
Название |
Описание |
|
id |
Код валюты, например |
|
fullName |
Название валюты |
|
formatString |
Шаблон вывода суммы. Символ |
|
decPoint |
Десятичный разделитель |
|
thousandsSep |
Разделитель разрядов. Может приходить HTML-сущностью, например |
|
decimals |
Количество знаков после запятой |
|
hideZero |
Скрывать ли незначащие нули в дробной части |
|
amount |
Курс валюты относительно базовой |
|
amountCount |
Количество единиц валюты, к которому относится курс |
|
base |
Базовая валюта: |
|
sort |
Порядок сортировки |
|
numericCode |
Цифровой код валюты, например |
|
languageId |
Язык, для которого заданы название и формат |
|
createdTime |
Дата и время создания валюты |
|
updatedTime |
Дата и время изменения валюты |
|
createdById |
Идентификатор пользователя, который создал валюту |
|
updatedById |
Идентификатор пользователя, который изменил валюту |
Пользовательские поля
Пользовательские поля счета называются UF_CRM_SMART_INVOICE_<код> или UF_CRM_<код>, например UF_CRM_619F45A0AF6DB. Их передают и запрашивают по имени так же, как стандартные поля. Список пользовательских полей счета возвращает метод crm.smartinvoice.field.custom.list.
Значение поля типа «Деньги» передается объектом {"sum": 150.5, "currencyId": "RUB"}. Строка вида 150.5|RUB не подходит: метод вернет ошибку «В поле UF_CRM_… требуется тип данных MoneyDto для такого запроса».
У каждого пользовательского поля есть парное поле UF_CRM_…_data — только для чтения, запрашивается в select. Оно содержит значение в нескольких представлениях:
value— значение в том же формате, что в самом полеrawValue— значение в формате хранения, например150.5|RUBдля поля «Деньги»formattedValue— значение для показа пользователю:150.50 ₽для денег, имя сотрудника для поля «Привязка к сотруднику»extra— дополнительные данные: для денег —amount,currencyIdиcurrencyFullName, для сотрудника — поля объекта сотрудника. Для строки, числа и даты —null
У множественного пользовательского поля UF_CRM_…_data — массив таких объектов.
Продолжите изучение
- Создать элемент CRM v 3.0 crm.<тип>.add
- Изменить элемент CRM v 3.0 crm.<тип>.update
- Получить элемент CRM по идентификатору v 3.0 crm.<тип>.get
- Получить список элементов CRM v 3.0 crm.<тип>.list
- Сделать привязанный контакт основным v 3.0 crm.<тип>.setprimarycontact
- Получить описание полей v 3.0 crm.<тип>.field.list
- Обзор REST 3.0