Привязка счета СБП на нулевую сумму
Вы можете сохранить счет СБП для дальнейших автоплатежей с помощью привязки на нулевую сумму.
Для этого вы создаете привязку и, чтобы подтвердить сохранение способа оплаты, перенаправляете пользователя в приложение участника СБП (банка или платежного сервиса, подключенного к СБП). Это можно сделать двумя способами:
- На странице ЮKassa — вы перенаправляете пользователя на готовую страницу ЮKassa, где он сканирует QR-код или выбирает банк или платежный сервис из списка.
- На вашей стороне — вы получаете платежную ссылку СБП, генерируете QR-код (для компьютера) или перенаправляете по ссылке (для мобильного устройства).
Когда пользователь подтвердит привязку, ЮKassa проверит, что этот счет СБП можно использовать для автоплатежей, и привяжет его к вашему магазину.
Порядок работы
Привязка счета СБП на нулевую сумму проходит следующим образом:
- Вы создаете привязку.
- ЮKassa возвращает вам идентификатор способа оплаты. Его пока нельзя использовать для автоплатежей, нужно дождаться, когда ЮKassa проверит счет.
- Пользователь для перехода в приложение участника СБП либо сканирует QR-код, либо выбирает свой банк или платежный сервис на стороне ЮKassa или на вашей стороне.
- Пользователь переходит в приложение участника СБП и подтверждает привязку.
- ЮKassa проверяет, что с счетом всё в порядке, его можно использовать для последующих автоплатежей.
- ЮKassa привязывает счет СБП к вашему магазину.
- Вы сохраняете идентификатор способа оплаты. Он нужен, чтобы проводить автоплатежи.
Cценарий привязки на нулевую сумму
В этом разделе описан общий порядок проведения привязки на нулевую сумму на странице ЮKassa, где пользователь сканирует QR-код в приложении участника СБП. Если пользователь переходит к привязке на вашей стороне или сканирует QR-код через другое приложение, порядок действий может немного отличаться.
Сценарий привязки с отображением QR-кода СБП на странице ЮKassa
- Пользователь переходит к привязке счета СБП.
- Вы создаете объект способа оплаты — отправляете ЮKassa POST-запрос.
- ЮKassa возвращает вам созданный объект способа оплаты в статусе
pending. В объект включен идентификатор способа оплаты и ссылка на готовую страницу привязки (параметрconfirmation_url). - Вы перенаправляете пользователя на готовую страницу привязки.
- Пользователь сканирует QR-код и переходит в приложение участника СБП.
- Пользователь подтверждает привязку в приложении участника СБП.
- НСПК (Национальная система платежных карт — оператор СБП) проверяет ограничения на привязку счета СБП.
- НСПК возвращает ЮKassa результат проверки.
- ЮKassa сохраняет способ оплаты — привязывает счет СБП к вашему магазину.
- ЮKassa перенаправляет пользователя по ссылке, которую вы передали в параметре
return_urlв объектеconfirmation. - Если у вас настроены уведомления, ЮKassa присылает уведомление о сохранении способа оплаты —
payment_method.active. - Вы запрашиваете информацию о способе оплаты — отправляете ЮKassa GET-запрос с идентификатором способа оплаты.
- Вы сохраняете идентификатор способа оплаты. Этот идентификатор можно использовать для автоплатежей.
- Вы сообщаете пользователю результат привязки.
Привязка счета СБП на странице ЮKassa
Как это работает
В этом сценарии вы создаете привязку и перенаправляете пользователя на страницу ЮKassa, где он сканирует QR-код или выбирает свой банк или платежный сервис.
Пример формы привязки счета СБП на компьютере
Если способ оплаты нельзя сохранить (например, счет заблокирован), форма привязки обрабатывает неуспешные попытки: она отображает пользователю сообщение об ошибке и предлагает попробовать привязать счет СБП еще раз. Вы можете отключить эту настройку через менеджера ЮKassa и обрабатывать неуспешные попытки самостоятельно.
Для интеграции добавьте на ваш сайт кнопку, по которой можно перейти к привязке. Когда пользователь перейдет по кнопке, получите от ЮKassa ссылку на готовую страницу привязки и перенаправьте на неё пользователя. Срок жизни этой ссылки — 1 час.
На странице привязки пользователь в зависимости от своего устройства либо отсканирует QR-код, либо выберет свой банк или платежный сервис, а затем перейдет в приложение участника СБП для подтверждения привязки. ЮKassa проверит, что с счетом СБП всё в порядке, привяжет платежное средство к вашему магазину и отобразит результат привязки.
Когда пользователь вернется обратно к вам на сайт, запросите у ЮKassa результаты привязки. При необходимости отобразите их пользователю.
Как создать привязку
Шаг 1. Предупредите пользователя, что сохраните его платежные данные, и расскажите, как будете их использовать. Например, с какой регулярностью вы будете списывать деньги и как пользователь сможет отказаться от повторных списаний.
Шаг 2. Создайте объект способа оплаты. Передайте в запросе следующие данные:
- параметр
typeсо значениемsbp; - объект
confirmationс типомredirectи адресом страницы на вашей стороне, на которую пользователь вернется после привязки (в параметреreturn_url); - при необходимости передайте объект
metadataс любыми дополнительными данными, которые нужны вам для работы (например, ваш внутренний идентификатор заказа).
Пример запроса
cURL
curl https://api.yookassa.ru/v3/payment_methods \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "confirmation": { "type": "redirect", "return_url": "https://www.example.com/return_url" }, "type": "sbp", "metadata": { "order_id": "37" } }'
В ответ на запрос ЮKassa вернет созданный объект способа оплаты.
Пример созданного объекта способа оплаты
JSON
{ "type": "sbp", "id": "22e12f66-000f-5000-8000-18db351245c7", "saved": false, "status": "pending", "holder": { "account_id": "100500", "gateway_id": "100700" }, "confirmation": { "type": "redirect", "confirmation_url": "https://yoomoney.ru/checkout/payment-methods/v1/contract?paymentMethodId=22e12f66-000f-5000-8000-18db351245c7" }, "metadata": { "order_id": "37" } }
Шаг 3. Перенаправьте пользователя на
confirmation_url, который придет в объекте способа оплаты. Это ссылка на страницу ЮKassa, на которой пользователь отсканирует QR-код или выберет банк или платежный сервис.Если пользователь сканирует QR-код, он может сделать это двумя способами:
- в приложении банка или платежного сервиса — тогда пользователь сразу перейдет к подтверждению привязки счета СБП;
- в другом приложении для сканирования QR-кодов — тогда пользователь перейдет на страницу НСПК для выбора банка или платежного сервиса, счет в котором он хочет привязать к вашему магазину.
Чтобы сохранить идентификатор способа оплаты:
Шаг 1. Дождитесь, когда пользователь подтвердит привязку, а ЮKassa проверит счет СБП: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о сохраненном способе оплаты.
Шаг 2. Убедитесь, что способ оплаты сохранен: в объекте способа оплаты будут параметры
status=active и saved=true .Если в процессе привязки возникла ошибка (например, счет заблокирован), то в объекте способа оплаты вернутся параметры
status=inactive и saved=false . Для уточнения причин ошибки обратитесь в техническую поддержку ЮKassa.Пример объекта способа оплаты в статусе active
JSON
{ "type": "sbp", "id": "22e12f66-000f-5000-8000-18db351245c7", "saved": true, "status": "active", "holder": { "account_id": "100500", "gateway_id": "100700" }, "payer_bank_details": { "bank_id": " 100000000022" }, "metadata": { "order_id": "37" } }
Шаг 3. Сохраните идентификатор способа оплаты
payment_methods.id. Рекомендуется сохранять его в связке с идентификатором пользователя в вашей системе. Это нужно, чтобы в дальнейшем вы могли соотнести пользователя и его платежные данные.Шаг 4. Сообщите пользователю результаты сохранения способа оплаты.
Готово!
Вы сохранили способ оплаты и теперь можете проводить автоплатежи.
Привязка счета СБП на вашей стороне
Как это работает
В этом сценарии вы создаете привязку и получаете от ЮKassa платежную ссылку СБП. Затем, в зависимости от устройства пользователя, вы либо самостоятельно генерируете и отображаете QR-код, либо перенаправляете пользователя по платежной ссылке СБП для выбора банка или платежного сервиса из списка.
Если способ оплаты нельзя сохранить (например, счет заблокирован), вы самостоятельно обрабатываете неуспешные попытки и сообщаете пользователю результат привязки.
Для интеграции добавьте на ваш сайт кнопку, по которой можно перейти к привязке. Когда пользователь перейдет по кнопке, получите от ЮKassa платежную ссылку СБП:
- В полной версии сайта сгенерируйте QR-код с помощью любого доступного инструмента и отобразите его пользователю.
- В мобильной версии сайта или в мобильном приложении перенаправьте пользователя по этой ссылке.
Срок жизни платежной ссылки СБП — 1 час.
Когда пользователь подтвердит привязку в приложении участника СБП, ЮKassa проверит, что с счетом СБП всё в порядке, и привяжет платежное средство к вашему магазину. После возвращения пользователя обратно к вам на сайт запросите у ЮKassa результаты привязки. При необходимости отобразите их пользователю.
Как создать привязку
Шаг 1. Предупредите пользователя, что сохраните его платежные данные, и расскажите, как будете их использовать. Например, с какой регулярностью вы будете списывать деньги и как пользователь сможет отказаться от повторных списаний.
Шаг 2. Создайте объект способа оплаты. Передайте в запросе следующие данные:
- параметр
typeсо значениемsbp; - объект
confirmationс типомqrи адресом страницы на вашей стороне, на которую пользователь вернется после подтверждения привязки в приложении участника СБП (в параметреreturn_url); - при необходимости передайте объект
metadataс любыми дополнительными данными, которые нужны вам для работы (например, ваш внутренний идентификатор заказа).
Пример запроса
cURL
curl https://api.yookassa.ru/v3/payment_methods \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "confirmation": { "type": "qr", "return_url": "https://www.example.com/return_url" }, "type": "sbp", "metadata": { "order_id": "37" } }'
В ответ на запрос ЮKassa вернет созданный объект способа оплаты.
Пример созданного объекта способа оплаты
JSON
{ "type": "sbp", "id": "22e12f66-000f-5000-8000-18db351245c7", "saved": false, "status": "pending", "holder": { "account_id": "100500", "gateway_id": "100700" }, "confirmation": { "type": "qr", "confirmation_data": "https://qr.nspk.ru/QR_ID" }, "metadata": { "order_id": "37" } }
Шаг 3. В параметре
confirmation_data ЮKassa вернет URL — это платежная ссылка СБП. В полной версии сайта сгенерируйте QR-код с помощью любого доступного инструмента и отобразите его пользователю. В мобильной версии сайта или в мобильном приложении перенаправьте пользователя по этому URL.Если пользователь сканирует QR-код, он может сделать это двумя способами:
- в приложении банка или платежного сервиса — тогда пользователь сразу перейдет к подтверждению привязки счета СБП;
- в другом приложении для сканирования QR-кодов — тогда пользователь перейдет на страницу НСПК для выбора банка или платежного сервиса, счет в котором он хочет привязать к вашему магазину.
Чтобы сохранить идентификатор способа оплаты:
Шаг 1. Дождитесь, когда пользователь подтвердит привязку, а ЮKassa проверит счет СБП: подождите, когда придет уведомление от ЮKassa, или периодически отправляйте запросы, чтобы получить информацию о сохраненном способе оплаты.
Шаг 2. Убедитесь, что способ оплаты сохранен: в объекте способа оплаты будут параметры
status=active и saved=true.Если в процессе привязки возникла ошибка (например, счет заблокирован), то в объекте способа оплаты вернутся параметры
status=inactive и saved=false. Для уточнения причин ошибки обратитесь в техническую поддержку ЮKassa.Пример объекта способа оплаты в статусе active
JSON
{ "type": "sbp", "id": "22e12f66-000f-5000-8000-18db351245c7", "saved": true, "status": "active", "holder": { "account_id": "100500", "gateway_id": "100700" }, "payer_bank_details": { "bank_id": " 100000000022" }, "metadata": { "order_id": "37" } }
Шаг 3. Сохраните идентификатор способа оплаты
payment_methods.id. Рекомендуется сохранять его в связке с идентификатором пользователя в вашей системе. Это нужно, чтобы в дальнейшем вы могли соотнести пользователя и его платежные данные.Шаг 4. Сообщите пользователю результаты сохранения способа оплаты.
Готово!
Вы сохранили способ оплаты и теперь можете проводить автоплатежи.
Проведение автоплатежа
Проведение платежа сохраненным способом оплаты нужно реализовать самостоятельно. Для этого отправьте запрос на создание автоплатежа и передайте в нём параметр
payment_method_id с идентификатором способа оплаты. Подробнее о проведении автоплатежаЧто почитать еще