Партнерская программа позволяет вам взаимодействовать с API Яндекс.Кассы от имени пользователей Кассы.
Эта статья поможет вам принять первый платеж в пользу другого лица за 4 шага:
- Стать партнером Яндекс.Кассы.
- Зарегистрировать свое приложение на Яндекс.OAuth.
- Получить от магазина разрешение на проведение платежей.
- Провести платеж по API Яндекс.Кассы.
Отправьте заявку на подключение к партнерской программе. С вами свяжется менеджер Яндекс.Кассы и пришлет дальнейшие инструкции.
Для регистрации понадобится логин на Яндексе.
Для взаимодействия с OAuth-сервером, зарегистрируйте приложение на Яндекс.OAuth:
- Войдите в свой аккаунт на Яндексе, который вы использовали для регистрации в партнерской программе.
- На странице Яндекс.OAuth нажмите на кнопку Зарегистрировать новое приложение. Регистрация приложения
- На открывшейся странице укажите название приложения (например, «Тестовое приложение»).
- В разделе Платформы выберите Веб-сервисы и укажите Callback URI. Если его пока нет, подставьте URL для разработки, который предлагает Яндекс.OAuth.
- В разделе Доступы найдите раздел с правами Яндекс.Кассы и выберите право Создание платежей. Набор прав для работы с Яндекс.Кассой отображается только тем, кто подключился к партнерской программе.
- Нажмите на кнопку Создать приложение.
На открывшейся странице отобразятся свойства вашего приложения. Сохраните идентификатор приложения (ID), пароль и Callback URL.

