API для приложений
Информация о счете пользователя
Уведомления о событиях

Сценарии приема платежей через Яндекс.Кассу

Существует два сценария приема платежей через Яндекс.Кассу в мобильных приложениях: с помощью платежных форм Яндекс.Кассы и с помощью API для приложений. Платежные формы проще интегрировать, они позволяют принимать платежи всеми способами, доступными по договору с Кассой. Но получать данные от Яндекс.Денег в этом случае можно только на сервере или по электронной почте. API позволяет принимать платежи только из кошелька пользователя и с произвольных банковских карт, но дает возможность обрабатывать информацию о платеже прямо в приложении.

Сценарии можно комбинировать.

Примечание. 
  • Яндекс.Касса — платежный сервис для юрлиц и ИП. Чтобы к ней подключиться, нужно подать заявку на подключение и заключить договор с Яндекс.Деньгами.
  • Параметры для приема платежей не зависят от сценария.

Прием платежей с помощью форм

Этот сценарий отличается простотой интеграции и большим количеством способов оплаты. Использование платежных форм Яндекс.Кассы в мобильном приложении состоит из нескольких шагов:

  1. Инициализация WebView с POST-параметрами в соответствии с платежной формой.
  2. Обработка HTTP-запросов по проверке заказа и уведомлении о переводе на стороне сервера (если подключение осуществляется по HTTP-схеме, способы подключения: HTTP-протокол или Модуль в CMS).
  3. Обработка перенаправления со страницы информации о платеже по кнопке «Перейти на сайт магазина» (при этом закрывается WebView).
Примечание. 

Вы можете включить автоматическое перенаправление пользователя со страниц успешного платежа и ошибки, через несколько секунд после оплаты. Узнать о том, как включить перенаправление, можно у менеджера Яндекс.Кассы.

Совет. Вы можете принимать платежи в мобильном приложении с помощью WebView, так же, как через платежную форму на сайте по протоколу приема платежей для магазинов. Логику передачи информации о платеже с серверного приложения до мобильного приложения вы можете реализовать самостоятельно, если это необходимо. Идентификатор успешной оплаты приходит в уведомлении о переводе.
Процесс платежа

Пользователь инициирует платеж (например, нажимает кнопку «Оплатить» в процессе заказа) и попадает на страницу с информацией о платеже.

Платеж с внешней (произвольной) банковской картыПлатеж со счета

После того, как пользователь нажал на кнопку «Оплатить», Яндекс.Деньги отправляют в магазин запрос на проверку заказа и присылают уведомление о переводе (если требуется). HTTP-запрос на проверку заказа проверяет корректность параметров платежа, уведомление о переводе сообщает магазину об успешной оплате. После оплаты пользователь попадает на страницу успеха или ошибки.

Платеж совершен успешноПлатеж завершился с ошибкой

Прием платежей с помощью API для приложений

Интеграция с помощью API для приложений позволяет контролировать процесс платежа в приложении, получать статус платежа с сервера Яндекс.Денег, сохранять данные пользователя для следующих платежей. С помощью этого сценария можно принимать платежи двумя способами: из кошелька в Яндекс.Деньгах и с произвольной банковской карты.

Процесс интеграции зависит от способа оплаты.

В любом случае сначала необходимо зарегистрировать приложение в кошельке Яндекс.Денег (кошелек можно создать специально для регистрации).

Платежи из кошелька в Яндекс.Деньгах

Для оплаты этим способом пользователь должен авторизоваться на сайте Яндекс.Денег. Он может заплатить из кошелька и с привязанных к нему банковских карт. Для проведения платежа приложению необходимо:

  1. Пройти авторизацию на сервере Яндекс.Денег и получить access_token.
  2. Инициализировать оплату с помощью метода request-payment.
  3. Провести платеж с помощью метода process-payment и обработать уведомления checkOrder и paymentAviso, если магазин подключен к Кассе по HTTP-схеме.

Платежи с банковских карт

Для оплаты этим способом пользователю не нужно регистрироваться на сайте Яндекс.Денег. Он может заплатить с произвольной банковской карты. Для проведения платежа приложению необходимо:

  1. Получить идентификатор экземпляра приложения.
  2. Инициализировать оплату с помощью метода request-external-payment.
  3. Провести платеж с помощью метода process-external-payment и обработать уведомления checkOrder и paymentAviso, если магазин подключен к Кассе по HTTP-схеме.

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

Примечание. 

Параметры оплаты в методах request-payment и request-external-payment в целом совпадают с параметрами в платежных формах. Исключение: вам не нужно передавать shopId и paymentType, а в pattern_id необходимо передавать scid. Остальные параметры передаются так же, как при интеграции с платежной формой.

Примечание. 

Если вы уже подключили Яндекс.Кассу, то вам не нужно связываться с вашим менеджером и оформлять дополнительные документы. Вы можете использовать для интеграции API для приложений в частном порядке, как это написано во введении.

SDK

Вы можете использовать программную реализацию API для приложений c помощью библиотек:

Во всех ветках есть ссылки на документацию.