Интеграция CNAM
Справочник CNAM REST API
Запрашивайте имя вызывающего абонента по HTTPS и обрабатывайте результат, списание и ошибки.

Выберите поведение поиска
| Уровень | Публичная цена за запрос | Что он делает |
|---|---|---|
| Starter | 0,0026 $ | Использует собственные и кэшированные сведения об именах вызывающих абонентов. |
| Standard | 0,0037 $ | Выполняет сетевой поиск в реальном времени для каждого запроса. |
| Mixed | 0,004 $ | Сначала пытается выполнить поиск в реальном времени, а если имя не найдено, переходит к данным уровня Starter. |
Поведение поиска определяется выбранной услугой; Mixed не является поиском с приоритетом кэша. Перед использованием в рабочей среде проверьте тариф, назначенный вашей учётной записи. Имя вызывающего абонента не является подтверждением личности или права владения.
Отправьте аутентифицированный запрос поиска
Конечная точка: GET https://api.multitel.net/v3/cnam/NUMBER. Используйте международный формат из одних цифр с кодом страны, без знаков препинания и без ведущего плюса. Выполняйте запрос с сервера вашего приложения, используя утверждённые учётные данные API.
curl --fail-with-body \
--user "$MULTITEL_API_USERNAME:$MULTITEL_API_PASSWORD" \
--header "Accept: application/json" \
"https://api.multitel.net/v3/cnam/12025550123"Передайте две переменные окружения через серверную конфигурацию секретов. Выданный bearer-токен можно использовать как альтернативу, только если такой доступ включён и соблюдены его ограничения по IP-адресу источника. Никогда не помещайте секрет API в публичный клиентский пакет браузера.
Прочитайте ответ JSON
Этот ответ приведён для иллюстрации. Возвращаемое имя и списанная сумма зависят от поиска и выбранной услуги.
{
"status": {
"code": 200,
"msg": ""
},
"response": {
"number": "12025550123",
"name": "EXAMPLE CALLER",
"cost": "0.004",
"balance": "24.9960"
}
}status.code- Код результата приложения; перед сравнением с 200 приведите строковые и числовые значения к единому виду.
status.msg- Сопутствующее сообщение об итоге или отказе.
response.number- Запрошенный номер.
response.name- Доступное имя вызывающего абонента.
response.cost- Сумма, указанная как списанная за этот запрос; рассматривайте её как десятичное число.
response.balance- Сообщаемый баланс учётной записи, если он присутствует.
Результаты без имени и ошибки
Успешный запрос не гарантирует полезного имени вызывающего абонента. Предусмотрите обработку пустого имени, номера, возвращённого вместо имени, и отклонённого поиска. Код приложения 403 может означать недостаток средств, запрещённую покупку или номер, для которого нет результата; изучите сообщение.
Проверяйте и HTTP-статус, и status в JSON, прежде чем обращаться к response.name. При ошибке объект ответа может отсутствовать. Отсутствие имени не должно мешать маршрутизации обычного вызова.
Тарификация, повторные запросы и отличие от обновления идентификатора вызывающего абонента
Новый поиск может повлечь плату за запрос. В документации этих интерфейсов поиска не описан ключ идемпотентности, поэтому новая попытка может стать вторым платным запросом. При сбоях транспорта или службы ограничивайте число повторов и делайте паузы между ними, сначала устраняйте ошибки учётной записи и сверяйте сообщаемые списания за запросы. Кэшируйте данные только на срок, подходящий для вашего приложения: данные об именах вызывающих абонентов могут меняться.
Поиск CNAM считывает имя. Он не меняет имя, отображаемое при ваших исходящих вызовах. Обновление имени вызывающего абонента в LIDB — отдельная операция со своими полями, авторизацией, ценой и обработкой.