Прием платежей через SberPay
Этот сценарий описывает прием платежа через SberPay. Для оплаты не требуется вводить данные карты. Имеется возможность проводить платежи с автоподтверждением платежа. При подключении уточните у менеджера, какая схема работы вам необходима.
На оплату методом SberPay после подтверждения платежа дается 20 минут. Если в течение 20 минут вы не передадите Банку подтверждение в методе
session/confirm, оплата не будет произведена, и сессия автоматически завершится в статусеcanceled.
Сценарий оплаты
Сценарий оплаты зависит от канала платежа клиента: мобильное приложение (app), мобильный браузер (mobile_web) или десктопный браузер (web).
- Мобильное приложение (app)
- Мобильный браузер (mobile_web)
- Десктопный браузер (web)
- Создайте платежную сессию отдельно от платежа методом
session/createили одновременно с платежом c помощью методаsession/init/paymentс набором необходимых параметров, в том числе:
sber_payв параметреtype,appв параметреchannel,- URL для переадресации плательщика в параметре
return_url.Если вы создали сессию отдельно от платежа, отправьте запрос
session/start/payment.
- Дождитесь от Банка 131 вебхука
ready_to_confirm— он означает, что Банк готов провести платеж и ждет вашего подтверждения. - Подтвердите платеж запросом
session/confirmили отмените платеж, отправив запросsession/cancel.Опционально: вы можете вызвать методы отправки дополнительных уведомлений, СМС или PUSH, используя метод
sberpay/push. Выбор для отправки СМС или PUSH производится на стороне провайдера (Сбер). Мы не рекомендуем использовать методsberpay/pushвместе с параметромchannel = app, в данном случае успешная оплата не гарантируется! - Дождитесь вебхука
action_requiredдля перенаправления плательщика в приложение Сбера по URL из параметраredirect.url. - Для устройств на iOS перенаправьте плательщика по диплинку из параметра
redirect.urlв одно из приложений Сбера (СберБанк Онлайн или СБОЛ) для оплаты. Для выбора приложения используйте следующий алгоритм (см. пример кода):- Открытие ссылки
btripsexpenses://sbolpay/.... - Ожидание 50мс.
- Обновление страницы (этот шаг нужен для автоматического скрытия алерта с ошибкой, если ссылку не удалось открыть).
- Редирект на свою же страницу с обновленными параметрами запроса.
- Открытие ссылки
budgetonline-ios://sbolpay..... - Ожидание 50мс.
- Обновление страницы (этот шаг нужен для автоматического скрытия алерта с ошибкой, если ссылку не удалось открыть).
- Редирект на свою же страницу с обновленными параметрами запроса.
- Открытие ссылки
ios-app-smartonline://sbolpay/.... - Ожидание 50мс.
- Обновление страницы (этот шаг нужен для автоматического скрытия алерта с ошибкой, если ссылку не удалось открыть).
- Редирект на свою же страницу с обновленными параметрами запроса.
- Открытие ссылки
onlineappmobile://sbolpay/.... - Ожидание 50мс.
- Обновление страницы.
- Переход по ссылке на лендинг Сбер.
- Открытие ссылки
- Дождитесь, когда плательщик либо подтвердит, либо отменит оплату. Сбер отправляет плательщика в ваше приложение или на сайт по диплинку или URL, который был передан в параметре
return_url. - Дождитесь от Банка 131 вебхука
payment_finishedс результатом проведения платежа или периодически опрашивайте статус транзакции (не чаще чем 1 раз в 5 секунд).Если плательщик откажется от оплаты, то об этом станет известно только по истечении 20 минут — как только закончится срок жизни заказа на оплату через SberPay.
- Сообщите пользователю статус платежа.
Пример запроса
curl -X POST \
https://proxy.bank131.ru/api/v1/session/init/payment \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"payment_details": {
"type": "internet_banking",
"internet_banking": {
"type": "sber_pay",
"sber_pay": {
"phone": "71234567890",
"channel": "app"
}
}
},
"amount_details": {
"amount": 1000,
"currency": "RUB"
},
"metadata": "app",
"customer": {
"reference": "user-ebf7-4815-af0a-b1f77e6de7e7"
},
"payment_options": {
"return_url": "https://t.me/bank131"
}
}'
Пример ответа
{
"status": "ok",
"session": {
"id": "ps_12345",
"status": "in_progress",
"created_at": "2023-09-29T05:42:10.549869Z",
"updated_at": "2023-09-29T05:42:10.948457Z",
"acquiring_payments": [{
"id": "pm_131",
"status": "in_progress",
"created_at": "2023-09-29T05:42:10.973559Z",
"customer": {
"reference": "user-ebf7-4815-af0a-b1f77e6de7e7"
},
"payment_details": {
"type": "internet_banking",
"internet_banking": {
"type": "sber_pay",
"sber_pay": {
"phone": "71234567890",
"channel": "app"
}
}
},
"amount_details": {
"amount": 1000,
"currency": "RUB"
},
"metadata": "order123",
"payment_options": {
"return_url": "https://t.me/bank131",
"recurrent": false
}
}]
}
}

