- Тип способа оплаты в API: sberbank
- Сценарий подтверждения: Redirect, External, Mobile application и QR-код
- Срок оплаты: 1 час
- Холдирование: 7 дней
- Код в реестре: SB
- Возврат: да, частичный и полный
- Срок возврата: моментально
- Автоплатежи: да
- Лимиты: минимальный размер платежа — 1 рубль, максимальный — 1 млн рублей
Готовые решения:
- Умный платеж
- Виджет ЮKassa
- Мобильные SDK для iOS и Android
Самостоятельная интеграция:
- Оплата с перенаправлением на страницу ЮKassa
- Оплата с подтверждением через пуш-уведомление или смс
- Оплата с перенаправлением в приложение банка (для мобильных устройств)
- Оплата с перенаправлением в приложение банка (для десктопа)
В этом сценарии после создания платежа вы перенаправляете пользователя на страницу ЮKassa. На этой странице пользователь сканирует QR-код для перехода в мобильное приложение банка или вводит номер телефона, привязанный к СберБанку Онлайн, для получения пуша или смс.
Шаг 1. Создайте платеж , в объекте
payment_method_data
передайте тип sberbank
, а в объекте confirmation
передайте тип redirect
и адрес страницы на вашей стороне, на которую пользователь вернется после оплаты (в параметре return_url
).Пример запроса
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": "sberbank" }, "confirmation": { "type": "redirect", "return_url": "https://www.example.com/return_url" }, "description": "Заказ №72" }'
Шаг 2. Перенаправьте пользователя на страницу ЮKassa (ссылка на нее придет в параметре
confirmation_url
). На этой странице пользователь введет данные карты и подтвердит платеж.Пример созданного объекта платежа
{ "id":"22e12f66-000f-5000-8000-18db351245c7", "status":"pending", "paid":false, "amount":{ "value":"2.00", "currency":"RUB" }, "confirmation":{ "type":"redirect", "confirmation_url":"https://yoomoney.ru/api-pages/v2/payment-confirm/epl?orderId=23d93cac-000f-5000-8000-126628f15141" }, "created_at":"2018-07-18T10:51:18.139Z", "description":"Заказ №72", "metadata":{ "order_id":"72" }, "recipient":{ "account_id":"100500", "gateway_id":"100700" }, "refundable":false, "test":false }
Если оплата через SberPay не прошла (например, не хватило денег), ЮKassa отобразит пользователю сообщение об ошибке и предложит попробовать оплатить еще раз.
Шаг 3. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о платеже .
Пример успешного платежа
{ "id":"22e12f66-000f-5000-8000-18db351245c7", "status":"succeeded", "paid":true, "amount":{ "value":"2.00", "currency":"RUB" }, "captured_at":"2021-04-12T13:59:33.681Z", "created_at":"2021-04-12T13:49:33.026Z", "income_amount":{ "value":"2.00", "currency":"RUB" }, "payment_method":{ "type":"sberbank", "id":"22e12f66-000f-5000-8000-18db351245c7", "saved":false, "card":{ "first6":"555555", "last4":"4444", "expiry_year":"2022", "expiry_month":"07", "card_type":"MasterCard" } }, "recipient":{ "account_id":"100500", "gateway_id":"100700" }, "refundable":true, "refunded_amount":{ "value":"0.00", "currency":"RUB" }, "test":false, "authorization_details":{ "rrn":"10000000000", "auth_code":"000000", "three_d_secure":{ "applied":false } } }
Шаг 4. Когда пользователь вернется на
return_url
, отобразите результат проведения платежа (успех или неудача) в зависимости от статуса платежа.В этом сценарии вы запрашиваете у пользователя номер телефона, который привязан к СберБанку Онлайн, и сообщаете пользователю, что на этот номер поступит пуш-уведомление или смс. Пользователь переходит по пуш-уведомлению или отвечает на смс для подтверждения платежа.
Шаг 1. Создайте платеж , в объекте
payment_method_data
передайте тип sberbank
и телефон пользователя, привязанный к СберБанку Онлайн, а в объекте confirmation
передайте тип external
.Пример запроса
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": "sberbank", "phone": "79000000000" }, "confirmation": { "type": "external", }, "description": "Заказ №72" }'
Пример созданного объекта платежа
{ "id":"22e12f66-000f-5000-8000-18db351245c7", "status":"pending", "paid":false, "amount":{ "value":"2.00", "currency":"RUB" }, "confirmation":{ "type":"external" }, "created_at":"2018-07-18T10:51:18.139Z", "description":"Заказ №72", "metadata":{ "order_id":"72" }, "payment_method":{ "type":"sberbank", "phone":"79000000000" }, "recipient":{ "account_id":"100500", "gateway_id":"100700" }, "refundable":false, "test":false }
Шаг 2. Сообщите пользователю, что ему необходимо подтвердить оплату.
Шаг 3. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о платеже .
Пример успешного платежа
{ "id":"22e12f66-000f-5000-8000-18db351245c7", "status":"succeeded", "paid":true, "amount":{ "value":"2.00", "currency":"RUB" }, "captured_at":"2021-04-12T14:03:20.155Z", "created_at":"2021-04-12T14:02:39.550Z", "income_amount":{ "value":"2.00", "currency":"RUB" }, "payment_method":{ "type":"sberbank", "id":"22e12f66-000f-5000-8000-18db351245c7", "saved":false, "card":{ "first6":"555555", "last4":"4444", "expiry_year":"2022", "expiry_month":"07", "card_type":"MasterCard" } }, "recipient":{ "account_id":"100500", "gateway_id":"100700" }, "refundable":true, "refunded_amount":{ "value":"0.00", "currency":"RUB" }, "test":false, "authorization_details":{ "rrn":"10000000000", "auth_code":"000000", "three_d_secure":{ "applied":false } } }
Шаг 4. Отобразите пользователю результат проведения платежа (успех или неудача) в зависимости от статуса платежа.
Рекомендуется использовать только для приема платежей на мобильных устройствах (из мобильного приложения или с мобильной версии сайта).
В этом сценарии после создания платежа вы перенаправляете пользователя по диплинку в мобильное приложение СберБанка. В этом приложении пользователь подтверждает платеж.
Шаг 1. Создайте платеж , в объекте
payment_method_data
передайте тип sberbank
, в объекте confirmation
передайте тип mobile_application
, а в параметре return_url
— диплинк в ваше приложение (при платеже из мобильного приложения) или ссылку на страницу вашего магазина (при платеже из мобильной версии сайта).Пример запроса
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": "sberbank" }, "confirmation": { "type": "mobile_application", "return_url": "https://www.example.com/return_url" }, "description": "Заказ №72" }'
Пример созданного объекта платежа
{ "id":"22e12f66-000f-5000-8000-18db351245c7", "status":"pending", "paid":false, "amount":{ "value":"2.00", "currency":"RUB" }, "payment_method":{ "type":"sberbank" }, "confirmation":{ "type":"mobile_application", "confirmation_url":"sberpay://invoicing/v2?bankInvoiceId=8745798516524623ae94a4e98c5b1f3d&operationType=App2App" }, "created_at":"2018-07-18T10:51:18.139Z", "description":"Заказ №72", "metadata":{ "order_id":"72" }, "recipient":{ "account_id":"100500", "gateway_id":"100700" }, "refundable":false, "test":false }
Шаг 2. Сообщите пользователю, что ему необходимо подтвердить оплату.
Шаг 3. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о платеже .
Пример успешного платежа
{ "id":"22e12f66-000f-5000-8000-18db351245c7", "status":"succeeded", "paid":true, "amount":{ "value":"2.00", "currency":"RUB" }, "captured_at":"2021-04-13T09:27:09.960Z", "created_at":"2021-04-13T09:25:13.087Z", "description":"Заказ №72", "income_amount":{ "value":"2.00", "currency":"RUB" }, "payment_method":{ "type":"sberbank", "id":"22e12f66-000f-5000-8000-18db351245c7", "saved":false, "card":{ "first6":"555555", "last4":"4444", "expiry_year":"2022", "expiry_month":"07", "card_type":"MasterCard" } }, "recipient":{ "account_id":"100500", "gateway_id":"100700" }, "refundable":true, "refunded_amount":{ "value":"0.00", "currency":"RUB" }, "test":false, "authorization_details":{ "rrn":"10000000000", "auth_code":"000000", "three_d_secure":{ "applied":false } } }
Шаг 4. Когда пользователь вернется на
return_url
, отобразите результат проведения платежа (успех или неудача) в зависимости от статуса платежа.Рекомендуется использовать только для полной версии сайта, а для мобильной использовать сценарий Mobile application.
В этом сценарии ваши действия различаются в зависимости от того, из какой версии вашего сайта пользователь проводит платеж:
- При оплате из полной версии сайта вы генерируете QR-код, который сканирует пользователь в приложении СберБанка.
- При оплате из мобильной версии вы перенаправляете пользователя по диплинку в мобильное приложение СберБанка.
В приложении СберБанка пользователь подтверждает платеж и видит, как прошла оплата (успех или неудача).
Шаг 1. Создайте платеж, в объекте
payment_method_data
передайте тип sberbank
, в объекте confirmation
— тип qr
.Пример запроса
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": "sberbank" }, "confirmation": { "type": "qr" }, "description": "Заказ №72" }'
Шаг 2. В параметре
confirmation_data
ЮKassa передаст URL. Сгенерируйте QR-код с помощью любого доступного инструмента и отобразите его пользователю. В мобильной версии сайта перенаправьте пользователя по этому URL (например, при нажатии на кнопку Оплатить) и сообщите, что после оплаты ему необходимо вернуться на страницу вашего магазина.Пример созданного объекта платежа
{ "id":"22e12f66-000f-5000-8000-18db351245c7", "status":"pending", "paid":false, "amount":{ "value":"2.00", "currency":"RUB" }, "confirmation":{ "type":"qr", "confirmation_data": "sberpay://invoicing/v2?bankInvoiceId=successPaymentInApp2433394341762973&operationType=Web2App" }, "created_at":"2021-04-12T13:03:20.155Z", "description":"Заказ №72", "metadata":{ "order_id":"72" }, "payment_method":{ "type":"sberbank", "id": "22e12f66-000f-5000-8000-18db351245c7", "saved": false }, "recipient":{ "account_id":"100500", "gateway_id":"100700" }, "refundable":false, "test":false }
Шаг 3. Дождитесь успешного завершения платежа: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о платеже .
Пример успешного платежа
{ "id":"22e12f66-000f-5000-8000-18db351245c7", "status":"succeeded", "paid":true, "amount":{ "value":"2.00", "currency":"RUB" }, "captured_at":"2021-04-12T14:03:20.155Z", "created_at":"2021-04-12T14:02:39.550Z", "description":"Заказ №72", "income_amount":{ "value":"2.00", "currency":"RUB" }, "payment_method":{ "type":"sberbank", "id":"22e12f66-000f-5000-8000-18db351245c7", "saved":false, "card":{ "first6":"555555", "last4":"4444", "expiry_year":"2024", "expiry_month":"07", "card_type":"MasterCard" } }, "recipient":{ "account_id":"100500", "gateway_id":"100700" }, "refundable":true, "refunded_amount":{ "value":"0.00", "currency":"RUB" }, "test":false, "authorization_details":{ "rrn":"10000000000", "auth_code":"000000", "three_d_secure":{ "applied":false } } }
Шаг 4. Отобразите пользователю результат проведения платежа (успех или неудача) в зависимости от статуса платежа.
Основы проведения платежейНеуспешные платежиОтправка чеков в налоговую