Інтеграція платіжного методу СберPay в мобільному додатку
СберPay — платіжний метод від Сбербанку, який дозволяє користувачам підтверджувати оплату через програму СберБанк Онлайн або через Сбер ID. У мобільних додатках інтеграція реалізується через Сбербанк Еквайринг (SBOL REST API) або через агрегатори (ЮKassa, CloudPayments), які підтримують СберPay як метод оплати.
Два шляхи інтеграції
Через агрегатор. Якщо у вас уже є ЮKassa, CloudPayments або Robokassa — СберPay можна включити як додатковий paymentMethodType без окремої інтеграції. ЮKassa, наприклад, підтримує sberbank як тип методу оплати, і SDK сам відкриває deeplink в СберБанк Онлайн.
Через Сбербанк Еквайринг напрямо. Вимагає окремої реєстрації мерчанта в Сбербанку, підключення до тестового середовища 3dsec.sberbank.ru та прямої роботи з REST API.
Пряма інтеграція через Сбербанк REST API
Для СберPay в мобільному додатку використовується потік з deeplink-поверненням. Сервер реєструє замовлення й отримує orderId та formUrl:
POST https://securepayments.sberbank.ru/payment/rest/register.do
?userName=merchant_login
&password=merchant_password
&orderNumber=ORDER-1234
&amount=150000
&returnUrl=yourapp://payment/result/success
&failUrl=yourapp://payment/result/fail
&clientId=user_123
&paymentSystem=SBERPAY
Відповідь:
{
"orderId": "uuid-order-id",
"formUrl": "https://securepayments.sberbank.ru/sberpay?orderId=..."
}
Deeplink у СберБанк Онлайн
formUrl містить посилання, яке відкриває приложення СберБанк Онлайн для підтвердження. На клієнті:
// Android
val sberPayUri = Uri.parse(formUrl)
val intent = Intent(Intent.ACTION_VIEW, sberPayUri)
// Перевіряємо, встановлений ли СберБанк Онлайн
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
} else {
// Fallback: відкриваємо formUrl в браузері
openInBrowser(formUrl)
}
// iOS
if let url = URL(string: formUrl), UIApplication.shared.canOpenURL(url) {
UIApplication.shared.open(url)
} else {
// Fallback: SFSafariViewController
presentSafari(url: formUrl)
}
Обробка повернення через deeplink
Після підтвердження в СберБанк Онлайн система перенаправляє на returnUrl, який ви вказали при реєстрації замовлення. На iOS потрібен Universal Link або URL Scheme, на Android — Intent Filter:
<!-- AndroidManifest.xml -->
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="yourapp" android:host="payment" android:pathPrefix="/result" />
</intent-filter>
Після повернення перевіряємо статус замовлення на сервері:
GET https://securepayments.sberbank.ru/payment/rest/getOrderStatusExtended.do
?orderId=uuid-order-id&userName=...&password=...
Ключовой момент: не довіряйте тільки deeplink-поверненню. Користувач міг закрити додаток до перенаправлення. Статус платежу потрібно завжди перевіряти через серверний запит getOrderStatusExtended.
Інтеграція через ЮKassa (спрощена версія)
// Android, ЮKassa SDK
val paymentParameters = PaymentParameters(
amount = Amount(BigDecimal.valueOf(1500), Currency.getInstance("RUB")),
title = "Замовлення",
subtitle = "",
clientApplicationKey = "live_key",
shopId = "shop_id",
paymentMethodTypes = setOf(PaymentMethodType.SBERBANK) // тільки СберPay
)
ЮKassa SDK сам формує deeplink і обробляє повернення — вам лишається тільки прийняти токен і створити платіж на сервері.
Обсяг робіт
- Вибір схеми інтеграції: пряма або через агрегатор
- Реєстрація замовлення на сервері та отримання formUrl
- Реалізація deeplink-відкриття СберБанк Онлайн та fallback
- Обробка повернення через URL Scheme / Universal Link
- Серверна перевірка статусу платежу
Терміни
2–3 дні. Вартість розраховується індивідуально.







