Быстрый старт
Партнерская программа позволяет вам взаимодействовать с API Яндекс.Кассы от имени пользователей Кассы.
Эта статья поможет вам принять первый платеж в пользу другого лица за 4 шага:
  1. Стать партнером Яндекс.Кассы.
  2. Зарегистрировать свое приложение на Яндекс.OAuth.
  3. Получить от магазина разрешение на проведение платежей.
  4. Провести платеж по API Яндекс.Кассы.
 Шаг 1. Получите статус партнера Яндекс.Кассы
Отправьте заявку на подключение к партнерской программе. С вами свяжется менеджер Яндекс.Кассы и пришлет дальнейшие инструкции.
Для регистрации понадобится логин на Яндексе.
 Шаг 2. Зарегистрируйте приложение на Яндекс.OAuth
Для взаимодействия с OAuth-сервером, зарегистрируйте приложение на Яндекс.OAuth:
  1. Войдите в свой аккаунт на Яндексе, который вы использовали для регистрации в партнерской программе.
  2. На странице Яндекс.OAuth нажмите на кнопку Зарегистрировать новое приложение.
    Регистрация приложения
  3. На открывшейся странице укажите название приложения (например, «Тестовое приложение»).
  4. В разделе Платформы выберите Веб-сервисы и укажите Callback URI. Если его пока нет, подставьте URL для разработки, который предлагает Яндекс.OAuth.
  5. В разделе Доступы найдите раздел с правами Яндекс.Кассы и выберите право Создание платежей.
    Набор прав для работы с Яндекс.Кассой отображается только тем, кто подключился к партнерской программе.
  6. Нажмите на кнопку Создать приложение.
На открывшейся странице отобразятся свойства вашего приложения. Сохраните идентификатор приложения (ID), пароль и Callback URL.
Свойства созданного приложения
 Шаг 3. Получите разрешение на проведение платежей
Вы будете проводить платежи в тестовый магазин в Яндекс.Кассе, и для него нужно получить OAuth-токен — разрешение на выполнение операций. Процесс OAuth-авторизации в Яндекс.Кассе основан на открытом протоколе OAuth 2.0.
 1. Получите тестовый магазин
Чтобы получить тестовый магазин, зарегистрируйтесь в Яндекс.Кассе:
  • войдите в аккаунт на Яндексе, который вы использовали для регистрации в партнерской программе;
  • при регистрации укажите ИНН вашей организации;
  • в настройках выберите способ интеграции API (для самописных сайтов).
Подписывать договор и проходить полный цикл регистрации не нужно.
 2. Сформируйте URL для перенаправления
Чтобы пользователь мог выдать разрешение магазину, необходимо перенаправить его на 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-сервера Яндекса.
Подробнее о параметрах URL для перенаправления
 3. Выдайте приложению доступ к тестовому магазину
Разрешите приложению создавать платежи в тестовый магазин:
  1. Войдите в аккаунт на Яндексе, для которого вы получили тестовый магазин Яндекс.Кассы.
  2. Пройдите по ссылке, которую вы сформировали на предыдущем шаге.
  3. Разрешите приложению создавать платежи.
    Выдача прав приложению
  4. Выберите магазин, для которого вы разрешаете создавать платежи и выдайте к нему доступ.
    Выбор магазина
В результате OAuth-сервер перенаправит вас на Callback URL, который вы указали при регистрации приложения. В ссылке будет передан код подтверждения и идентификатор пользователя, который выдал вам права (значение
state
, которое вы передали в запросе).
Пример URL, на который вас перенаправят в случае успеха
https://oauth.yandex.ru/verification_code?state=test-user&code=6404702
 4. Получите OAuth-токен
Чтобы обменять код подтверждения на 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"
}
 Шаг 4. Проведите платеж
 1. Проверьте настройки магазина
Перед использованием 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
}
 2. Подпишитесь на уведомления (опционально)
Вы можете подписаться на уведомления от Яндекс.Кассы. Для этого передайте в запросе  событие
payment.succeeded
(платеж перешел в статус
succeeded
) и URL для уведомлений.
URL для уведомлений должен начинаться с https.
Минимальная версия 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"
}
 3. Проведите тестовый платеж
Проведите первый платеж в тестовый магазин. Для этого используйте Быстрый старт для создания платежей. Вместо идентификатора магазина и секретного ключа передайте 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-ФЗ.
В тестовом магазине можно протестировать только два способа оплаты.
 Что почитать еще
OAuth-авторизацияВходящие уведомленияПроведение платежейОплата по 54-ФЗ