Вместо отправки SMS-кода пользователь звонит на выданный ему номер. Сам факт звонка подтверждает, что пользователь действительно имеет доступ к указанному номеру телефона.
Как это работает
Ваш сайт отправляет API два параметра:
- номер телефона пользователя;
- сколько времени ждать звонок (
sessionTtlMs).
API возвращает номер телефона для звонка.
Этот номер нужно показать пользователю на сайте.
Пользователь звонит на этот номер.
Если звонок поступил в отведённое время:
- авторизация считается успешной;
- вам приходит веб-хук
Авторизационный звонок (Call Verify)со статусом успеха.
Если пользователь не позвонил до окончания времени сессии:
- авторизация считается неуспешной;
- вам приходит веб-хук со статусом неуспеха.
- При этом неуспешная попытка тоже тарифицируется.
Схема:
Ваш сайт → передаёт номер пользователя → получает номер для звонка → показывает его пользователю → пользователь звонит → ваш веб-хук получает результат авторизации.
curl -X'POST' \'<https://paidmethods.kompaas.tech/api/v2/protected/auth/call-verify>' \
-H'accept: application/json' \
-H'Content-Type: application/json' \
-H'Sec-Fetch-Mode: cors' \
-d'{ "userPhoneNumber": "string", "sessionTtlMs": 1}'
URL метода : https://paidmethods.kompaas.tech/api/v2/protected/auth/call-verify
Запрос:
{
"userPhoneNumber": "3612345678",
"sessionTtlMs": 100
}
API отвечает:
{
"sessionId": "b803e6e94146_139245",
"phoneNumber": "3687654321",
"expiresAt": "2026-09-24T07:35:55.665Z"
}
То есть пользователю нужно показать:
Позвоните на номер +36 8 765 4321
После звонка ваш сервер получит результат через настроенный веб-хук 'Авторизационный звонок (Call Verify)'.
Важно: phoneNumber в ответе — это номер, на который звонит пользователь, а userPhoneNumber в запросе — номер самого пользователя.
Пример успешного запроса.
{
"linkedId": "119-1790236307.926540",
"accountId": 139245,
"occurredAt": "2026-09-24T07:51:47.584Z",
"poolPhoneNumber": "3687654321",
"idempotencyKey": "3780cdc9-014b-4be0-98cb-9cd57cc4f220",
"userPhoneNumber": "3612345678",
"isConfirmed": true,
"eventType": "callVerify",
"sessionId": "9a738796f749_139245",
"callerPhoneNumber": "3612345678"
}
Где:
isConfirmed: true— пользователь успешно подтвердил номер;callerPhoneNumber— номер, с которого фактически поступил звонок;userPhoneNumber— номер, который изначально передали на проверку;poolPhoneNumber— номер, на который должен был позвонить пользователь;sessionId— идентификатор конкретной сессии проверки.
Пример неуспешного запроса.
{
"linkedId": null,
"accountId": 139245,
"occurredAt": "2026-09-24T07:35:56.102Z",
"poolPhoneNumber": "3687654321",
"idempotencyKey": "7d29db08-48bd-4926-91ed-c02eae6a0d57",
"userPhoneNumber": "3687654321",
"isConfirmed": false,
"eventType": "callVerify",
"sessionId": "b803e6e94146_139245",
"callerPhoneNumber": null
}
Где:
isConfirmed: false— проверка не пройдена;callerPhoneNumber: null— звонка от пользователя не было;- сессия завершилась по таймауту.

Статья помогла?
Отлично!
Спасибо за ваш отзыв
Извините, что не удалось помочь!
Спасибо за ваш отзыв
Комментарий отправлен
Мы ценим вашу помощь и постараемся исправить статью