Перейти к основному содержимому

Методы подтверждения и тарифы

Verificahub поддерживает несколько способов подтвердить номер. Все они вызываются через один эндпоинт POST /v1/verify — меняется только значение поля method.

Сравнение методов​

МетодmethodКак подтверждаетсяЦена за подтверждение
Обратный флеш-звонокreverse_flash_callПользователь сам звонит на наш номер, подтверждаем по Caller ID — кода нет0,25 ₽
Флеш-звонокflash_callЗвонок-сброс на номер пользователя; код — последние цифры входящего номера0,80 ₽
Telegramtelegram_otpКод приходит в Telegram через официального бота1,20 ₽
MAX — ботmax_botКод приходит в MAX после того, как пользователь поделится номером в боте0,30 ₽
MAX — кодmax_otpКод уходит в MAX прямо на номер, без бота2,00 ₽
СМСsmsКлассический код в СМС — работает на любом телефоне3,00 ₽
МТС IDmts_idОператор МТС подтверждает на SIM (без ввода кода); при недоступности — код по СМС2,00 ₽
Голосовой кодpass_callРобот звонит и диктует код голосом2,40 ₽

Цены указаны ориентировочно; актуальные тарифы — на verificahub.ru.

:::info Что увидит пользователь при голосовом подтверждении

Звонок pass_call приходит с маркировкой «ИП Iskuzhin IT» — это требование закона к звонкам от юридических лиц, и подставить вместо неё название вашего сервиса нельзя.

Учтите это в сценарии: пользователь, который только что нажал кнопку в вашем приложении, увидит звонок от незнакомого ему имени. Если на экране ожидания прямо написать, что сейчас позвонит робот и назовёт код, до трубки доходит заметно больше людей.

Остальные методы маркировки не показывают: при обратном flash-call пользователь звонит сам, а sms, telegram_otp и max_bot приходят сообщением.

:::

:::caution Тарификация голосового подтверждения

pass_call тарифицируется в момент запроса, а не по факту ответа: оператор берёт плату за постановку вызова независимо от того, снял ли абонент трубку. Недозвон вернёт статус failed, списание при этом уже произошло.

Это отличается от обратного flash-call, где вы платите только за успешное подтверждение. Если доставка для вас критична, держите pass_call резервной ступенью каскада, а не основным методом.

:::

Доступность метода для вашего аккаунта​

Состав методов, доступных аккаунту, может отличаться от таблицы выше: метод подключается и отключается на стороне аккаунта. Так, max_bot работает только там, где он подключён, а его цену видно в личном кабинете и в GET /v1/prices.

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

Как это видно в API:

  • GET /v1/prices возвращает все тарифицируемые методы, у каждого — поле available. Тариф не исчезает из списка: available: false означает, что метод сейчас недоступен именно вашему аккаунту, а не снят с продажи;
  • POST /v1/verify с недоступным методом отвечает 403, error_code: method_not_available, и перечисляет в detail методы, которые вам доступны.

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

Поэтому не фиксируйте список методов в коде: читайте GET /v1/prices и обрабатывайте method_not_available как штатный ответ, а не как сбой.

Два сценария интеграции​

Методы делятся на два типа по тому, как происходит подтверждение.

Автоматический — без ввода кода​

Только reverse_flash_call. Вы показываете пользователю номер (number_to_call), он звонит, а вы опрашиваете статус сессии до verified.

→ Обратный flash-call

С вводом кода​

telegram_otp, sms, flash_call, max_bot (и в будущем voice). Пользователь получает или считывает код, вводит его, а вы подтверждаете через POST /v1/verify/check.

→ Подтверждение по коду

:::tip Какой метод выбрать Обратный flash-call — самый дешёвый и не требует ввода кода. SMS — самый дорогой, но работает на любом телефоне без мессенджеров и подходит как запасной канал. :::