Свойства созданного приложения
Вы будете проводить платежи в тестовый магазин в Яндекс.Кассе, и для него нужно получить OAuth-токен — разрешение на выполнение операций. Процесс OAuth-авторизации в Яндекс.Кассе основан на открытом протоколе OAuth 2.0.
Чтобы получить тестовый магазин, зарегистрируйтесь в Яндекс.Кассе:
- войдите в аккаунт на Яндексе, который вы использовали для регистрации в партнерской программе;
- при регистрации укажите ИНН вашей организации;
- в настройках выберите способ интеграции API (для самописных сайтов).
Подписывать договор и проходить полный цикл регистрации не нужно.
Чтобы пользователь мог выдать разрешение магазину, необходимо перенаправить его на OAuth-сервер:
https://oauth.yandex.ru/authorize
Пример адреса для перенаправления пользователя
https://oauth.yandex.ru/authorize?response_type=code&client_id=<Идентификатор приложения>&device_id=123456&state=test-user
В URL перенаправления укажите тип подтверждения
code
и передайте идентификатор вашего приложения (client_id
), уникальный идентификатор магазина, для которого вы запрашиваете доступ (device_id
) и идентификатор пользователя или сессии, в рамках которой выдаются права (state
).Обратите внимание:
- Идентификатор магазина (device_id) позволяет создавать токены, если у пользователя подключено к Яндекс.Кассе несколько магазинов. Подойдет любое уникальное значение длиной от 6 до 50 символов, содержащее только печатаемые ASCII-символы (с кодами от 32 до 126).
- Идентификатор пользователя или сессии (state) возвращается в ответе от OAuth-сервера Яндекса.
Разрешите приложению создавать платежи в тестовый магазин:
- Войдите в аккаунт на Яндексе, для которого вы получили тестовый магазин Яндекс.Кассы.
- Пройдите по ссылке, которую вы сформировали на предыдущем шаге.
- Разрешите приложению создавать платежи. Выдача прав приложению
- Выберите магазин, для которого вы разрешаете создавать платежи и выдайте к нему доступ. Выбор магазина
В результате OAuth-сервер перенаправит вас на Callback URL, который вы указали при регистрации приложения. В ссылке будет передан код подтверждения и идентификатор пользователя, который выдал вам права (значение
state
, которое вы передали в запросе).Пример URL, на который вас перенаправят в случае успеха
https://oauth.yandex.ru/verification_code?state=test-user&code=6404702
Чтобы обменять код подтверждения на OAuth-токен, отправьте POST-запрос на OAuth-сервер Яндекса и передайте в нем код подтверждения (параметр
code
), свой идентификатор и пароль, которые вы получили после регистрации на Яндекс.OAuth.Адрес для отправки запроса:
https://oauth.yandex.ru/token
Код действует 10 минут. За это время его нужно обменять на OAuth-токен, иначе код придется запрашивать заново.
Пример запроса
cURL
curl https://oauth.yandex.ru/token \ -u <Идентификатор приложения>:<Пароль приложения> \ -d grant_type=authorization_code \ -d code=<Код подтверждения>
В ответ OAuth-сервер Яндекса вернет OAuth-токен в поле
access_token
. Сохраните его для дальнейшей работы с API Яндекс.Кассы.Пример тела ответа с OAuth-токеном
JSON
{ "token_type": "bearer", "access_token": "AQAAAACy1C6ZAAAAfa6vDLuItEy8pg-iIpnDxIs", "expires_in": 124234123534, "refresh_token": "1:GN686QVt0mmakDd9:A4pYuW9LGk0_UnlrMIWklkAuJkUWbq27loFekJVmSYrdfzdePBy7:A-2dHOmBxiXgajnD-kYOwQ" }
Перед использованием API Яндекс.Кассы узнайте настройки магазина, для которого вы получили OAuth-токен.
Настройки влияют на то, какие возможности Яндекс.Кассы вам доступны. Например, если магазин тестовый, то можно проводить только тестовые платежи.
Чтобы узнать настройки, отправьте запрос на получение информации о магазине и передайте в нем полученный OAuth-токен.
Пример запроса
cURL
PHP
Python
curl https://payment.yandex.net/api/v3/me \ -H 'Authorization: Bearer <oauth_token>'
В ответ вернутся настройки магазина .
Пример тела ответа
JSON
{ "account_id": "123", "test": true, "fiscalization_enabled": false }
Вы можете подписаться на уведомления от Яндекс.Кассы. Для этого передайте в запросе событие
payment.succeeded
(платеж перешел в статус succeeded
) и URL для уведомлений.URL для уведомлений должен начинаться с https.
Минимальная версия SSL/TLS — TLS v1.2
Минимальная версия SSL/TLS — TLS v1.2
Пример запроса на создание объекта webhook
cURL
PHP
Python
curl https://payment.yandex.net/api/v3/webhooks \ -X POST \ -H 'Authorization: Bearer <oauth_token>' \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "event": "payment.succeeded", "url": "https://www.merchant-website.com/notification_url" }'
Пример тела ответа
JSON
{ "id": "wh-e44e8088-bd73-43b1-959a-954f3a7d0c54", "event": "payment.succeeded", "url": "https://www.merchant-website.com/notification_url" }
Проведите первый платеж в тестовый магазин. Для этого используйте Быстрый старт для создания платежей. Вместо идентификатора магазина и секретного ключа передайте OAuth-токен.
Пример запроса на создание платежа
cURL
PHP
Python
curl https://payment.yandex.net/api/v3/payments \ -X POST \ -H 'Authorization: Bearer <oauth_token>' \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "100.00", "currency": "RUB" }, "capture": true, "confirmation": { "type": "redirect", "return_url": "https://www.merchant-website.com/return_url" }, "description": "Заказ №1" }'
Если вы подписались на уведомления, то когда ваш платеж перейдет в статус
succeeded
, Яндекс.Касса сообщит вам об этом.Готово!
Вы провели через Яндекс.Кассу свой первый платеж от лица магазина. Теперь вы можете расширить набор прав для своего приложения, реализовать другой сценарий проведения платежа или поддержать оплату по 54-ФЗ.
В тестовом магазине можно протестировать только два способа оплаты.