#Зарегистрировать звонок
POST /v1/calls/register
Регистрирует входящий или исходящий звонок в Битрикс24 CRM. При crmCreate: true создаёт лид, если номер телефона не найден среди существующих сущностей. Возвращает CALL_ID для всех последующих операций со звонком.
#Поля запроса (body)
| Параметр | Тип | Обяз. | По умолч. | Описание |
|---|---|---|---|---|
userId |
number | да | — | ID пользователя Битрикс24, принимающего звонок. Список пользователей |
phoneNumber |
string | да | — | Номер телефона звонящего в международном формате |
type |
number | нет | — | Направление: 1 — исходящий, 2 — входящий, 3 — входящий с перенаправлением, 4 — обратный звонок, 5 — информационный |
lineNumber |
string | нет | — | Номер внешней линии приложения. Список линий |
crmCreate |
boolean | нет | false |
true — создать лид, если номер не найден в CRM |
#Примеры
#curl — личный ключ
curl -X POST https://vibecode.bitrix24.tech/v1/calls/register \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"userId": 1,
"phoneNumber": "+79161234567",
"type": 2,
"crmCreate": true
}'
#curl — OAuth-приложение
curl -X POST https://vibecode.bitrix24.tech/v1/calls/register \
-H "X-Api-Key: YOUR_APP_KEY" \
-H "Authorization: Bearer USER_SESSION_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"userId": 1,
"phoneNumber": "+79161234567",
"type": 2,
"crmCreate": true
}'
#JavaScript — личный ключ
const res = await fetch('https://vibecode.bitrix24.tech/v1/calls/register', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
userId: 1,
phoneNumber: '+79161234567',
type: 2,
crmCreate: true,
}),
})
const { success, data } = await res.json()
const callId = data.CALL_ID
#JavaScript — OAuth-приложение
const res = await fetch('https://vibecode.bitrix24.tech/v1/calls/register', {
method: 'POST',
headers: {
'X-Api-Key': 'YOUR_APP_KEY',
'Authorization': 'Bearer USER_SESSION_TOKEN',
'Content-Type': 'application/json',
},
body: JSON.stringify({
userId: 1,
phoneNumber: '+79161234567',
type: 2,
crmCreate: true,
}),
})
const { success, data } = await res.json()
#Поля ответа
| Поле | Тип | Описание |
|---|---|---|
CALL_ID |
string | Идентификатор звонка для всех последующих операций |
CRM_CREATED_LEAD |
number | null | ID созданного лида. null, если лид не создан |
CRM_CREATED_ENTITIES |
array | Массив созданных CRM-сущностей [{ENTITY_TYPE, ENTITY_ID}] |
CRM_ENTITY_TYPE |
string | Тип привязанной CRM-сущности: LEAD, CONTACT, COMPANY или пустая строка |
CRM_ENTITY_ID |
number | null | ID привязанной CRM-сущности. null, если сущность не привязана |
#Пример ответа
HTTP 201 — звонок зарегистрирован, создан новый лид:
{
"success": true,
"data": {
"CALL_ID": "externalCall.00b1e735843c558431be668e3687a58b.1777974304",
"CRM_CREATED_LEAD": 1001069,
"CRM_CREATED_ENTITIES": [{"ENTITY_TYPE": "LEAD", "ENTITY_ID": 1001069}],
"CRM_ENTITY_TYPE": "LEAD",
"CRM_ENTITY_ID": 1001069
}
}
#Пример ответа при ошибке
400 — не переданы обязательные параметры:
{
"success": false,
"error": {
"code": "MISSING_PARAMS",
"message": "Required: userId (number), phoneNumber (string)"
}
}
#Ошибки
| HTTP | Код | Описание |
|---|---|---|
| 400 | MISSING_PARAMS |
Не передан userId или phoneNumber |
| 401 | MISSING_API_KEY |
Не передан заголовок X-Api-Key |
| 401 | INVALID_API_KEY |
Неверный API-ключ |
| 401 | TOKEN_MISSING |
Ключ не имеет настроенных токенов Битрикс24 |
| 401 | KEY_INACTIVE |
API-ключ неактивен или отозван |
| 403 | SCOPE_DENIED |
Ключу не хватает скоупа telephony |
| 422 | BITRIX_ERROR |
Битрикс24 вернул ошибку (текст в error.message) |
| 429 | RATE_LIMITED |
Превышен лимит запросов |
| 502 | BITRIX_UNAVAILABLE |
Битрикс24 недоступен |
Полный список общих ошибок API — Ошибки.
#Известные особенности
Поиск существующей CRM-сущности при crmCreate: true. Битрикс24 сначала ищет лид, контакт или компанию с совпадающим номером телефона. При нахождении CRM_ENTITY_ID указывает на существующую сущность, а CRM_CREATED_LEAD остаётся null. Новый лид создаётся только если совпадений нет.
CRM_* поля пустые при crmCreate: false. Привязка к CRM может произойти автоматически при завершении через `POST /v1/calls/:callId/finish`, если Битрикс24 найдёт совпадение по номеру в момент завершения.
CALL_ID — обязательный параметр для всех следующих шагов. Сохраните его сразу: все операции show, hide, finish, transcription принимают callId в пути запроса.
#Смотрите также
- Завершить звонок
- Показать карточку
- Скрыть карточку
- Прикрепить транскрипцию
- Лиды — сущности, создаваемые при
crmCreate: true - Контакты — альтернативная привязка по номеру телефона
- Линии — источник значений для
lineNumber