К содержанию
ДокументацияВойти

Запрос и проверка кода

Запросить код

POST /v1/verify создаёт сессию и ставит код в очередь на отправку. Ответ 201. Обязательно только поле phone.

{
  "phone": "+77011234567",
  "purpose": "login",
  "signals": {
    "ip": "95.56.1.1",
    "device_id": "3f2c9a71",
    "device_platform": "ios",
    "device_model": "iPhone 16",
    "os_version": "26.1",
    "app_version": "2.4.0",
    "user_agent": "MyApp/2.4.0",
    "is_trusted_user": false
  },
  "options": {
    "locale": "ru",
    "code_size": 4,
    "preferred_channel": "telegram"
  },
  "metadata": { "correlation_id": "order-42" }
}
Поле Значения
phone Мобильный номер Казахстана: +77XXXXXXXXX, 77… или 87…. Пробелы, скобки и дефисы допускаются
purpose login (по умолчанию) или registration
signals.ip IPv4 или IPv6 пользователя
signals.device_id Идентификатор устройства, до 128 символов
signals.device_platform android, ios или web
signals.device_model До 64 символов
signals.os_version, signals.app_version До 32 символов
signals.user_agent До 300 символов
signals.is_trusted_user true снимает лимит сессий на номер и правила антифрода вашего аккаунта
options.locale Язык сообщения: ru (по умолчанию), kk или en
options.code_size Длина кода, от 4 до 8 цифр. Перекрывает настройку аккаунта
options.custom_code Ваш код из 4–8 цифр вместо случайного
options.preferred_channel Начать с канала telegram, whatsapp или sms. Подробнее — в разделе каналы
metadata.correlation_id Ваш идентификатор, до 80 символов. Попадает в выписку, CSV и вебхуки

Передавайте signals, если они у вас есть: антифрод считает лимиты по IP и устройству, а без них эти правила не работают. Длинные текстовые сигналы обрезаются, запрос из-за них не отклоняется.

Ответ:

{"id": "vrf_8c1f04a2b7d93e6f5a10", "status": "pending", "expires_at": "2026-11-08T10:05:00Z"}

Для тестового номера в ответе будет ещё "test": true. Канала в этом ответе нет: его VERYO выбирает позже.

Проверить код

POST /v1/verify/check принимает id сессии и code, который ввёл пользователь. Ответ 200.

{"id": "vrf_8c1f04a2b7d93e6f5a10", "code": "1234"}
{"id": "vrf_8c1f04a2b7d93e6f5a10", "status": "verified", "channel": "telegram"}
status Что значит Что делать
pending Код неверный, попытки остались Попросить ввести код ещё раз
verified Код подтверждён. Повторный вызов тоже вернёт verified Пропустить пользователя
failed Кончились попытки ввода или каналы доставки Запросить новый код
expired Срок кода истёк Запросить новый код

channel — канал, доставивший код: telegram, whatsapp или sms. Поля нет, пока код не доставлен, и у тестовых номеров.

Сессии другого аккаунта и несуществующие id дают 404 not_found.

Настройки кода

Значения по умолчанию меняются в кабинете, в разделе Код и SMS.

Настройка Диапазон По умолчанию
Длина кода 4–8 цифр 4
Срок действия 1–30 минут 5 минут
Попыток ввода 1–10 3
Сессий на номер 1–50 4
Окно лимита сессий 1–168 часов 72 часа
Отменять прежний код при новом запросе да или нет нет

Повторная отправка

Чтобы отправить код ещё раз, вызовите POST /v1/verify снова. Это новая сессия с новым id и новым кодом, поэтому:

  • при доставке она оплачивается отдельно;
  • она учитывается в лимите сессий на номер, при превышении вернётся 429 rate_limited;
  • прежний код продолжит действовать до конца срока, если не включена настройка отмены.