- Создайте платежную сессию отдельно от платежа методом
session/createили одновременно с платежом c помощью методаsession/init/paymentс набором необходимых параметров, в том числе:
sber_payв параметреtype,mobile_webв параметреchannel,- URL для переадресации плательщика в параметре
return_url.Если вы создали сессию отдельно от платежа, отправьте запрос
session/start/payment.
- Дождитесь от Банка 131 вебхука
ready_to_confirm— он означает, что Банк готов провести платеж и ждет вашего подтверждения. - Подтвердите платеж запросом
session/confirmили отмените платеж, отправив запросsession/cancel.Опционально: вы можете вызвать методы отправки дополнительных уведомлений, СМС или PUSH, используя метод
sberpay/push. Выбор для отправки СМС или PUSH производится на стороне провайдера (Сбер). - Дождитесь вебхука
action_requiredдля перенаправления плательщика в приложение Сбера по URL из параметраredirect.url. Для устройств на iOS перенаправьте плательщика по диплинку из параметраredirect.urlв одно из приложений Сбера (СберБанк Онлайн или СБОЛ) для оплаты. Для выбора приложения используйте следующий алгоритм (см. пример кода):- Открытие ссылки
btripsexpenses://sbolpay/.... - Ожидание 50мс.
- Обновление страницы (этот шаг нужен для автоматического скрытия алерта с ошибкой, если ссылку не удалось открыть).
- Редирект на свою же страницу с обновленными параметрами запроса.
- Открытие ссылки
budgetonline-ios://sbolpay..... - Ожидание 50мс.
- Обновление страницы (этот шаг нужен для автоматического скрытия алерта с ошибкой, если ссылку не удалось открыть).
- Редирект на свою же страницу с обновленными параметрами запроса.
- Открытие ссылки
ios-app-smartonline://sbolpay/.... - Ожидание 50мс.
- Обновление страницы (этот шаг нужен для автоматического скрытия алерта с ошибкой, если ссылку не удалось открыть).
- Редирект на свою же страницу с обновленными параметрами запроса.
- Открытие ссылки
onlineappmobile://sbolpay/.... - Ожидание 50мс.
- Обновление страницы.
- Переход по ссылке на лендинг Сбер.
- Открытие ссылки
- Дождитесь, когда плательщик либо подтвердит, либо отменит оплату. Сбер отправляет плательщика в ваше приложение или на сайт по диплинку или URL, который был передан в параметре
return_url. - Дождитесь от Банка 131 вебхука
payment_finishedс результатом проведения платежа или периодически опрашивайте статус транзакции (не чаще чем 1 раз в 5 секунд).Если плательщик откажется от оплаты, то об этом станет известно только по истечении 20 минут — как только закончится срок жизни заказа на оплату через SberPay.
- Сообщите пользователю статус платежа.
Пример запроса
curl -X POST \
https://proxy.bank131.ru/api/v1/session/init/payment \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"payment_details": {
"type": "internet_banking",
"internet_banking": {
"type": "sber_pay",
"sber_pay": {
"phone": "71234567890",
"channel": "mobile_web"
}
}
},
"amount_details": {
"amount": 1000,
"currency": "RUB"
},
"metadata": "mobile_web",
"customer": {
"reference": "user-ebf7-4815-af0a-b1f77e6de7e7"
},
"payment_options": {
"return_url": "https://t.me/bank131"
}
}'
Пример ответа
{
"status": "ok",
"session": {
"id": "ps_12345",
"status": "in_progress",
"created_at": "2023-09-29T05:42:10.549869Z",
"updated_at": "2023-09-29T05:42:10.948457Z",
"acquiring_payments": [{
"id": "pm_131",
"status": "in_progress",
"created_at": "2023-09-29T05:42:10.973559Z",
"customer": {
"reference": "user-ebf7-4815-af0a-b1f77e6de7e7"
},
"payment_details": {
"type": "internet_banking",
"internet_banking": {
"type": "sber_pay",
"sber_pay": {
"phone": "71234567890",
"channel": "mobile_web"
}
}
},
"amount_details": {
"amount": 1000,
"currency": "RUB"
},
"metadata": "order123",
"payment_options": {
"return_url": "https://t.me/bank131",
"recurrent": false
}
}]
}
}

