#Создать поле
POST /v1/items/:entityTypeId/userfields
Создаёт новое пользовательское поле для элементов смарт-процесса. Возвращает HTTP 201 Created с id нового поля. Поля передаются плоско в корне JSON — без обёртки fields.
#Параметры
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
:entityTypeId (path) |
number | да | Идентификатор типа смарт-процесса. Источник: `GET /v1/smart-processes` — поле entityTypeId в каждом элементе массива data |
#Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
userTypeId |
string | да | Тип поля. Список допустимых значений — `GET /v1/items/:entityTypeId/userfields/types`. Примеры: string, enumeration, integer, double, datetime |
fieldName |
string | да | Полное системное имя в формате UF_CRM_<typeId>_<суффикс>, где typeId — число из entityId (CRM_<typeId>) полей этого смарт-процесса (см. Список полей). Авто-генерация не поддерживается: бэкенд не достраивает префикс, неполное имя даёт 422 BITRIX_ERROR |
label |
string | нет | Подпись поля для отображения. При создании копируется в editFormLabel. Для подписей по конкретным языкам используйте объект editFormLabel |
editFormLabel |
object | нет | Подпись в форме редактирования по языкам. Пример: { "ru": "Проект", "en": "Project" }. Значения устанавливаются для указанных языков; остальные локали заполняются по правилам Битрикс24 |
sort |
string | нет | Порядок сортировки в интерфейсе Битрикс24. По умолчанию "100" |
multiple |
string | нет | Разрешить несколько значений: "Y" или "N". По умолчанию "N" |
mandatory |
string | нет | Обязательное при заполнении: "Y" или "N". По умолчанию "N" |
showFilter |
string | нет | Отображать в фильтре: "N" — нет, "I" — точное значение, "E" — маска, "S" — диапазон |
showInList |
string | нет | Показывать в списке записей: "Y" или "N" |
editInList |
string | нет | Разрешить редактирование прямо из списка: "Y" или "N" |
isSearchable |
string | нет | Участвует в полнотекстовом поиске: "Y" или "N" |
xmlId |
string | нет | Внешний идентификатор для интеграций |
settings |
object | нет | Настройки поля, специфичные для userTypeId. Для string — SIZE, ROWS, REGEXP, MIN_LENGTH, MAX_LENGTH, DEFAULT_VALUE. Состав зависит от типа |
enum |
array | нет | Варианты для поля типа enumeration. Каждый элемент: { "value": "Название", "sort": 10 } (опционально "def": "Y" — значение по умолчанию). Ключ list здесь не работает — варианты передаются только через enum |
#Примеры
#curl — личный ключ
curl -X POST "https://vibecode.bitrix24.tech/v1/items/174/userfields" \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userTypeId": "enumeration",
"fieldName": "UF_CRM_3_PROJECT_STATUS",
"label": "Статус проекта",
"sort": "200",
"showFilter": "I",
"showInList": "Y",
"enum": [
{ "value": "Новый", "sort": 10 },
{ "value": "В работе", "sort": 20 },
{ "value": "Завершён", "sort": 30 }
]
}'
#curl — OAuth-приложение
curl -X POST "https://vibecode.bitrix24.tech/v1/items/174/userfields" \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"userTypeId": "enumeration",
"fieldName": "UF_CRM_3_PROJECT_STATUS",
"label": "Статус проекта",
"sort": "200",
"showFilter": "I",
"showInList": "Y",
"enum": [
{ "value": "Новый", "sort": 10 },
{ "value": "В работе", "sort": 20 },
{ "value": "Завершён", "sort": 30 }
]
}'
#JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/items/174/userfields', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
userTypeId: 'enumeration',
fieldName: 'UF_CRM_3_PROJECT_STATUS',
label: 'Статус проекта',
sort: '200',
showFilter: 'I',
showInList: 'Y',
enum: [
{ value: 'Новый', sort: 10 },
{ value: 'В работе', sort: 20 },
{ value: 'Завершён', sort: 30 },
],
}),
})
const { success, data } = await res.json()
console.log('Создано поле с id:', data.id)
#JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/items/174/userfields', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
userTypeId: 'enumeration',
fieldName: 'UF_CRM_3_PROJECT_STATUS',
label: 'Статус проекта',
sort: '200',
showFilter: 'I',
showInList: 'Y',
enum: [
{ value: 'Новый', sort: 10 },
{ value: 'В работе', sort: 20 },
{ value: 'Завершён', sort: 30 },
],
}),
})
const { success, data } = await res.json()
#Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | Всегда true при успехе |
data.id |
string | Идентификатор созданного поля. Возвращается строкой; при чтении через Получить поле то же значение приходит числом |
#Пример ответа
{
"success": true,
"data": {
"id": "7119"
}
}
#Пример ответа при ошибке
422 — некорректное имя поля (не в формате UF_CRM_<typeId>_<суффикс>):
{
"success": false,
"error": {
"code": "BITRIX_ERROR",
"message": "Некорректный код поля"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | MISSING_FIELD |
Не передан обязательный параметр userTypeId |
| 400 | INVALID_REQUEST |
Тело запроса не является объектом |
| 400 | INVALID_ENTITY_TYPE_ID |
:entityTypeId не является положительным целым числом |
| 403 | BITRIX_ACCESS_DENIED |
У ключа нет скоупа userfieldconfig — перевыпустите ключ с этим скоупом |
| 403 | SCOPE_DENIED |
API-ключ не имеет скоупа crm |
| 404 | SMART_PROCESS_NOT_FOUND |
Смарт-процесс с указанным entityTypeId не найден на портале |
| 422 | BITRIX_ERROR |
Некорректный код поля — fieldName не в формате UF_CRM_<typeId>_<суффикс> |
| 422 | BITRIX_ERROR |
Неизвестный userTypeId (не из каталога `/types`), дублирующее имя поля или некорректные settings |
| 401 | TOKEN_MISSING |
API-ключ не имеет настроенных токенов |
| 401 | MISSING_API_KEY |
Отсутствует заголовок X-Api-Key |
Полный список общих ошибок API — Ошибки.
#Смотрите также
- Каталог типов полей — список допустимых
userTypeId - Получить поле — полное описание созданного поля
- Обновить поле — изменить параметры поля
- Удалить поле — удалить поле
- Поля смарт-процессов — обзор раздела
- Пользовательские поля — обзор раздела