Запрос авторизации
Приложение отправляет запрос Authorization Request на сервер ЮMoney, используя браузер операционной системы.

Для отправки запроса рекомендуется использовать метод POST — эквивалент HTML form submit и кодировку UTF‑8.

Запрос
Формат запроса
POST /oauth/authorize HTTP/1.1
Host: yoomoney.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: <content-length>

client_id=<client_id>&response_type=code
&redirect_uri=<redirect_uri>&scope=<scope>&instance_name=<instance_name>
Параметры запроса
ПараметрТипОписание
client_idstringИдентификатор приложения, полученный при регистрации.
response_typestringФиксированное значение: code.
redirect_uri
string
URI, на который сервер OAuth передает результат авторизации.
Значение этого параметра при посимвольном сравнении должно быть идентично значению redirect_uri, указанному при регистрации приложения. При сравнении не учитываются индивидуальные параметры приложения, которые могут быть добавлены в конец строки URI.
scopestringСписок запрашиваемых прав. Разделитель элементов списка — пробел. Элементы списка чувствительны к регистру.
instance_namestringИдентификатор экземпляра авторизации в приложении. Необязательный параметр. Позволяет получить несколько авторизаций для одного приложения.
Пример параметров запроса
client_id=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01
response_type=code
redirect_uri=https://client.example.com/cb
scope=account-info operation-history
Пример запроса
POST /oauth/authorize HTTP/1.1
Host: yoomoney.ru
Content-Type: application/x-www-form-urlencoded
Content-Length: 191

client_id=ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01&response_type=code&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb&scope=account%2Dinfo%20operation%2Dhistory

Запрещается отправлять запрос (открывать страницу) непосредственно из приложения, поскольку по правилам платежного сервиса логин, пароль и платежный пароль пользователя допускается вводить только на страницах сервиса ЮMoney.

По запросу авторизации пользователь перенаправляется на страницы авторизации ЮMoney. Пользователь вводит свой логин и пароль, просматривает список запрашиваемых прав и лимиты на платежи, подтверждает либо отклоняет запрос авторизации приложения.
Ответ
Результат авторизации возвращается как HTTP 302 Redirect. Приложение должно обработать ответ HTTP Redirect.

Одно приложение может получить только одну авторизацию для одного пользователя. Повторная авторизация (с тем же значением параметра client_id) аннулирует выданные ранее разрешения.

Существует возможность получить несколько авторизаций для одного пользователя: для этого необходимо указать параметр instance_name. Повторная авторизация в этом случае учитывает оба параметра — client_id и instance_name.
В качестве instance_name рекомендуется использовать уникальный идентификатор пользователя в приложении, например его логин.
Параметры перенаправления с результатом авторизации
ПараметрТипОписание
codestringВременный токен (authorization code), подлежащий обмену на постоянный токен авторизации. Присутствует если пользователь подтвердил авторизацию приложения.
errorstringКод ошибки. Присутствует в случае ошибки или отказа в авторизации пользователем.
error_descriptionstringДополнительное текстовое пояснение ошибки.
Возможные ошибки (значение поля error)
Код ошибкиОписаниеПоведение сервиса
invalid_requestВ запросе отсутствуют обязательные параметры, либо параметры имеют некорректные или недопустимые значения.Страница с текстом ошибки.
invalid_scopeПараметр scope отсутствует, либо имеет некорректное значение или имеет логические противоречия.Страница с текстом ошибки.
unauthorized_clientНеверное значение параметра client_id, либо приложение не имеет право запрашивать авторизацию (например ЮMoney заблокировали его client_id).Страница с текстом ошибки.
access_deniedПользователь отклонил запрос авторизации приложения.Перенаправление в приложение с кодом ошибки.
Пример ответа ЮMoney при успешной авторизации
HTTP/1.1 302 Found
Location: https://client.example.com/cb?code=i1WsRn1uB1ehfbb37
Ответ ЮMoney при отказе в авторизации
HTTP/1.1 302 Found
Location: https://client.example.com/cb?error=access_denied
Временный токен (значение поля code ответа) подлежит немедленному обмену на токен авторизации. Время действия этого токена — меньше 1 минуты.
Приложение должно получить и обработать ответ сервера ЮMoney и немедленно самостоятельно обменять временный токен на токен авторизации.
Если приложению не удалось получить ответ сервера, временный токен утерян, либо срок его действия истек, необходимо повторить процедуру авторизации.
Что почитать еще
Получение токена Отзыв токена Авторизация приложения Регистрация приложения