- Создайте платежную сессию отдельно от платежа методом
session/createили одновременно с платежом c помощью методаsession/init/paymentс набором необходимых параметров, в том числе:
sber_payв параметреtype,webв параметреchannel,- номер телефона плательщика в параметре
phone. - URL для переадресации плательщика в параметре
return_url.Если вы создали сессию отдельно от платежа, отправьте запрос
session/start/payment.
- Дождитесь от Банка 131 вебхука
ready_to_confirm— он означает, что Банк готов провести платеж и ждет вашего подтверждения. - Подтвердите платеж запросом
session/confirmили отмените платеж, отправив запросsession/cancel.Опционально: вы можете вызвать методы отправки дополнительных уведомлений, СМС или PUSH, используя метод
sberpay/push. Выбор для отправки СМС или PUSH производится на стороне провайдера (Сбер). - Дождитесь, когда плательщик либо подтвердит, либо отменит оплату. Сбер отправляет плательщика в ваше приложение или на сайт по диплинку или URL, который был передан в параметре
return_url. - Дождитесь от Банка 131 вебхука
payment_finishedс результатом проведения платежа или периодически опрашивайте статус транзакции (не чаще чем 1 раз в 5 секунд).Если плательщик откажется от оплаты, то об этом станет известно только по истечении 20 минут — как только закончится срок жизни заказа на оплату через SberPay.
- Сообщите пользователю статус платежа.
Пример запроса
curl -X POST \
https://proxy.bank131.ru/api/v1/session/init/payment \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"payment_details": {
"type": "internet_banking",
"internet_banking": {
"type": "sber_pay",
"sber_pay": {
"phone": "71234567890",
"channel": "web"
}
}
},
"amount_details": {
"amount": 1000,
"currency": "RUB"
},
"metadata": "web",
"customer": {
"reference": "user-ebf7-4815-af0a-b1f77e6de7e7"
},
"payment_options": {
"return_url": "https://131.ru"
}
}'
Пример ответа
{
"status": "ok",
"session": {
"id": "ps_12345",
"status": "in_progress",
"created_at": "2023-09-29T05:42:10.549869Z",
"updated_at": "2023-09-29T05:42:10.948457Z",
"acquiring_payments": [{
"id": "pm_131",
"status": "in_progress",
"created_at": "2023-09-29T05:42:10.973559Z",
"customer": {
"reference": "user-ebf7-4815-af0a-b1f77e6de7e7"
},
"payment_details": {
"type": "internet_banking",
"internet_banking": {
"type": "sber_pay",
"sber_pay": {
"phone": "71234567890",
"channel": "web"
}
}
},
"amount_details": {
"amount": 1000,
"currency": "RUB"
},
"metadata": "order123",
"payment_options": {
"return_url": "https://t.me/bank131",
"recurrent": false
}
}]
}
}

