Для AI-агентов: markdown этой страницы — /docs-content/apps/placements/bind.md индекс документации — /llms.txt
Привязать место встраивания
POST /v1/placements/bind
Регистрирует приложение в выбранной точке интерфейса Битрикс24 на аккаунте — вкладке карточки, пункте меню, панели чата. После вызова точка появляется в интерфейсе с той подписью, которая передана в запросе.
Предусловия вызова — что нужно до привязки.
Поля запроса (body)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
placement |
string | да | Код места встраивания. Перечень кодов, доступных аккаунту — Доступные места |
handler |
string | да | Абсолютный адрес страницы приложения, которая откроется в этом месте |
title |
string | да | Подпись места в интерфейсе аккаунта, от 1 до 255 символов |
options |
object | нет | Настройки места встраивания. Кроме перечисленных ниже полей принимаются любые другие — например context, role, extranet у места IM_CONTEXT_MENU. Значение каждого поля — строка, число или логическое значение, вложенные объекты и массивы не принимаются |
options.iconName |
string | нет | Имя значка, от 1 до 255 символов. Требуется местам IM_SIDEBAR, IM_NAVIGATION, IM_TEXTAREA — без него Битрикс24 отклоняет привязку. Месту IM_CONTEXT_MENU значок не нужен |
options.errorHandlerUrl |
string | нет | Адрес страницы ошибки для места PAGE_BACKGROUND_WORKER. Если поле не передано, платформа подставляет действующий адрес обработчика |
options.iconSvg |
string | нет | Значок в формате SVG, до 10 000 символов |
options.width |
number | нет | Ширина области встраивания. Целое положительное число |
options.height |
number | нет | Высота области встраивания. Целое положительное число |
options.color |
string | нет | Имя цвета из палитры чата Битрикс24 — например AZURE, GREEN, PURPLE. Не шестнадцатеричный код, до 64 символов |
Примеры
curl — OAuth-приложение
curl -X POST https://vibecode.bitrix24.tech/v1/placements/bind \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"placement": "CRM_DEAL_DETAIL_TAB",
"handler": "https://example.com/deal-tab",
"title": "Аналитика по сделке"
}'
JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/placements/bind', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
placement: 'CRM_DEAL_DETAIL_TAB',
handler: 'https://example.com/deal-tab',
title: 'Аналитика по сделке',
}),
})
const { data } = await res.json()
console.log('Зарегистрированный адрес обработчика:', data.handler)
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
success |
boolean | true при успешной привязке |
data.placement |
string | Код привязанного места встраивания |
data.handler |
string | Адрес обработчика, зарегистрированный на аккаунте |
data.title |
string | Подпись места в интерфейсе аккаунта |
data.options |
object | Действующий набор настроек места. Приходит, когда настройки переданы в запросе или подставлены платформой |
data.alreadyBound |
boolean | true, когда место уже числилось привязанным и регистрация выполнена заново |
data.handlerRewritten |
boolean | true, когда переданный адрес обработчика заменён на платформенный |
data.requestedHandler |
string | Адрес обработчика из запроса. Приходит вместе с handlerRewritten |
Пример ответа
Переданный адрес обработчика заменён на платформенный:
{
"success": true,
"data": {
"placement": "CRM_DEAL_DETAIL_TAB",
"handler": "https://vibecode.bitrix24.tech/v1/bitrix-handler",
"title": "Аналитика по сделке",
"requestedHandler": "https://app-a1b2c3d4.vibecode.bitrix24.tech/deal-tab",
"handlerRewritten": true
}
}
Повторная привязка того же кода:
{
"success": true,
"data": {
"placement": "CRM_DEAL_DETAIL_TAB",
"handler": "https://example.com/deal-tab",
"title": "Сделка: сводка",
"alreadyBound": true
}
}
Привязка места PAGE_BACKGROUND_WORKER без options — платформа подставила адрес страницы ошибки:
{
"success": true,
"data": {
"placement": "PAGE_BACKGROUND_WORKER",
"handler": "https://example.com/worker",
"title": "Фоновый сценарий",
"options": {
"errorHandlerUrl": "https://example.com/worker"
}
}
}
Пример ответа при ошибке
400 — в теле запроса нет обязательного поля:
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "title: Required"
}
}
Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | OAUTH_APP_REQUIRED |
Вызов сделан личным ключом. Привязка работает только с ключом авторизации приложения |
| 400 | VALIDATION_ERROR |
Тело запроса не прошло проверку — пропущено обязательное поле или код места не входит в перечень допустимых |
| 400 | PLATFORM_HANDLER_UNRESOLVABLE |
Переданный адрес указывает на технический адрес сервера приложения, а платформенный обработчик определить не удалось. Место не зарегистрировано |
| 400 | APP_NOT_REGISTERED |
У приложения нет идентификатора приложения Битрикс24 |
| 400 | BOX_NO_DEVELOPER_KEY |
У автора приложения не настроен ключ разработчика |
| 401 | SESSION_REQUIRED |
Не передан заголовок Authorization: Bearer с токеном сессии |
| 403 | PLACEMENT_SCOPE_MISSING |
У ключа нет скоупа placement |
| 403 | WRITE_BLOCKED_READONLY_KEY |
Ключ работает в режиме только чтения. Переключите его на чтение и запись |
| 403 | SESSION_REQUIRES_ADMIN |
Ключ разработчика принадлежит пользователю без прав администратора аккаунта |
| 403 | B24_MARKET_SUBSCRIPTION_REQUIRED |
Нужна активная подписка BitrixGPT + Маркетплейс |
| 403 | B24_MARKET_TRIAL_USED |
Пробный период подписки BitrixGPT + Маркетплейс уже использован — нужна платная подписка |
| 403 | INT_TARIFF_REQUIRED |
Нужен коммерческий тариф Битрикс24 |
| 404 | APP_NOT_FOUND |
К ключу не привязано приложение |
| 413 | FST_ERR_CTP_BODY_TOO_LARGE |
Тело отправлено не как JSON и длиннее одного байта. Укажите заголовок Content-Type: application/json |
| 415 | FST_ERR_CTP_INVALID_MEDIA_TYPE |
Тело отправлено не как JSON и равно одному байту — та же причина, другая ветка проверки |
| 502 | BITRIX_UNAVAILABLE |
Битрикс24 отклонил регистрацию места. Код и статус ответа Битрикс24 приходят в details |
| 503 | NETWORK_DEVKEY_REQUIRED |
Ключ разработчика для автора приложения ещё не выдан |
Полный список общих ошибок API — Ошибки.
Известные особенности
- Повторная привязка перерегистрирует место. Вызов для уже привязанного кода не отклоняется: платформа снимает прежнюю регистрацию и привязывает место заново, поэтому новые адрес обработчика и подпись вступают в силу. Это единственный способ изменить подпись уже привязанного места.
- Технический адрес сервера приложения заменяется платформенным. Если
handlerуказывает на технический адрес сервера приложения, на аккаунте регистрируется платформенный обработчик приложения. Внешние адреса регистрируются без изменений. - Битрикс24 дополняет
optionsсвоими значениями. Для виджетов чата аккаунт хранит рядом с переданными настройками собственные — область показа, роль и признак экстранета. Они приходят в привязанных местах даже тогда, когда вы их не передавали. - Подпись одна для всех языков интерфейса. Значение
titleуходит на аккаунт единственной подписью, отдельный перевод этим вызовом не задаётся. В привязанных местах полеlangAllвозвращает эту же подпись для каждого языка.