Рекарринговые платежи
Рекарринговые платежи — платежи, которые совершаются по ранее привязанной карте, без повторного ввода данных со стороны покупателя. В отличие от рекуррентных платежей списание средств происходит по инициативе самого покупателя.
Такая механика оплаты позволяет онлайн-магазинам или сервисам привязывать карту покупателя к его аккаунту или использовать безакцептные сценарии оплаты.
Важно
Рекарринговые платежи не поддерживают способ оплаты Сплит.
Как это работает?
Примечание
Рекарринговые платежи не подключены по умолчанию и своей функциональностью дополняют базовую механику. Ознакомьтесь с ней, чтобы лучше понимать, как все работает. Подробнее о механиках оплаты читайте в разделе Способы оплаты и платежные механики.
Чтобы подключить и настроить рекарринговые платежи, обратитесь в поддержку.
Этап 1. Привязка карты
-
Покупатель нажимает кнопку привязки карты. Фронтенд магазина создает заказ на бэкенде магазина.
-
Бэкенд магазина отправляет запрос /merchant_v1_subscriptions к бэкенду Яндекс Пэй. В запросе должны быть параметры:
Параметр и значение
Описание
is_binding: true
Позволяет привязать карту без сформированной корзины товаров
currencyCode: RUB
Трехбуквенный код валюты заказа
orderId
Уникальный идентификатор заказа, будет использоваться в дальнейшем для списания средств
redirectUrls
Ссылки для переадресации пользователя с формы оплаты. Обязательно для онлайн-магазинов
Полный список параметров и значений см. в Документации бэкенда.
-
В ответ бэкенд Яндекс Пэй возвращает ссылку на оплату (
paymentUrl
) и уникальный идентификатор подписки (subscriptionId
). -
Бэкенд магазина передает значение параметра
paymentUrl
на фронтенд, чтобы ссылка открылась в браузере покупателя. -
Покупатель привязывает карту:
1. Открывает ссылку на оплату (привязку карты).
2. Авторизуется с Яндекс ID, если не был авторизован ранее.
3. Выбирает карту для привязки или добавляет новую.
4. Подтверждает списание тестовой суммы (11 руб.) для проверки 3ds. Сумма будет возращена после прохождения проверки.
Если привязка прошла успешно, заказ перейдет в статус
CAPTURED
. Отслеживать статус заказа можно через:Уведомления
Для оповещения об изменениях статуса заказа или операции настройте обратный вызов (/webhook) от бэкенда Яндекс Пэй:
- Укажите публично доступный HTTPS URL-адрес бэкенда магазина в поле Callback URL в личном кабинете Яндекс Пэй в разделе Настройки.
- Настройте бэкенд магазина таким образом, чтобы он принимал запросы от бэкенда Яндекс Пэй. Подробнее о требованиях читайте в документации Merchant API.
Поллинг статуса заказа
Настройте регулярную отправку запросов о статусе заказа /orders/{order_id} к бэкенду Яндекс Пэй.
Возможные статусы заказа при привязке карты:
PENDING
Привязка карты в процессе
CAPTURED
Карта привязана
FAILED
Привязка карты завершилась с ошибкой или покупатель не успел привязать карту за отведенное ему время. В этом случае в поле
reason
будет указана причина ошибки -
После привязки карты фронтенд Яндекс Пэй переадресовывает покупателя на URL, переданный ранее в параметре
redirectUrls
(в зависимости от статуса привязки). -
В аккаунте пользователя:
-
Настройте отображение информации о привязанной карте (данные карты можно получить с помощью метода /orders/{order_id} в поле
paymentMethod
). Например:cardLast4
Последние 4 цифры привязанной карты
cardNetwork
Платежная система привязанной карты
-
Добавьте кнопку для привязки новой карты при помощи Яндекс Пэй.
-
Этап 2. Списание средств
Для списания средств настройте бэкенд магазина так, чтобы после формирования корзины товаров он вызывал метод /subscriptions/recur, и передавал в поле parentOrderId
параметр orderId
, заданный ранее при привязке карты.
Сумма заказа будет списана с карты, привязанной ранее. Если операция прошла успешно, заказ перейдет в статус CAPTURED
, а деньги за покупку поступят продавцу на следующие сутки.
Отслеживать статус заказа можно через:
Уведомления
Для оповещения об изменениях статуса заказа или операции настройте обратный вызов (/webhook) от бэкенда Яндекс Пэй:
- Укажите публично доступный HTTPS URL-адрес бэкенда магазина в поле Callback URL в личном кабинете Яндекс Пэй в разделе Настройки.
- Настройте бэкенд магазина таким образом, чтобы он принимал запросы от бэкенда Яндекс Пэй. Подробнее о требованиях читайте в документации Merchant API.
Поллинг статуса заказа
Настройте регулярную отправку запросов о статусе заказа /orders/{order_id} к бэкенду Яндекс Пэй.
Проверка привязки карты
Чтобы проверить, привязана ли карта к аккаунту в магазине или сервисе, используйте метод /subscriptions/{customer_subscription_id}. В запросе передайте параметры:
subscriptionId
— идентификатор подписки, полученный при привязке карты в ответе на запрос/merchant_v1_subscriptions
;check_card_active: true
— чтобы проверить привязку карты.
Если в ответе вернулся параметр is_card_active: null
, то привязанных карт нет.
Возврат средств
Провести возврат можно двумя способами:
Статусы, которые мы высылаем в интеграции
Примечание
Статусы AUTHORIZED
, VOIDED
и CONFIRMED
в текущей интеграции не используются.
Статусы при проведении оплаты:
|
Оплата еще в процессе, нужно запросить статус платежа позже. Не отправляется в нотификации. |
|
Оплата завершилась неудачно. Терминальный неуспешный статус. |
|
Оплата совершена. Терминальный успешный статус. |
Статусы при проведении возврата:
|
Процедура возврата неуспешна. Терминальный неуспешный статус. |
|
Возврат совершен. Терминальный успешный статус. |
|
Частичный возврат совершен. Терминальный успешный статус. |
Сценарии тестирования механики
Для качественной работы сервиса протестируйте его в тестовой и боевой среде перед приемом платежей пользователей.
Если вы настроили интеграцию по API Яндекс Пэй, в ходе тестирования рекомендуем использовать тестовые сценарии:
Сценарий |
Действия |
Ожидаемый результат |
Среда |
Успешная привязка карты. CallbackURL задан в ЛК |
|
Получен webhook с статусом заказа |
Test |
Успешная привязка карты. CallbackURL не задан в ЛК |
|
В методе orders/{order_id} получен статус заказа |
Test |
Успешная оплата с привязанной карты |
|
|
Test, Prod |
Недостаточно средств при оплате привязанной картой |
|
|
Test |
Частичный возврат ранее совершенной оплаты через API |
|
|
Test, Prod |
Полный возврат ранее совершенной оплаты через API |
|
|
Prod |
Частичный возврат любого способа оплаты через ЛК (опционально: если не используется API) |
|
|
Prod |
Полный возврат любого способа оплаты через ЛК (опционально: если не используется API) |
|
|
Prod |
Успешная оплата СБП |
|
|
Prod |
Успешная оплата банковской картой |
|
|
Prod |
Проверка ежедневного отчета о продажах |
Оставьте без возврата успешные продажи на сумму не менее 500 рублей. |
На следующий день после тестов получен ежедневный отчет с операциями. Проверьте начисленную комиссию за успешную оплату. |
Prod |