Выбор приложения Сбер для устройств на iOS
Пример кода для применения логики выбора
const openBtripsexpenses = () => {
window.location.href =
"btripsexpenses://sbolpay/invoicing/v2?bankInvoiceId=1961101c8c524c7fa15a9f101e965c58&orderNumber=d76d899c-6ffb-7116-ae89-afc802a92bb01";
};
const openBudgetonline = () => {
window.location.href =
"budgetonline-ios://sbolpay/invoicing/v2?bankInvoiceId=1961101c8c524c7fa15a9f101e965c58&orderNumber=d76d899c-6ffb-7116-ae89-afc802a92bb0";
};
const openIosAppSmartonline = () => {
window.location.href =
"ios-app-smartonline://sbolpay/invoicing/v2?bankInvoiceId=1961101c8c524c7fa15a9f101e965c58&orderNumber=d76d899c-6ffb-7116-ae89-afc802a92bb0";
};
const openOnlineappmobile = () => {
window.location.href =
"onlineappmobile://sbolpay/invoicing/v2?bankInvoiceId=1961101c8c524c7fa15a9f101e965c58&orderNumber=d76d899c-6ffb-7116-ae89-afc802a92bb0";
};
const openLandingpage = () => {
window.location.href =
"https://www.sberbank.ru/ru/person/payments/online_sberpay";
};
const clearMessage = () => {
window.location.href =
"./same_page.html";
};
if (platform == "android") {
setTimeout(openSberpay, 100);
clearMessage();
setTimeout(openLandingpage, 800);
} else if (platform == "iPhone") {
setTimeout(openIosAppSmartonline, 50);
clearMessage();
setTimeout(openBtripsexpenses, 50);
clearMessage();
setTimeout(openBudgetonline, 50);
clearMessage();
setTimeout(openOnlineappmobile, 50);
clearMessage();
setTimeout(openLandingpage, 800);
}
Рекуррентные платежи
Рекуррентные платежи CIT через SberPay не поддерживаются.
Чтобы проводить рекуррентные платежи MIT через SberPay:
-
Получите рекуррентный токен, передав в запросе
recurrent=true(в объектеpayment_options). Если платеж пройдет успешно, в вебхукеpayment_finishedв параметреrecurrent.tokenвернется токен.Пример запроса
curl -X POST \
https://proxy.bank131.ru/api/v1/session/init/payment \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"payment_details": {
"type": "internet_banking",
"internet_banking": {
"type": "sber_pay",
"sber_pay": {
"phone": "71234567890",
"channel": "app"
}
}
},
"amount_details": {
"amount": 1000,
"currency": "RUB"
},
"metadata": "app",
"customer": {
"reference": "user-ebf7-4815-af0a-b1f77e6de7e7"
},
"payment_options": {
"return_url": "https://t.me/bank131",
"recurrent": "true"
}
}' -
При проведении последующих платежей передавайте рекуррентный токен.
Пример запроса
curl -X POST \
https://proxy.bank131.ru/api/v1/session/init/payment \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"payment_details": {
"type": "recurrent",
"recurrent": {
"token": "e9876f32bcd947f79c324cf2da5726304a894f6ae2037de7705fdb3e0a134d39"
}
},
"amount_details": {
"amount": 1000,
"currency": "RUB"
},
"metadata": "app",
"customer": {
"reference": "user-ebf7-4815-af0a-b1f77e6de7e7"
}
}'