Виджет ЮKassa может запоминать данные банковских карт, которыми пользователь платил в вашем магазине. При повторном платеже пользователю не придется заново вводить данные — он сможет выбрать карту, которой расплачивался ранее. Для оплаты пользователю нужно только подтвердить платеж — пройти аутентификацию по 3-D Secure или ввести код CVV2 (CVC2, CID).

Выбор запомненной карты при платеже
Виджет запоминает банковские карты, оплата по которым прошла успешно, и отображает их при повторных платежах. Пользователь может выбрать одну из пяти часто используемых карт или ввести новую. Ненужные карты можно удалить.
Виджет запоминает только произвольные банковские карты, поэтому карты, которые привязаны к кошельку ЮMoney или Mir Pay, запомнить не получится.
В запросе на создание платежа нужно передавать
merchant_customer_id
— идентификатор пользователя в вашей системе. Если этого не сделать, запомнить карту не получится.Убедитесь, что
merchant_customer_id
относится к пользователю, который хочет совершить покупку. Например, используйте двухфакторную аутентификацию. Если в запросе передать неверный идентификатор, пользователь сможет выбрать для оплаты чужие банковские карты.Если у вас к ЮKassa подключено несколько магазинов, пользователь может использовать запомненную карту в каждом из них. Для этого идентификатор пользователя во всех ваших магазинах должен быть одинаковый.
При платеже виджет может одновременно запомнить карту и сохранить её для автоплатежей. Подробнее про запоминание банковской карты и ее сохранение для автоплатежей
Запоминание карт в виджете не подходит для регулярных безакцептных списаний. Если вы хотите делать автоплатежи, передавайте в запросе параметр
save_payment_method
и при последующих платежах используйте payment_method_id
. Подробнее про сохранение способа оплаты для автоплатежейШаг 1. Первый платеж в магазин — пользователь вводит данные банковской карты и разрешает их запомнить. После того, как пользователь подтвердит списание денег, виджет ЮKassa запомнит данные банковской карты пользователя.
Шаг 2. Следующие платежи в магазин — при повторных платежах пользователь выбирает для оплаты сохраненную в виджете карту.
- Пользователь переходит к оплате.
- Вы отправляете ЮKassa запрос на создание платежа и дополнительно передаете в нём идентификатор пользователя в вашей системе.
- ЮKassa возвращает вам созданный объект платежа с токеном для инициализации виджета.
- Вы инициализируете виджет и отображаете форму на странице оплаты.
- Пользователь выбирает оплату банковской картой, вводит данные и разрешает запомнить свои платежные данные.
- При необходимости виджет отображает всплывающее окно для аутентификации по 3‑D Secure.
- Пользователь подтверждает платеж.
- Если платеж прошел, виджет перенаправляет пользователя на страницу завершения оплаты на вашей стороне.
- Вы отображаете нужную информацию, в зависимости от статуса платежа.
Запоминание банковской карты в магазине
- Пользователь переходит к оплате.
- Вы отправляете ЮKassa запрос на создание платежа и дополнительно передаете в нём идентификатор пользователя в вашей системе.
- ЮKassa возвращает вам созданный объект платежа с токеном для инициализации виджета.
- Вы инициализируете виджет и отображаете форму на странице оплаты.
- Виджет отображает привязанные банковские карты пользователя
- Пользователь выбирает карту, привязанную к вашему магазину.
- Виджет отображает всплывающее окно для аутентификации по 3‑D Secure или просит ввести код CVV2 (CVC2, CID).
- Пользователь подтверждает платеж.
- Если платеж прошел, виджет перенаправляет пользователя на страницу завершения оплаты на вашей стороне.
- Вы отображаете нужную информацию в зависимости от статуса платежа.
Выбор запомненной карты при следующем платеже
Создайте платеж и передайте в нём
merchant_customer_id
с идентификатором пользователя в вашей системе, например логин от его учетной записи в вашем магазине.curl https://api.yookassa.ru/v3/payments \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "embedded" }, "capture": true, "description": "Заказ №72", "merchant_customer_id": "+79999999999" }'
В ответ ЮKassa вернет
merchant_customer_id
в неизменном виде и confirmation_token
— токен для инициализации виджета. Далее проводите платеж как обычно.Виджет может одновременно запомнить банковскую карту и начать ее использовать для автоплатежей. Для безусловного сохранения в запросе на создание платежа передайте идентификатор пользователя в вашей системе и параметр
save_payment_method
со значением true
. Для условного сохранения передайте только идентификатор пользователя — передавать save_payment_method
не нужно. Подробнее про сохранение способа оплаты для автоплатежейЗапоминание банковской карты и ее сохранение для автоплатежей
Создайте платеж и передайте в нём
save_payment_method
и merchant_customer_id
с идентификатором пользователя в вашей системе.curl https://api.yookassa.ru/v3/payments \ -X POST \ -u <Идентификатор магазина>:<Секретный ключ> \ -H 'Idempotence-Key: <Ключ идемпотентности>' \ -H 'Content-Type: application/json' \ -d '{ "amount": { "value": "2.00", "currency": "RUB" }, "confirmation": { "type": "embedded" }, "capture": true, "save_payment_method": true, "description": "Заказ №72", "merchant_customer_id": "+79999999999" }'
В ответ ЮKassa вернет
merchant_customer_id
в неизменном виде и confirmation_token
— токен для инициализации виджета.Если оплата прошла успешно, сохраните идентификатор способа оплаты
payment_method.id
. Его нужно будет использовать в качестве идентификатора сохраненного способа оплаты при последующих платежах.Сохранение способа оплаты для автоплатежейАвтоплатежиСправочник виджетаТиповые сценарии интеграции виджета