Перейти к основному содержимому

Прием платежей через SberPay с виджетом

Принимать платежи через SberPay можно с помощью виджета Банка 131. Для платежа не требуется вводить данные карты.

Шаг 1. Создайте платежную сессию

Отправьте запрос на создание платежной сессии session/create. В ответе вы получите идентификатор сессии.

Пример запроса
curl -X POST \
https://demo.bank131.ru/api/v1/session/create \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"metadata": "order123"
}'

Шаг 2. Получите публичный токен

Получите публичный токен, чтобы инициализировать виджет. Отправьте запрос Банку 131 на создание токена (token), передав в нем тип виджета sber_pay_widget. В ответе вы получите публичный токен.

При первой оплате с устройства требуется авторизация плательщика. При повторных платежах на сумму до 10 000 рублей включительно повторная авторизация не требуется. Для принудительной авторизации при каждом платеже независимо от суммы передайте номер телефона плательщика (phone) при вызове метода (token). Номер автоматически подставится в виджет, и плательщик сможет изменить его при необходимости.

Пример запроса
curl -X POST \
https://demo.bank131.ru/api/v1/token \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"sber_pay_widget": {
"session_id": "ps_77872830",
"phone": "79680000000",
"return_url": "https://131.ru"
}
}'

Шаг 3. Инициализируйте виджет на сайте

Инициализируйте виджет на сайте с помощью публичного токена, полученного на предыдущем шаге.

Виджет Банка 131 создает транзакцию, собирает необходимые данные для ее проведения и открывает виджет для оплаты через SberPay.

Плательщик авторизуется в виджете SberPay и оплачивает.

На оплату отводится 20 минут. Если плательщик не оплатит в течение этого времени, операция автоматически отменится со статусом canceled.

После оплаты плательщик возвращается по адресу из параметра return_url.

Дождитесь, когда плательщик либо подтвердит, либо отменит оплату.

Шаг 4. Дождитесь вебхука о действиях плательщика

Дождитесь от Банка 131 вебхука action_required. Это значит, что плательщик приступил к оплате через виджет SberPay.

Пример вебхука
curl -X POST \
https://partner.ru \
-H 'content-type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "action_required",
"session": {
"id": "ps_77872830",
"status": "in_progress",
"created_at": "2026-08-18T06:58:02.250718Z",
"updated_at": "2026-08-18T06:59:10.000000Z",
"acquiring_payments": [{
"id": "pm_17617410",
"status": "pending",
"created_at": "2026-08-18T06:59:05.000000Z",
"customer": {
"reference": "sberpay"
},
"payment_details": {
"type": "internet_banking",
"internet_banking": {
"type": "sber_pay",
"sber_pay": {
"channel": "widget"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "RUB"
},
"amounts": {},
"customer_interaction": {
"type": "inform",
"inform": {
"type": "notification",
"notification": {
"type": "sber_pay_widget",
"sber_pay_widget": {
"order_id": "019ff9be-7bbf-5fb2-1e7f-ef6dedfb7b5d"
}
}
}
}
}],
"actions": {
"confirm": "2026-08-18T06:59:10.000000Z"
}
}
}'

Шаг 5. Дождитесь вебхука о результате платежа

Дождитесь от Банка 131 вебхука payment_finished с результатом проведения платежа. Статус succeeded означает, что платеж прошел успешно. Если статус failed — платеж не прошел из-за ошибки.

Пример вебхука
curl -X POST \
https://partner.ru \
-H 'content-type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "payment_finished",
"session": {
"id": "ps_77872830",
"status": "accepted",
"created_at": "2026-08-18T06:58:02.250718Z",
"updated_at": "2026-08-18T07:08:04.356341Z",
"acquiring_payments": [{
"id": "pm_17617410",
"status": "succeeded",
"created_at": "2026-08-18T07:08:03.323479Z",
"customer": {
"reference": "sberpay"
},
"payment_details": {
"type": "internet_banking",
"internet_banking": {
"type": "sber_pay",
"sber_pay": {
"channel": "widget"
}
}
},
"amount_details": {
"amount": 10000,
"currency": "RUB"
},
"amounts": {}
}]
}
}'

Схема платежа

Схема платежа