[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"docs-telephony\u002Fcrm\u002Fregister":3,"docs-tabs-telephony\u002Fcrm\u002Fregister":6},{"content":4,"lastmod":5},"\n## Зарегистрировать звонок\n\n`POST \u002Fv1\u002Fcalls\u002Fregister`\n\nРегистрирует входящий или исходящий звонок в Битрикс24 CRM. При `crmCreate: true` создаёт лид, если номер телефона не найден среди существующих сущностей. Возвращает `callId` для всех последующих операций со звонком.\n\n## Поля запроса (body)\n\n| Параметр | Тип | Обяз. | По умолч. | Описание |\n|----------|-----|:-----:|-----------|---------|\n| `userId` | number | да | — | ID пользователя Битрикс24, принимающего звонок. [Список пользователей](\u002Fdocs\u002Fentities\u002Fusers) |\n| `phoneNumber` | string | да | — | Номер телефона звонящего в международном формате |\n| `type` | number | нет | — | Направление: `1` — исходящий, `2` — входящий, `3` — входящий с перенаправлением, `4` — обратный звонок, `5` — информационный |\n| `lineNumber` | string | нет | — | Номер внешней линии приложения. [Список линий](\u002Fdocs\u002Ftelephony\u002Flines\u002Flist) |\n| `crmCreate` | boolean | нет | `false` | `true` — создать лид, если номер не найден в CRM |\n\n## Примеры\n\n### curl — личный ключ\n\n```bash\ncurl -X POST https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalls\u002Fregister \\\n  -H \"X-Api-Key: YOUR_API_KEY\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"userId\": 1,\n    \"phoneNumber\": \"+79161234567\",\n    \"type\": 2,\n    \"crmCreate\": true\n  }'\n```\n\n### curl — OAuth-приложение\n\n```bash\ncurl -X POST https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalls\u002Fregister \\\n  -H \"X-Api-Key: YOUR_APP_KEY\" \\\n  -H \"Authorization: Bearer USER_SESSION_TOKEN\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{\n    \"userId\": 1,\n    \"phoneNumber\": \"+79161234567\",\n    \"type\": 2,\n    \"crmCreate\": true\n  }'\n```\n\n### JavaScript — личный ключ\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalls\u002Fregister', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_API_KEY',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    userId: 1,\n    phoneNumber: '+79161234567',\n    type: 2,\n    crmCreate: true,\n  }),\n})\n\nconst { success, data } = await res.json()\nconst callId = data.callId\n```\n\n### JavaScript — OAuth-приложение\n\n```javascript\nconst res = await fetch('https:\u002F\u002Fvibecode.bitrix24.tech\u002Fv1\u002Fcalls\u002Fregister', {\n  method: 'POST',\n  headers: {\n    'X-Api-Key': 'YOUR_APP_KEY',\n    'Authorization': 'Bearer USER_SESSION_TOKEN',\n    'Content-Type': 'application\u002Fjson',\n  },\n  body: JSON.stringify({\n    userId: 1,\n    phoneNumber: '+79161234567',\n    type: 2,\n    crmCreate: true,\n  }),\n})\n\nconst { success, data } = await res.json()\n```\n\n## Поля ответа\n\n| Поле | Тип | Описание |\n|------|-----|---------|\n| `callId` | string | Идентификатор звонка для всех последующих операций |\n| `crmCreatedLead` | number \\| null | ID созданного лида. `null`, если лид не создан |\n| `crmCreatedEntities` | array | Массив созданных CRM-сущностей `[{entityType, entityId}]` |\n| `crmEntityType` | string | Тип привязанной CRM-сущности: `LEAD`, `CONTACT`, `COMPANY` или пустая строка |\n| `crmEntityId` | number \\| null | ID привязанной CRM-сущности. `null`, если сущность не привязана |\n\n## Пример ответа\n\nHTTP 201 — звонок зарегистрирован, создан новый лид:\n\n```json\n{\n  \"success\": true,\n  \"data\": {\n    \"callId\": \"externalCall.00b1e735843c558431be668e3687a58b.1777974304\",\n    \"crmCreatedLead\": 1001069,\n    \"crmCreatedEntities\": [{\"entityType\": \"LEAD\", \"entityId\": 1001069}],\n    \"crmEntityType\": \"LEAD\",\n    \"crmEntityId\": 1001069\n  }\n}\n```\n\n## Пример ответа при ошибке\n\n400 — не переданы обязательные параметры:\n\n```json\n{\n  \"success\": false,\n  \"error\": {\n    \"code\": \"MISSING_PARAMS\",\n    \"message\": \"Required: userId (number), phoneNumber (string)\"\n  }\n}\n```\n\n## Ошибки\n\n| HTTP | Код | Описание |\n|------|-----|---------|\n| 400 | `MISSING_PARAMS` | Не передан `userId` или `phoneNumber` |\n| 401 | `MISSING_API_KEY` | Не передан заголовок `X-Api-Key` |\n| 401 | `INVALID_API_KEY` | Неверный API-ключ |\n| 401 | `TOKEN_MISSING` | Ключ не имеет настроенных токенов Битрикс24 |\n| 401 | `KEY_INACTIVE` | API-ключ неактивен или отозван |\n| 403 | `SCOPE_DENIED` | Ключу не хватает скоупа `telephony` |\n| 422 | `BITRIX_ERROR` | Битрикс24 вернул ошибку (текст в `error.message`) |\n| 429 | `RATE_LIMITED` | Превышен лимит запросов |\n| 502 | `BITRIX_UNAVAILABLE` | Битрикс24 недоступен |\n\nПолный список общих ошибок API — [Ошибки](\u002Fdocs\u002Ferrors).\n\n## Известные особенности\n\n**Поиск существующей CRM-сущности при `crmCreate: true`.** Битрикс24 сначала ищет лид, контакт или компанию с совпадающим номером телефона. При нахождении `crmEntityId` указывает на существующую сущность, а `crmCreatedLead` остаётся `null`. Новый лид создаётся только если совпадений нет.\n\n**`CRM_*` поля пустые при `crmCreate: false`.** Привязка к CRM может произойти автоматически при завершении через [`POST \u002Fv1\u002Fcalls\u002F:callId\u002Ffinish`](.\u002Ffinish.md), если Битрикс24 найдёт совпадение по номеру в момент завершения.\n\n**`callId` — обязательный параметр для всех следующих шагов.** Сохраните его сразу: все операции `show`, `hide`, `finish`, `transcription` принимают `callId` в пути запроса.\n\n## Смотрите также\n\n- [Завершить звонок](.\u002Ffinish.md)\n- [Показать карточку](.\u002Fshow.md)\n- [Скрыть карточку](.\u002Fhide.md)\n- [Прикрепить транскрипцию](.\u002Ftranscription.md)\n- [Лиды](\u002Fdocs\u002Fentities\u002Fleads) — сущности, создаваемые при `crmCreate: true`\n- [Контакты](\u002Fdocs\u002Fentities\u002Fcontacts) — альтернативная привязка по номеру телефона\n- [Линии](\u002Fdocs\u002Ftelephony\u002Flines) — источник значений для `lineNumber`\n","2026-06-16",{}]