Методы подтверждения и тарифы
Verificahub поддерживает несколько способов подтвердить номер. Все они вызываются через один эндпоинт POST /v1/verify — меняется только значение поля method.
Сравнение методов
| Метод | method | Как подтверждается | Цена за подтверждение |
|---|---|---|---|
| Обратный флеш-звонок | reverse_flash_call | Пользователь сам звонит на наш номер, подтверждаем по Caller ID — кода нет | 0,25 ₽ |
| Флеш-звонок | flash_call | Звонок-сброс на номер пользователя; код — последние цифры входящего номера | 0,80 ₽ |
| Telegram | telegram_otp | Код приходит в Telegram через официального бота | 1,20 ₽ |
| MAX — бот | max_bot | Код приходит в MAX после того, как пользователь поделится номером в боте | 0,30 ₽ |
| MAX — код | max_otp | Код уходит в MAX прямо на номер, без бота | 2,00 ₽ |
| СМС | sms | Классический код в СМС — работает на любом телефоне | 3,00 ₽ |
| МТС ID | mts_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.
С вводом кода
telegram_otp, sms, flash_call, max_bot (и в будущем voice). Пользователь получает или считывает код, вводит его, а вы подтверждаете через POST /v1/verify/check.
:::tip Какой метод выбрать Обратный flash-call — самый дешёвый и не требует ввода кода. SMS — самый дорогой, но работает на любом телефоне без мессенджеров и подходит как запасной канал. :::