crm.company.add
Создать новую компанию
Описание
Метод crm.company.add создает новую компанию.
Параметры
fields
object
обязательный
Объект формата:
{
field_1: value_1,
field_2: value_2,
...,
field_n: value_n,
}
где:
- field_n — название поля
- value_n — значение поля
Список доступных полей описан в методе crm.company.fields.
Некорректное поле в fields будет проигнорировано
Чтобы узнать перечень обязательных полей, выполните метод crm.company.fields
params
object
необязательный
Объект, содержащий набор дополнительных параметров:
REGISTER_SONET_EVENT— регистрировать событие добавления компании и отправить уведомление ответственномуIMPORT— режим импорта. Возможные значения:
-Y— да
-N— нет
Параметр fields
TITLE
string
необязательный
Название компании
COMPANY_TYPE
crm_status
необязательный
Тип компании.
Список доступных типов можно узнать с помощью метода crm.status.list, применив фильтр { ENTITY_ID: "COMPANY_TYPE" }.
По умолчанию — первый доступный тип компании
INDUSTRY
crm_status
необязательный
Сфера деятельности.
Список доступных значений можно узнать с помощью метода crm.status.list, применив фильтр { ENTITY_ID: "INDUSTRY" }.
По умолчанию — первая доступная сфера деятельности
EMPLOYEES
crm_status
необязательный
Количество сотрудников.
Список доступных значений можно узнать с помощью метода crm.status.list, применив фильтр { ENTITY_ID: "EMPLOYEES" }.
По умолчанию — первое доступное значение
CURRENCY_ID
crm_currency
необязательный
Валюта.
Список доступных валют можно узнать с помощью метода crm.currency.list
REVENUE
double
необязательный
Годовой оборот
LOGO
file
необязательный
Логотип компании
OPENED
char
необязательный
Доступна ли компания для всех. Возможные значения:
- Y — да
- N — нет
По умолчанию Y. Значение по умолчанию может быть изменено в настройках CRM
ASSIGNED_BY_ID
user
необязательный
Идентификатор пользователя, ответственного за элемент.
По умолчанию — идентификатор пользователя, который вызывает метод
COMMENTS
string
необязательный
Комментарий
PHONE
crm_multifield[]
необязательный
Телефон
EMAIL
crm_multifield[]
необязательный
WEB
crm_multifield[]
необязательный
Сайт
IM
crm_multifield[]
необязательный
Мессенджер
UTM_SOURCE
string
необязательный
Рекламная система, например Yandex-Direct, Google-Adwords
UTM_MEDIUM
string
необязательный
Тип трафика. Возможные значения:
- CPC — объявления
- CPM — баннеры
UTM_CAMPAIGN
string
необязательный
Обозначение рекламной кампании
UTM_CONTENT
string
необязательный
Содержание кампании. Например, для контекстных объявлений
UTM_TERM
string
необязательный
Условие поиска кампании. Например, ключевые слова контекстной рекламы
IS_MY_COMPANY
char
необязательный
Является ли компания «моей компанией». Возможные значения:
- Y — да
- N — нет
UF_...
необязательный
Пользовательские поля. Например, UF_CRM_25534736.
В зависимости от настроек портала у компаний может быть набор пользовательских полей определенных типов.
Добавить пользовательское поле в компанию можно с помощью метода crm.company.userfield.add
PARENT_ID_...
необязательный
Поля связей.
Если на портале есть смарт-процессы, связанные с компаниями, для каждого такого смарт-процесса существует поле, хранящее связь между этим смарт-процессом и компанией. Само поле хранит идентификатор элемента такого смарт-процесса
Примеры запроса
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"TITLE":"ИП Титов","COMPANY_TYPE":"CUSTOMER","INDUSTRY":"MANUFACTURING","EMPLOYEES":"EMPLOYEES_2","CURRENCY_ID":"RUB","REVENUE":3000000,"OPENED":"Y","ASSIGNED_BY_ID":1,"PHONE":[{"VALUE":"555888","VALUE_TYPE":"WORK"}]},"params":{"REGISTER_SONET_EVENT":"Y"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webhook_here**/crm.company.add
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"fields":{"TITLE":"ИП Титов","COMPANY_TYPE":"CUSTOMER","INDUSTRY":"MANUFACTURING","EMPLOYEES":"EMPLOYEES_2","CURRENCY_ID":"RUB","REVENUE":3000000,"OPENED":"Y","ASSIGNED_BY_ID":1,"PHONE":[{"VALUE":"555888","VALUE_TYPE":"WORK"}]},"params":{"REGISTER_SONET_EVENT":"Y"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/crm.company.add
// This snippet is an ES module: top-level await requires type="module" or a bundler.
// $b24 is an already-initialized SDK instance (see the SDK "Get started" guide).
import { Text } from '@bitrix24/b24jssdk'
import type { B24Frame } from '@bitrix24/b24jssdk'
declare const $b24: B24Frame
try {
const response = await $b24.actions.v2.call.make<number>({
method: 'crm.company.add',
params: {
fields: {
TITLE: 'Titov Sole Proprietor',
COMPANY_TYPE: 'CUSTOMER',
INDUSTRY: 'MANUFACTURING',
EMPLOYEES: 'EMPLOYEES_2',
CURRENCY_ID: 'RUB',
REVENUE: 3000000,
LOGO: { fileData: document.getElementById('logo') },
OPENED: 'Y',
ASSIGNED_BY_ID: 1,
PHONE: [{ VALUE: '555888', VALUE_TYPE: 'WORK' }],
},
params: { REGISTER_SONET_EVENT: 'Y' },
},
requestId: Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
} else {
const result = response.getData()!.result
console.info('Created company id:', result)
}
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
<!-- Load the SDK (UMD build); it is exposed as the global B24Js -->
<script src="https://unpkg.com/@bitrix24/b24jssdk@1/dist/umd/index.min.js"></script>
<script>
async function addCompany() {
try {
// Initialize the SDK inside a Bitrix24 frame
const $b24 = await B24Js.initializeB24Frame()
const response = await $b24.actions.v2.call.make({
method: 'crm.company.add',
params: {
fields: {
TITLE: 'Titov Sole Proprietor',
COMPANY_TYPE: 'CUSTOMER',
INDUSTRY: 'MANUFACTURING',
EMPLOYEES: 'EMPLOYEES_2',
CURRENCY_ID: 'RUB',
REVENUE: 3000000,
LOGO: { fileData: document.getElementById('logo') },
OPENED: 'Y',
ASSIGNED_BY_ID: 1,
PHONE: [{ VALUE: '555888', VALUE_TYPE: 'WORK' }],
},
params: { REGISTER_SONET_EVENT: 'Y' },
},
requestId: B24Js.Text.getUuidRfc4122()
})
// The payload is available only on a successful response
if (!response.isSuccess) {
console.error(response.getErrorMessages().join('; '))
return
}
const result = response.getData().result
console.info('Created company id:', result)
} catch (error) {
// Thrown on transport or SDK failures (AjaxError, SdkError, etc.)
console.error(error)
}
}
document.addEventListener('DOMContentLoaded', addCompany)
</script>
try {
$response = $b24Service
->core
->call(
'crm.company.add',
[
'fields' => [
'TITLE' => 'ИП Титов',
'COMPANY_TYPE' => 'CUSTOMER',
'INDUSTRY' => 'MANUFACTURING',
'EMPLOYEES' => 'EMPLOYEES_2',
'CURRENCY_ID' => 'RUB',
'REVENUE' => 3000000,
'LOGO' => ['fileData' => $_POST['logo']],
'OPENED' => 'Y',
'ASSIGNED_BY_ID' => 1,
'PHONE' => [['VALUE' => '555888', 'VALUE_TYPE' => 'WORK']],
],
'params' => ['REGISTER_SONET_EVENT' => 'Y'],
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Создана компания с ID ' . $result;
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Ошибка при создании компании: ' . $e->getMessage();
}
BX24.callMethod(
"crm.company.add",
{
fields:
{
"TITLE": "ИП Титов",
"COMPANY_TYPE": "CUSTOMER",
"INDUSTRY": "MANUFACTURING",
"EMPLOYEES": "EMPLOYEES_2",
"CURRENCY_ID": "RUB",
"REVENUE" : 3000000,
"LOGO": { "fileData": document.getElementById('logo') },
"OPENED": "Y",
"ASSIGNED_BY_ID": 1,
"PHONE": [ { "VALUE": "555888", "VALUE_TYPE": "WORK" } ]
},
params: { "REGISTER_SONET_EVENT": "Y" }
},
function(result)
{
if(result.error())
console.error(result.error());
else
console.info("Создана компания с ID " + result.data());
}
);
require_once('crest.php');
$result = CRest::call(
'crm.company.add',
[
'fields' => [
'TITLE' => 'ИП Титов',
'COMPANY_TYPE' => 'CUSTOMER',
'INDUSTRY' => 'MANUFACTURING',
'EMPLOYEES' => 'EMPLOYEES_2',
'CURRENCY_ID' => 'RUB',
'REVENUE' => 3000000,
'OPENED' => 'Y',
'ASSIGNED_BY_ID' => 1,
'PHONE' => [['VALUE' => '555888', 'VALUE_TYPE' => 'WORK']],
],
'params' => ['REGISTER_SONET_EVENT' => 'Y'],
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';
// client и ctx уже созданы — см. раздел «SDK для Go»
res, err := client.Core().Call(ctx, "crm.company.add", b24.Params{
"fields": b24.Params{
"TITLE": "ИП Титов",
"COMPANY_TYPE": "CUSTOMER",
"INDUSTRY": "MANUFACTURING",
"EMPLOYEES": "EMPLOYEES_2",
"CURRENCY_ID": "RUB",
"REVENUE": 3000000,
"OPENED": "Y",
"ASSIGNED_BY_ID": 1,
"PHONE": []b24.Params{
{
"VALUE": "555888",
"VALUE_TYPE": "WORK",
},
},
},
"params": b24.Params{
"REGISTER_SONET_EVENT": "Y",
},
})
if err != nil {
return fmt.Errorf("crm.company.add: %w", err)
}
var newID b24.ID
if err := json.Unmarshal(res.Result, &newID); err != nil {
return fmt.Errorf("разбор ответа: %w", err)
}
fmt.Println("идентификатор:", newID)
Ответ
HTTP-статус: 200
{
"result": 2921,
"time": {
"start": 1769500710,
"finish": 1769500711.551784,
"duration": 1.5517840385437012,
"processing": 1,
"date_start": "2026-01-27T10:58:30+03:00",
"date_finish": "2026-01-27T10:58:31+03:00",
"operating_reset_at": 1769501310,
"operating": 0.6509370803833008
}
}
Возвращаемые данные
result
integer
Корневой элемент ответа, содержит идентификатор созданной компании
time
time
Информация о времени выполнения запроса
Обработка ошибок
HTTP-статус: 400
{
"error": "",
"error_description": "Parameter 'fields' must be array."
}
| Код | Описание | Значение |
|---|---|---|
| — | Parameter 'fields' must be array | В параметр fields передан не объект |
| — | Parameter 'params' must be array | В параметр params передан не объект |
| — | Access denied | У пользователя нет прав на «Добавление» или «Импорт» компаний |
| — | Исчерпан выделенный дисковый ресурс | |
ERROR_CORE |
Поле E-mail содержит некорректный адрес |
Поле E-mail содержит некорректный адрес |

