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

Вход

Каждый пользователь сам выбирает способ входа: пароль или SMS-код. Поэтому вход начинается с вопроса к API, каким способом входит владелец номера, и только потом клиент показывает поле пароля или поле кода.

  1. POST /v1/auth/login/start с номером телефона. В ответе method: password или sms.

  2. Для password — POST /v1/auth/login с телефоном и паролем.

    Для sms — код уже отправлен. POST /v1/auth/login/sms с challengeId и кодом.

  3. В обоих случаях ответ — пара токенов, см. Аутентификация.

POST/v1/auth/login/start
Окно терминала
curl -X POST https://api.rekassa.uz/v1/auth/login/start \
-H 'Content-Type: application/json' \
-H 'Accept-Language: uz' \
-d '{"phone": "90 123 45 67"}'

Если пользователь входит по паролю:

{ "method": "password" }

Если по SMS — код отправлен сразу, и ответ содержит его параметры:

{
"method": "sms",
"challengeId": "c3a9e1d7-4b2f-4f8a-b6c0-1e5d7a9f2b48",
"expiresIn": 300,
"resendIn": 60
}
Статус Код Когда
400 validation_failed неверный формат телефона
429 code_resend_too_soon предыдущий код отправлен меньше 60 секунд назад
429 too_many_requests 5 кодов за час на номер или 10 запросов в минуту с IP
429 code_attempts_exceeded недавно код на этот номер ввели неверно 5 раз
POST/v1/auth/login
Поле Тип Описание
phone string номер телефона, см. Телефоны
password string пароль, 1–128 символов
Окно терминала
curl -X POST https://api.rekassa.uz/v1/auth/login \
-H 'Content-Type: application/json' \
-d '{"phone": "+998901234567", "password": "correct-horse-42"}'
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"accessTokenExpiresIn": 900,
"refreshToken": "3f1c2d9e-6b7a-4c55-9a51-0d8e7f6a1b2c.kq3Vb8...",
"refreshTokenExpiresAt": "2026-10-24T09:15:00.000Z"
}

Браузерный клиент с X-Client: web получает только accessToken и accessTokenExpiresIn, refresh-токен — в куке rk_refresh.

Статус Код Когда
400 validation_failed неверный формат телефона или пустой пароль
401 invalid_credentials неверный номер или пароль; также если номер не подтверждён или пользователь входит по SMS
403 user_blocked пароль верный, но учётная запись заблокирована
429 too_many_requests больше 10 попыток в минуту с одного IP
POST/v1/auth/login/sms
Поле Тип Описание
challengeId string (UUID) из ответа /v1/auth/login/start
code string ровно 6 цифр из SMS
Окно терминала
curl -X POST https://api.rekassa.uz/v1/auth/login/sms \
-H 'Content-Type: application/json' \
-d '{"challengeId": "c3a9e1d7-4b2f-4f8a-b6c0-1e5d7a9f2b48", "code": "730165"}'

Ответ — такой же, как у входа по паролю. Если код не пришёл, запросите новый через POST /v1/auth/resend-code — в ответе будет новый challengeId.

Статус Код Когда
400 validation_failed challengeId не UUID или код не из 6 цифр
401 invalid_code код неверный, истёк или уже использован
403 user_blocked учётную запись заблокировали после отправки кода
429 code_attempts_exceeded код введён неверно 5 раз

Пользователь переключает способ входа в профиле: PATCH /v1/me с полем authMethod. Перейти на пароль можно, только если пароль уже задан. См. Профиль и сессии.