Рекуррентные платежи через СБП
Наш API позволяет:
- получить токен для рекуррентных платежей через СБП со списанием средств,
- получить токен для рекуррентных платежей через СБП без списания средств.
Как получить токен для рекуррентных платежей со списанием средств
- Создайте платежную сессию
session/create. - Отправьте запрос на проведение платежа с помощью метода
session/start/payment. В параметреpayment_options.recurrentпередайте значениеtrue. - Дождитесь вебхука
ready_to_confirmдля подтверждения проведения оплаты. Если всё в порядке, отправьте в ответ запросsession/confirmдля подтверждения транзакции илиsession/cancelдля отмены транзакции. - Дождитесь вебхука
action_required. В параметреcustomer_interaction.inform.qr.contentпередается диплинк на оплату, который либо можно показать плательщику в виде QR-кода, либо отправить по нему плательщика в приложение эмитента. - Дождитесь от Банка 131 вебхука
payment_finishedс результатом проведения платежа. В случае успеха оплаты в вебхуке будут переданы значенияstatus=accepted(объектsession) иstatus=succeeded(объектpayments/payout_list), а в параметреrecurrent.tokenбудет передан токен для последующих оплат. В случае какой-либо неудачи в вебхуке будут переданы значенияstatus=cancelled(объектsession) иstatus=failed(объектpayments/payout_list), а токен для рекуррентных платежей будет отсутствовать.
Пример вебхука payment_finished
- Успешная транзакция
- Неуспешная транзакция
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "payment_finished",
"session": {
"id": "ps_713610",
"status": "accepted",
"created_at": "2024-08-08T08:06:51.841432Z",
"updated_at": "2024-08-08T08:14:56.168219Z",
"acquiring_payments": [{
"id": "pm_308906",
"status": "succeeded",
"created_at": "2024-08-08T08:06:51.931193Z",
"finished_at": "2024-08-08T08:14:55.996273Z",
"customer": {
"reference": "user123",
"contacts": [{
"phone": "7123*****45"
}]
},
"payment_details": {
"type": "faster_payment_system"
},
"recurrent": {
"token": "6a6a29c4193a8e1049231e1497a3c5f180e120b20db81b39f53ec478029b53cf",
"created_at": "2024-08-08T10:10:27+03:00",
"finished_at": "2034-08-08T10:10:27+03:00",
"is_active": true,
"type": "recurrent_token"
},
"amount_details": {
"amount": 1000,
"currency": "RUB"
},
"amounts": {
"net": {
"amount": 1000,
"currency": "RUB"
},
"gross": {
"amount": 1000,
"currency": "RUB"
}
}
}],
"actions": {
"confirm": "2024-08-08T08:06:52.184593Z",
"capture": "2024-08-08T08:14:55.699095Z"
}
}
}'
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "payment_finished",
"session": {
"id": "ps_713610",
"status": "cancelled",
"created_at": "2022-03-01T11:57:31.652396Z",
"updated_at": "2022-03-01T11:57:31.861329Z",
"acquiring_payments": [{
"id": "pm_308906",
"status": "failed",
"created_at": "2022-03-01T11:57:31.895773Z",
"finished_at": "2022-03-01T11:57:31.895773Z",
"customer": {
"reference": "user123"
},
"payment_details": {
"type": "faster_payment_system"
},
"amount_details": {
"amount": 229600,
"currency": "RUB"
},
"amounts": {
"fee": {
"merchant_fee": {
"amount": 1607,
"currency": "RUB"
}
}
},
"metadata": {
"parent_session_id": "ps_1667788995"
},
"error": {
"description": "QR expired",
"code": "qr_expired"
},
"payment_options": {
"return_url": "https://131.ru",
"recurrent": false
}
}],
"error": {
"description": "Session cancelled",
"code": "session_cancelled"
},
"actions": {
"confirm": "2022-03-01T11:57:31.895773Z"
}
}
}'
Схема привязки счета к СБП

Как получить токен для рекуррентных платежей без списания средств
Чтобы получить токен для рекуррентных платежей без списания средств, необходимо пройти все стандартные шаги по проведению платежа через СБП.
При создании запроса session/start/payment или session/init/payment укажите "type": "faster_payment_system_binding" и "recurrent": true.
В объекте amount_details укажите 1 рубль или любое другое положительное число, т.к. значение данного объекта в данном случае игнорируется (сумма не будет списана).
В вебхуке payment_finished вернется токен для совершения рекуррентных платежей.
Пример запроса
curl -X POST \
https://demo.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": "faster_payment_system_binding"
},
"amount_details": {
"amount": 100,
"currency": "rub"
},
"customer": {
"reference": "lucky"
},
"payment_options": {
"recurrent": true
}
}'
Получив токен, принимайте рекуррентные платежи стандартным образом.
Пример запроса
curl -X POST \
https://demo.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": 10000,
"currency": "rub"
},
"customer": {
"reference": "lucky"
}
}'