Самостоятельная интеграция
Самый гибкий способ интеграции с ЮKassa: вы самостоятельно выбираете, какие способы оплаты отобразить пользователю, как их отсортировать, как пользователю подтвердить платеж.
Подготовка
При самостоятельной интеграции вы максимально контролируете взаимодействие с пользователем: ЮKassa берёт на себя только взаимодействие с платежными системами и сервисами. Вам необходимо самостоятельно реализовать следующие шаги процесса оплаты:
Проведение платежа
В этом разделе описана общая инструкция проведения платежа при самостоятельной интеграции. Ссылки на подробные инструкции по интеграции каждого способа оплаты приведены в разделе Способы оплаты и варианты интеграции.
Шаг 1. Когда пользователь перейдет к оплате, отобразите ему вашу платежную форму. Дождитесь, когда пользователь выберет в вашем интерфейсе способ оплаты, при необходимости введет свои платежные данные (например, логин в интернет-банке) и подтвердит готовность продолжить оплатить (например, нажмет кнопку Заплатить).
Шаг 2. Создайте платеж , передайте в запросе объект
payment_method_data
с выбранным способом оплаты и платежными данными и при необходимости объект
confirmation
с информацией о сценарии подтверждения. В запросе можно передать дополнительные параметры, кроме
payment_token
,
payment_method_id
.
Пример запроса при оплате банковской картой
cURL
PHP
Python
curl https://api.yookassa.ru/v3/payments \
  -X POST \
  -u <Идентификатор магазина>:<Секретный ключ> \
  -H 'Idempotence-Key: <Ключ идемпотентности>' \
  -H 'Content-Type: application/json' \
  -d '{
        "amount": {
          "value": "2.00",
          "currency": "RUB"
        },
        "payment_method_data": {
          "type": "bank_card"
        },
        "confirmation": {
          "type": "redirect",
          "return_url": "https://www.example.com/return_url"
        },
        "description": "Заказ №72"
      }'
Шаг 3. Реализуйте нужный сценарий подтверждения, например перенаправьте пользователя на 
confirmation_url
, который придет в объекте платежа .
Пример созданного объекта платежа
JSON
{
  "id": "22c5d173-000f-5000-9000-1bdf241d4651",
  "status": "pending",
  "paid": false,
  "amount": {
    "value": "2.00",
    "currency": "RUB"
  },
  "confirmation": {
    "type": "redirect",
    "return_url": "https://www.example.com/return_url",
    "confirmation_url": "https://yoomoney.ru/payments/external/confirmation?orderId=22c5d173-000f-5000-9000-1bdf241d4651"
  },
  "created_at": "2018-06-27T16:39:15.865Z",
  "description": "Заказ №72",
  "metadata": {},
  "payment_method": {
    "type": "bank_card",
    "id": "22c5d173-000f-5000-9000-1bdf241d4651",
    "saved": false
  },
  "recipient": {
    "account_id": "100500",
    "gateway_id": "100700"
  },
  "refundable": false,
  "test": false
}
Шаг 4. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о платеже .
Шаг 5. Сообщите пользователю результат оплаты.
Шаг 6. Если вы проводите платеж в две стадии, подтвердите списание оплаты или отмените платеж. И сообщите пользователю финальный результат платежа.
Готово!
Способы оплаты и варианты интеграции
Выберите подходящие вам варианты интеграции способа оплаты в зависимости от сценария подтверждения платежа пользователем и необходимости собирать платежные данные на вашей стороне. Если указано, что сбор платежных данных не нужен, то в 
payment_method_data
необходимо передать только код способа оплаты.
Способ оплатыВариант интеграцииСценарий подтвержденияСбор платежных данных
Банковская карта
bank_card
Оплата банковской картой на готовой странице ЮKassaRedirect
Оплата с вводом данных на вашей стороне (PCI DSS)Redirect✔️
ЮMoney
yoo_money
Оплата с подтверждением на сайте ЮMoneyRedirect
SberPay
sberbank
Оплата с перенаправлением на страницу ЮKassaRedirect
Оплата с подтверждением через пуш-уведомление или смсExternal✔️
Оплата с перенаправлением в приложение банка (для мобильных устройств)Mobile application
Оплата с перенаправлением в приложение банка (для десктопа)QR-код
Альфа-Клик
alfabank
Оплата на сайте Альфа-КликRedirect✔️ (опционально)
Оплата без перенаправления в Альфа-КликExternal✔️
Тинькофф
tinkoff_bank
Оплата с подтверждением на сайте ТинькоффRedirect
QIWI Кошелек
qiwi
Оплата на странице QIWI КошелькаRedirect✔️ (опционально)
СберБанк Бизнес Онлайн
b2b_sberbank
Оплата в сервисе СберБанк Бизнес ОнлайнRedirect
СБП (Система быстрых платежей)
sbp
Оплата через СБП на готовой странице ЮKassaRedirect
Оплата с самостоятельным перенаправлением в приложение участника СБПQR-код
Баланс телефона
mobile_balance
Оплата с баланса мобильного телефонаExternal✔️
Наличные
cash
Оплата по коду подтвержденияRedirect✔️ (опционально)
Заплатить по частям
installments
Оплата с помощью сервиса «Заплатить по частям»Redirect✔️
Что почитать еще
Сценарии интеграцииОтправка чеков в налоговуюНеуспешные платежиВходящие уведомления