MCN Telecom logo

На главную

Command Palette

Search for a command to run...

Метод Call-verify — Авторизация пользователя через звонок

0 просмотраСоздано 24.09.2026Обновлено 24.09.2026

Вместо отправки SMS-кода пользователь звонит на выданный ему номер. Сам факт звонка подтверждает, что пользователь действительно имеет доступ к указанному номеру телефона.

Как это работает

  1. Ваш сайт отправляет API два параметра:

    • номер телефона пользователя;
    • сколько времени ждать звонок (sessionTtlMs).
  2. API возвращает номер телефона для звонка.

    Этот номер нужно показать пользователю на сайте.

  3. Пользователь звонит на этот номер.

  4. Если звонок поступил в отведённое время:

    • авторизация считается успешной;
    • вам приходит веб-хук Авторизационный звонок (Call Verify) со статусом успеха.
  5. Если пользователь не позвонил до окончания времени сессии:

    • авторизация считается неуспешной;
    • вам приходит веб-хук со статусом неуспеха.
    • При этом неуспешная попытка тоже тарифицируется.

Схема:

Ваш сайт → передаёт номер пользователя → получает номер для звонка → показывает его пользователю → пользователь звонит → ваш веб-хук получает результат авторизации.

curl -X'POST' \'https://paidmethods.mcn.ru/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.mcn.ru/api/v2/protected/auth/call-verify

Запрос:

{
  "userPhoneNumber": "79312345678",
  "sessionTtlMs": 100
}

API отвечает:

{
  "sessionId": "b803e6e94146_139245",
  "phoneNumber": "74959876543",
  "expiresAt": "2026-09-24T07:35:55.665Z"
}

То есть пользователю нужно показать:

Позвоните на номер +7 495 987-65-43

После звонка ваш сервер получит результат через настроенный веб-хук «Авторизационный звонок (Call Verify)».

Важно: phoneNumber в ответе — это номер, на который звонит пользователь, а userPhoneNumber в запросе — номер самого пользователя.

Пример успешного запроса.

{
"linkedId": "119-1790236307.926540",
"accountId": 139245,
"occurredAt": "2026-09-24T07:51:47.584Z",
"poolPhoneNumber": "74959876543",
"idempotencyKey": "3780cdc9-014b-4be0-98cb-9cd57cc4f220",
"userPhoneNumber": "79312345678",
"isConfirmed": true,
"eventType": "callVerify",
"sessionId": "9a738796f749_139245",
"callerPhoneNumber": "79312345678"
}

Где:

  • isConfirmed: true — пользователь успешно подтвердил номер;
  • callerPhoneNumber — номер, с которого фактически поступил звонок;
  • userPhoneNumber — номер, который изначально передали на проверку;
  • poolPhoneNumber — номер, на который должен был позвонить пользователь;
  • sessionId — идентификатор конкретной сессии проверки.

Пример неуспешного запроса.

{
"linkedId": null,
"accountId": 139245,
"occurredAt": "2026-09-24T07:35:56.102Z",
"poolPhoneNumber": "74959876543",
"idempotencyKey": "7d29db08-48bd-4926-91ed-c02eae6a0d57",
"userPhoneNumber": "74959876543",
"isConfirmed": false,
"eventType": "callVerify",
"sessionId": "b803e6e94146_139245",
"callerPhoneNumber": null
}

Где:

  • isConfirmed: false — проверка не пройдена;
  • callerPhoneNumber: null — звонка от пользователя не было;
  • сессия завершилась по таймауту.

Была ли эта статья полезной