Поля моей компании в REST 3.0
Выберите инструмент для разработки с AI-агентом:
- используйте Битрикс24 Вайбкод, чтобы создать приложение для Битрикс24 по описанию задачи без знания языков программирования. Агент напишет код и разместит приложение на сервере без ручной настройки хостинга
- используйте MCP-сервер, чтобы разрабатывать интеграцию через REST API в своем проекте. Агент будет обращаться к официальной REST-документации
Поля относятся к методам REST 3.0. Особенности вызова и формат ответа новой версии API описаны в обзоре REST 3.0.
Моя компания — компания из справочника «Мои компании», от имени которой вы работаете с клиентами. Ее выбирают в сделках, счетах, предложениях и смарт-процессах, например в поле myCompanyId счета.
Поля моей компании возвращают методы crm.mycompany.get и crm.mycompany.list, а принимают методы crm.mycompany.add и crm.mycompany.update. Значения множественных полей по одному добавляют и удаляют методы crm.mycompany.addfieldvalue и crm.mycompany.deletefieldvalue. Список полей с признаками возвращает метод crm.mycompany.field.list.
Моя компания устроена как обычная компания CRM, но методы crm.mycompany.* и crm.company.* не пересекаются. crm.mycompany.get по идентификатору компании клиента вернет ошибку «Запись с ID = … не найдена», а crm.mycompany.list компании клиентов не покажет. Поля компаний клиентов описаны в статье Поля компании в REST 3.0.
У моей компании нет методов пользовательских полей crm.mycompany.field.custom.* и обязательности полей crm.mycompany.field.required.*. Пользовательские поля у моих компаний общие с компаниями клиентов, подробнее — в разделе Пользовательские поля.
Часть полей существует в двух видах: как идентификатор и как связанный объект, например assignedById и assignedBy. Идентификатор можно передать при записи, а связанный объект — только запросить в select.
Какие поля принимают и возвращают методы
|
Метод |
Принимает |
Возвращает |
|
Поля таблицы Объект моей компании, которые можно изменять, и пользовательские поля. Обязательно поле |
Идентификатор созданной компании |
|
|
|
Признак успеха |
|
|
|
Без |
|
|
|
Без |
|
|
|
Признак успеха |
|
|
|
Сокращенный набор данных: |
Поля с пометкой «только чтение» методы add и update не принимают и возвращают ошибку BITRIX_REST_V3_EXCEPTION_VALIDATION_DTOVALIDATIONEXCEPTION с текстом «Поле "contactId" не доступно к заполнению». Связанные объекты, например contacts и assignedBy, тоже только для чтения: для записи передавайте идентификатор — contactsId, assignedById.
Поля со значениями из справочников метод проверяет при записи. Если значения нет в справочнике, метод вернет ошибку «Значение поля не содержится в списке допустимых значений». Для типа компании, сферы деятельности, количества сотрудников и валюты в тексте ошибки перечислены допустимые значения.
Логические поля принимают и возвращают true или false. Значения Y, N, 1 и 0 не подходят: метод вернет ошибку «В поле opened требуется тип данных bool для такого запроса».
Поля типа datetime возвращаются в формате ISO 8601, например 2026-11-03T14:42:01+03:00. В фильтре по полю datetime тоже передавайте дату со временем.
Фильтровать и сортировать можно только по полям, у которых это указано в описании. На другие поля метод list вернет ошибку «требуется наличие атрибута Filterable» или «Sortable». Через точку можно фильтровать по полям связанных элементов CRM, значений телефона, почты, сайта и мессенджера, объектов utm и lastCommunication, например ["contact.name", "=", "Иван"] или ["phone.value", "=", "+79990000001"]. По полям сотрудников и справочников, например assignedBy.id или industry.name, фильтр не работает: метод вернет ошибку BITRIX_REST_V3_EXCEPTION_INVALIDFILTEREXCEPTION. Формат фильтра описан на странице crm.<тип>.list и в статье Обзор REST API 3.0.
Ответ crm.mycompany.field.list отличается от фактического формата полей. У createdTime, updatedTime и lastActivityTime указан тип object, а приходят строки datetime. У phone, email, web и im указано multiple: false, а приходят массивы. У observersId и contactsId тип элементов указан как object, а передаются и приходят целые числа. Правила проверки validationRules приходят пустыми объектами {}. Ориентируйтесь на таблицу Объект моей компании.
Объект моей компании
|
Название |
Описание |
|
id |
Идентификатор компании. Назначается при создании. Только чтение. Можно фильтровать и сортировать |
|
title |
Название компании, до 255 символов. Обязательное поле при создании компании. Пустую строку Можно изменять, фильтровать и сортировать |
|
typeId |
Идентификатор типа компании, например Можно изменять, фильтровать и сортировать |
|
type |
Тип компании. Объект типа значение справочника. Только чтение. Запрашивается в |
|
industryId |
Идентификатор сферы деятельности, например Можно изменять, фильтровать и сортировать |
|
industry |
Сфера деятельности. Объект типа значение справочника. Только чтение. Запрашивается в |
|
employeesId |
Идентификатор диапазона количества сотрудников, например Можно изменять, фильтровать и сортировать |
|
employees |
Количество сотрудников. Объект типа значение справочника. Только чтение. Запрашивается в |
|
revenue |
Годовой оборот, например Можно изменять, фильтровать и сортировать |
|
currencyId |
Идентификатор валюты годового оборота, например Можно изменять, фильтровать и сортировать |
|
currency |
Валюта. Объект типа валюта. Только чтение. Запрашивается в |
|
logo |
Логотип компании. Объект типа файл. Чтобы удалить логотип, передайте Можно изменять. Фильтровать и сортировать нельзя |
|
contactsId |
Идентификаторы контактов компании. Контакты возвращает метод crm.contact.list. Переданный массив заменяет текущий список контактов. Можно изменять и фильтровать, сортировать нельзя. В фильтре |
|
contacts |
Контакты компании. Массив объектов типа элемент CRM. Если контактов нет — пустой массив. Только чтение. Запрашивается в |
|
contactId |
Идентификатор контакта, для которого эта компания основная. Если компания не основная ни для одного из своих контактов — Только чтение. Можно фильтровать, сортировать нельзя |
|
contact |
Контакт, для которого эта компания основная. Объект типа элемент CRM. Только чтение. Запрашивается в |
|
leadId |
Идентификатор лида, из которого создана компания. Если компания создана не из лида — Только чтение. Можно фильтровать и сортировать |
|
lead |
Лид, из которого создана компания. Объект типа элемент CRM. Только чтение. Запрашивается в |
|
phone |
Телефоны компании. Массив объектов типа значение множественного поля. Типы телефонов возвращает метод crm.dictionary.phonetype.list. Можно изменять. Фильтровать можно по полям значения через точку, например |
|
email |
Адреса электронной почты. Массив объектов типа значение множественного поля. Типы адресов возвращает метод crm.dictionary.emailtype.list. Метод проверяет формат адреса и на некорректный адрес возвращает ошибку «Поле "Рабочий e-mail" содержит некорректный адрес». Можно изменять. Фильтровать можно по полям значения через точку, например |
|
web |
Сайты и страницы в соцсетях. Массив объектов типа значение множественного поля. Типы сайтов возвращает метод crm.dictionary.webtype.list. Можно изменять. Фильтровать можно по полям значения через точку, например |
|
im |
Мессенджеры и открытые линии. Массив объектов типа значение множественного поля. Типы мессенджеров возвращает метод crm.dictionary.imtype.list. Можно изменять. Фильтровать можно по полям значения через точку, например |
|
hasPhone |
Есть ли у компании хотя бы один телефон: Только чтение. Фильтровать и сортировать нельзя |
|
hasEmail |
Есть ли у компании хотя бы один адрес почты: Только чтение. Фильтровать и сортировать нельзя |
|
hasWeb |
Есть ли у компании хотя бы один сайт: Только чтение. Фильтровать и сортировать нельзя |
|
hasIm |
Есть ли у компании хотя бы одно значение в поле Только чтение. Фильтровать и сортировать нельзя |
|
assignedById |
Идентификатор ответственного за компанию. Идентификаторы пользователей возвращает метод user.get. Если пользователя нет, метод вернет ошибку «Значение поля не содержится в списке допустимых значений». Можно изменять, фильтровать и сортировать |
|
assignedBy |
Ответственный. Объект типа сотрудник. Только чтение. Запрашивается в |
|
observersId |
Идентификаторы наблюдателей. Идентификаторы пользователей возвращает метод user.get. Переданный массив заменяет текущий список наблюдателей. Можно изменять и фильтровать, сортировать нельзя. В фильтре |
|
observers |
Наблюдатели. Массив объектов типа сотрудник. Если наблюдателей нет — пустой массив. Только чтение. Запрашивается в |
|
opened |
Доступна ли компания всем пользователям: Можно изменять, фильтровать и сортировать |
|
comments |
Комментарий к компании. Можно изменять. Фильтровать и сортировать нельзя |
|
utm |
UTM-метки компании. Объект типа UTM-метки. Можно изменять. Фильтровать можно по полям объекта через точку, например |
|
originatorId |
Идентификатор внешней системы, из которой загружена компания. Используйте вместе с Можно изменять, фильтровать и сортировать |
|
originId |
Идентификатор компании во внешней системе. Можно изменять, фильтровать и сортировать |
|
originVersion |
Версия записи во внешней системе. Можно изменять. Фильтровать и сортировать нельзя |
|
createdTime |
Дата и время создания компании. Только чтение. Можно фильтровать и сортировать |
|
createdById |
Идентификатор пользователя, который создал компанию. Только чтение. Можно фильтровать и сортировать |
|
createdBy |
Пользователь, который создал компанию. Объект типа сотрудник. Только чтение. Запрашивается в |
|
updatedTime |
Дата и время последнего изменения компании. Только чтение. Можно фильтровать и сортировать |
|
updatedById |
Идентификатор пользователя, который последним изменил компанию. Только чтение. Можно фильтровать и сортировать |
|
updatedBy |
Пользователь, который последним изменил компанию. Объект типа сотрудник. Только чтение. Запрашивается в |
|
lastActivityTime |
Дата и время последней активности в таймлайне компании. Только чтение. Можно фильтровать и сортировать |
|
lastActivityById |
Идентификатор автора последней активности в таймлайне. Только чтение. Можно фильтровать и сортировать |
|
lastActivityBy |
Автор последней активности в таймлайне. Объект типа сотрудник. Только чтение. Запрашивается в |
|
webformId |
Идентификатор CRM-формы, через которую создана компания. Если компания создана не формой — Только чтение. Можно фильтровать и сортировать |
|
webform |
CRM-форма, через которую создана компания. Объект типа CRM-форма. Только чтение. Запрашивается в |
|
lastCommunication |
Даты последних коммуникаций с компанией. Объект типа последняя коммуникация. Только чтение. Запрашивается в |
|
entityTypeId |
Идентификатор типа объекта. Для моей компании — Только чтение |
|
canRead |
Может ли текущий пользователь просматривать компанию: Только чтение |
|
url |
Относительная ссылка на карточку компании, например Только чтение |
|
related<Код типа>Id |
Идентификатор родительского элемента смарт-процесса, например Можно изменять и фильтровать, сортировать нельзя |
|
related<Код типа> |
Родительский элемент смарт-процесса, например Только чтение. Запрашивается в |
Телефоны, почта, сайты и мессенджеры
Поля phone, email, web и im — массивы значений. Каждое значение — объект с полями:
|
Название |
Описание |
|
id |
Идентификатор значения. Назначается при записи, передавать его нельзя: метод вернет ошибку «Поле "id" не доступно к заполнению» |
|
valueTypeId |
Тип значения, например |
|
valueType |
Тип значения с названием: |
|
value |
Значение: номер телефона, адрес почты, адрес сайта или идентификатор в мессенджере. Обязательное поле при записи |
При записи передавайте массив объектов с полями valueTypeId и value:
{
"phone": [
{"valueTypeId": "WORK", "value": "+79990000001"},
{"valueTypeId": "MOBILE", "value": "+79990000002"}
]
}
В ответе каждое значение приходит с id и объектом valueType:
{
"phone": [
{
"id": 8861,
"valueTypeId": "WORK",
"valueType": {
"id": "WORK",
"name": "Рабочий телефон",
"nameShort": "Рабочий"
},
"value": "+79990000001"
}
]
}
Как работает запись:
crm.mycompany.updateзаменяет все значения поля переданным массивом. Значения, которых нет в массиве, удаляются. Другие множественные поля, которых нет вfields, не меняются- пустой массив, например
"phone": [], удаляет все значения поля - одно значение добавляет метод crm.mycompany.addfieldvalue, удаляет — crm.mycompany.deletefieldvalue. В
valueпередайте объект{"valueTypeId": "WORK", "value": "+79990000001"}. Если такое значение уже есть,addfieldvalueвернет ошибку «The field value already exists.» - в одном поле может быть до 50 значений, во всех четырех полях вместе — до 100. При превышении метод вернет ошибку «Too many phone multifields.»
Объект файла
Поле logo. Чтобы загрузить логотип, передайте объект upload с именем файла и содержимым в Base64 или ссылкой на файл:
{
"logo": {
"upload": {
"name": "logo.png",
"data": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg=="
}
}
}
Вместо data можно передать url — адрес файла. Одновременно передавать data и url нельзя.
В ответе поле содержит данные загруженного файла:
|
Название |
Описание |
|
id |
Идентификатор файла, например |
|
name |
Имя файла |
|
url |
Адрес для просмотра файла в Битрикс24 |
|
downloadUrl |
Адрес для скачивания файла через REST. В адресе есть данные авторизации вебхука, не публикуйте его |
Объект UTM-меток
Поле utm. При записи передавайте только нужные метки: при создании остальные получат значение null, при изменении сохранят текущие значения. Каждая метка — строка до 255 символов.
|
Название |
Описание |
|
source |
Рекламная система, метка |
|
medium |
Тип трафика, метка |
|
campaign |
Рекламная кампания, метка |
|
content |
Содержание объявления, метка |
|
term |
Ключевая фраза, метка |
Поля связей с другими типами
Поля related<Код типа>Id и related<Код типа> появляются, когда в Битрикс24 настроена связь, в которой компания подчинена смарт-процессу. Для каждого родительского смарт-процесса у компании есть пара полей:
related<Код типа>Id— идентификатор родительского элемента, напримерrelatedSmartProcess177Idдля смарт-процесса сentityTypeId = 177related<Код типа>— родительский элемент как объект типа элемент CRM, напримерrelatedSmartProcess177
Название поля в ответе field.list совпадает с названием родительского смарт-процесса, например «Закупка оборудования». Метод проверяет, что элемент с переданным идентификатором существует. Если элемента нет, метод вернет ошибку «Значение поля не содержится в списке допустимых значений».
Состав этих полей зависит от настроек связей в Битрикс24. Актуальный список возвращает метод crm.mycompany.field.list.
Связанные объекты
Связанный объект запрашивается в select по имени поля без суффикса Id: assignedBy, industry, contacts. Имя объекта целиком возвращает все его поля, путь через точку — только выбранные, например ["type.name", "assignedBy.firstName"]. Путь поддерживает один уровень вложенности: contact.createdBy.firstName метод не примет.
Связанный элемент CRM — contact, contacts, lead, related<Код типа> — по имени целиком возвращает только id. Остальные поля элемента запрашивайте через точку. Через точку доступны поля из объекта элемента CRM и любые поля типа связанного элемента, например ["contacts.title", "contacts.phone", "contact.post"]. Поля контакта описаны в статье Поля контакта в REST 3.0.
Если связь не заполнена, объект приходит как null, а массив объектов, например observers или contacts, — как пустой массив.
Объект сотрудника
Поля createdBy, updatedBy, lastActivityBy, assignedBy, observers.
|
Название |
Описание |
|
id |
Идентификатор пользователя |
|
firstName |
Имя |
|
lastName |
Фамилия |
|
personalGender |
Пол: |
|
url |
Относительная ссылка на профиль пользователя, например |
|
personalPhoto |
Ссылка на фотографию пользователя. Если фотографии нет — |
Объект элемента CRM
Поля contact, contacts, lead, related<Код типа>.
|
Название |
Описание |
|
id |
Идентификатор элемента |
|
entityTypeId |
Идентификатор типа объекта, например |
|
canRead |
Может ли текущий пользователь просматривать элемент |
|
title |
Название элемента. У контакта — фамилия, имя и отчество |
|
url |
Относительная ссылка на карточку элемента, например |
Объект значения справочника
Поля type, industry, employees.
|
Название |
Описание |
|
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_<код>, например UF_CRM_1687188367. Их передают и запрашивают по имени так же, как стандартные поля. Своих методов пользовательских полей у моей компании нет: crm.mycompany.field.custom.list вернет ошибку BITRIX_REST_V3_EXCEPTION_METHODNOTFOUNDEXCEPTION. Список полей возвращает метод crm.company.field.custom.list, создают и изменяют их методы crm.company.field.custom.*.
Значение поля типа «Деньги» передается объектом {"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.mycompany.basic.get
- Поля компании в REST 3.0
- Получить описание полей v 3.0 crm.<тип>.field.list
- Обзор REST 3.0