АкцияБонус к пополнению: до +20% на баланс бесплатно при пополнении от $50.Создать аккаунт →
Приглашайте и зарабатывайтеПриглашайте друзей и получайте 5% от каждого их пополнения — сразу на ваш баланс.Зарегистрируйтесь, чтобы получить ссылку →

SMS API для верификации

Весь процесс укладывается в три вызова: заказать номер, опрашивать, пока не придёт код, и освободить номер, если код не пришёл. Bearer-токен, JSON на входе и выходе, и всё, что можно сделать в панели управления, доступно через тот же API.

От
$0.01за код
Сервисы
746

Оплата за каждую верификацию. Отмените заказ, на который ничего не пришло, — и деньги вернутся на баланс.

Процесс в виде вызовов

  1. GET /api/v2/tn101/get-services — каталог с идентификатором, по которому вы будете заказывать, и текущей ценой.
  2. POST /api/v2/tn101/request-number — заказать номер. Принимает service_key и необязательные state и коды регионов. Возвращает ID заказа, номер и время его истечения.
  3. GET /api/v2/tn101/get-number-details — опрашивайте с order_id. pin равен null, пока код не придёт, а затем содержит его. Это самый дешёвый запрос на чтение в API, рассчитанный на вызов в цикле.
  4. POST /api/v2/tn101/reject-number — освободить номер, на который ничего не пришло. Этот же вызов возвращает деньги.

В этом сценарии вам ничего не отправляется по инициативе сервера, поэтому шаг 3 — это опрос (polling). Если вы предпочитаете получать уведомления, а не спрашивать, аккаунт также отправляет вебхуки о событиях заказа — они настраиваются в панели управления.

Аутентификация

Каждый запрос передаёт Authorization: Bearer <token>. Токены создаются в панели управления в разделе доступа к API и могут быть перевыпущены там в любой момент — перевыпуск сразу делает старый токен недействительным, поэтому сначала замените его в своей конфигурации.

Запрос без действительного токена получает 401. Заблокированный аккаунт или аккаунт с отключённым доступом к API получает 403. Когда API отключён на всём сайте, каждый эндпоинт отвечает 503, а не делает вид, что работает.

Формат ответа

Каждый эндпоинт отвечает одними и теми же тремя полями:

data содержит полезные данные, success — булево значение для ветвления, а summery — сообщение для человека. Это написание — не опечатка на этой странице: так поле называлось в API всегда, оно есть в каждой написанной под него интеграции, и переименование сломало бы их все ради исправления одной буквы. Читайте summery.

Ошибки валидации возвращают 422, где data — объект, сопоставляющий имена полей с текстами ошибок, чтобы вызывающая сторона могла сообщить, какой именно аргумент неверен, а не просто что что-то пошло не так.

Тестирование сценариев верификации

API — практичный способ прогнать регистрацию или сброс пароля через реальный маршрут оператора, а не через заглушку: закажите номер, заполните им свою форму, опросите код и проверьте, что ваше приложение делает дальше. Такой тест медленнее, чем со стабом, но он ловит то, чего стаб поймать не может: нормализацию номера, фильтрацию по типу линии и задержки доставки, с которыми реально столкнутся ваши пользователи.

Ограничения

Лимита запросов в секунду у API нет, но есть две квоты на заказ номеров — те же, что действуют в панели управления:

  • Открытые заказы. Аккаунт может одновременно держать лишь ограниченное число забронированных номеров. Опрашивайте и освобождайте номера, а не открывайте множество заказов параллельно.
  • Отменённые и истёкшие заказы за день. При превышении дневной квоты заказ номеров приостанавливается на время, а при повторных превышениях пауза увеличивается. Каждая бронь расходует реальные номера, независимо от того, пришёл код или нет, — именно это квота и защищает.

Обе квоты подробнее описаны на странице временные номера, где объясняется, как проходит заказ.

Вопросы и ответы

Как получить токен?
Создайте аккаунт, а затем сгенерируйте токен в панели управления в разделе доступа к API. Там он показывается полностью и может быть перевыпущен в любой момент.
Вызовы API платные?
Запросы бесплатны, номера — нет. Плата за номер списывается, когда `request-number` его выдаёт, по той же цене за верификацию, что и при заказе в панели управления.
Есть ли песочница?
Отдельной песочницы нет. Среда одна, и заказанный номер — это настоящий номер с настоящим списанием, — что, собственно, и делает API ценным для тестирования.
Как правильно опрашивать код?
`get-number-details` — это один индексированный запрос без обращения к внешним системам, поэтому несколько секунд между опросами вполне разумно. Остановитесь, когда `pin` заполнится или когда срок заказа истечёт, и освобождайте все номера, на которые ничего не пришло.
Можно ли получать уведомления вместо опроса?
Да. Вебхуки настраиваются для каждого аккаунта в панели управления и срабатывают на события заказа, так что долгоживущей интеграции не нужно крутиться в цикле.

Похожие страницы

Готовы получить код?

Регистрация занимает минуту, а платите вы только за номера, на которые пришёл код.

Создать бесплатный аккаунт