Документация REST API

REST API экстренных вызовов

Зарегистрируйте номер и адрес обслуживания, отслеживайте статус активации и поддерживайте актуальность записи при изменении местоположения.

Выбирайте API и учётные данные вместе

Одобренные аккаунты с профилями «Разработчики и автоматизация», «Бизнес» и «Операторы связи» могут интегрироваться с включёнными сервисами. Частному разработчику не нужно выдавать себя за компанию. Для SMS/MMS из приложений требуются соответствующее разрешение на отправку и регистрация. У сервиса «Для частных лиц и семей» нет доступного клиентам API для отправки сообщений.

Семейство APIБазовый URLАутентификация и результат
Communications v3https://api.multitel.net/v3Одобренные учётные данные Basic; выданные токены, если они допустимы, — только для операций, которые их поддерживают. В JSON — status и response.
Регистрация экстренных вызововhttps://api.multi.tel/emergencyОдобренные учётные данные Basic или специально выданный bearer-доступ. В JSON — code, message и data.
REST-интеграции порталаХост и операция указаны в справочнике разработчика вашего аккаунтаИспользуйте учётные данные, области доступа (scopes) и схему, описанные для этой операции. Запросы из браузерной сессии относятся к отдельному контуру.

Перед использованием примеров задайте MULTITEL_API_USERNAME и MULTITEL_API_PASSWORD через конфигурацию секретов вашего сервера. Никогда не встраивайте их в публичный браузерный JavaScript, URL или систему контроля версий. Отдельные учётные данные управляются в разделе настроек интеграции API.

Чтение зон покрытия без регистрации номера

curl --fail-with-body \
  --user "$MULTITEL_API_USERNAME:$MULTITEL_API_PASSWORD" \
  --header "Accept: application/json" \
  "https://api.multi.tel/emergency/coverage?environment=production"

Также поддерживается https://api.multitel.net/emergency. Ни один из базовых URL экстренных вызовов не содержит /v3. Покрытие перечисляет международные страны, поддерживаемые типы номеров и цены; соответствие требованиям североамериканского E911 проверяется при регистрации.

{
  "code": 200,
  "message": "",
  "environment": "production",
  "requestId": "EXAMPLE_REQUEST_ID",
  "data": {}
}

Здесь показан только конверт ответа. Схему data для каждой операции смотрите в опубликованном руководстве по Emergency API.

Регистрация, отслеживание статуса, затем настройка вызовов

  1. Для США/Канады и других поддерживаемых североамериканских регионов E911 укажите номер, адрес E911 и необходимые подтверждения согласия. Североамериканский E911 доступен только в рабочей (production) среде.
  2. Для поддерживаемого международного номера, которым вы владеете, укажите либо сохранённую ссылку на документ (Document), либо личные данные и адрес конечного пользователя. Сначала изучите требования для страны и типа номера.
  3. Отправьте один запрос POST /registrations. Необязательный Idempotency-Key идентифицирует логическое изменение; сохраняйте его и точно такую же полезную нагрузку при повторах.
  4. Читайте GET /registrations/:number. Проверяйте жизненный цикл, pending и actionRequired; устраняйте требуемые замечания. Принятие запроса или состояние ожидания не означает активную услугу.
  5. После активации настройте корректный идентификатор вызывающего абонента для экстренных вызовов и маршрут набора, специфичный для страны. Используйте процедуру проверки сервиса, не связанную с реальным экстренным вызовом.

Международные регистрации в песочнице изолированы и не активируют реальные экстренные вызовы. Для североамериканского E911 требуются учётные данные основного аккаунта; об ограниченной поддержке международных субаккаунтов рассказывается в руководстве.

Обработка ошибок и повторных запросов

Сбой аутентификации или прав доступа
Проверьте, включены ли учётные данные API, разрешён ли нужный сервис и не мешает ли ограничение по исходному IP-адресу. Cookie сессии портала не является учётными данными для интеграции.
Недостаточно средств или не выполнено требование об одобрении
Прежде чем повторять операцию, устраните проблему с балансом аккаунта, разрешением на отправку или требованием о документах.
Нет результата
Пустой список номеров или отсутствие имени вызывающего абонента считайте обычным исходом. Не предполагайте, что для синтаксически корректного номера доступны все услуги.
Тайм-аут сети или сбой сервиса
Для операций чтения используйте ограниченное число повторов с задержкой (backoff). Перед повтором покупки, отправки или регистрации сначала проверьте состояние операции: повторение принятого запроса может привести к дублированию платного действия.

Поддержка идемпотентности зависит от семейства API. Emergency API поддерживает ключи повтора, но это не делает идемпотентными произвольные запросы v3. Сохраняйте временные метки, возвращённые идентификаторы и ответы с удалёнными конфиденциальными данными для обращения в поддержку.

Продолжите со справочником вашей учётной записи

Справочник после входа в систему отображает только те операции, которые доступны с учётом ваших разрешений и подключённых услуг. Используйте указанные в нём точный хост, тип учётных данных, поля запроса и схему ответа. Консоли могут выполнять реальные операции, включая покупки и отправку сообщений.