Рекуррентные платежи
Рекуррентные платежи (автоплатежи) — это платежи, которые происходят регулярно или автоматически по инициативе продавца, без необходимости повторного ввода данных со стороны покупателя. Такая механика платежей подходит продавцам, которые предлагают подписку на свои товары или услуги.
Важно
Рекуррентные платежи не поддерживают способ оплаты Сплит.
Как это работает?
Примечание
Рекуррентные платежи не подключены по умолчанию и своей функциональностью дополняют базовую механику. Ознакомьтесь с ней, чтобы лучше понимать, как все работает. Подробнее о механиках оплаты читайте в разделе Способы оплаты и платежные механики.
Чтобы подключить и настроить рекуррентные платежи, обратитесь в поддержку.
Этап 1. Оформление подписки
Схема
-
Настройте процесс формирования корзины товаров так, чтобы у покупателя была возможность выбрать вариант подписки и ее условия:
- период в единицах измерения времени и их количество;
- сумма следующих списаний;
- наличие пробного периода (триала): до конкретной даты или период с единицей измерения.
-
Разместите кнопку оплаты Яндекс Пэй согласно общим рекомендациям. Нажатие на кнопку вызывает сallback на фронтенде партнера.
-
Настройте фронтенд магазина так, чтобы после нажатия кнопки оплаты Яндекс Пэй он создавал заказ на бэкенде магазина.
-
Настройте бэкенд магазина так, чтобы при выборе варианта подписки он передавал заказ в бэкенд Яндекс Пэй методом /subscriptions. В запросе должны быть параметры:
Параметр и значение
Описание
is_binding: false
Позволяет передавать данные о корзине и условиях подписки
currencyCode: RUB
Трехбуквенный код валюты заказа
orderId"
Уникальный идентификатор заказа, будет использоваться в дальнейшем для списания средств
redirectUrls
Ссылки для переадресации пользователя с формы оплаты. Обязательно для онлайн-магазинов
cart
Данные корзины
intervalCount
Периодичность подписки
intervalUnit
Единица времени для периодичности подписки
futureWriteOffAmount
Сумма, которая будет списываться в будущем
trialUnit
иtrialCount
Пробный период, если есть (в единицах измерения времени и их количество)
trialEndAt
Дата окончания пробного периода, если есть
Полный список параметров и значений см. в Документации бэкенда.
-
В ответ бэкенд Яндекс Пэй вернет в поле
paymentUrl
ссылку на форму оплаты Яндекс Пэй. Настройте передачу этой ссылки на фронтенд магазина. -
Настройте фронтенд магазина так, чтобы он транслировал полученную ссылку на оплату в SDK Яндекс Пэй.
-
SDK Яндекс Пэй загружает с бэкенда Яндекс Пэй информацию о корзине товаров и отображает покупателю форму оплаты с информацией о корзине товаров и условиями подписки.
- для Web SDK: происходит перенаправление на полученную ссылку для оплаты;
- для Mobile SDK: открывается формы для оплаты.
-
Покупатель приступает к оплате:
- Открывает ссылку на оплату.
- Авторизуется с Яндекс ID, если не был авторизован ранее.
- Выбирает способ оплаты и нажимает кнопку оплаты (в случае полной оплаты с кешбэком выбирает сохраненную в Яндексе карту или СБП-привязку к счету).
- При покупке товара или услуги с пробным периодом проходит процедуру привязки карты и подтверждает списание тестовой суммы (11 рублей) для проверки 3ds. Сумма (11 рублей) будет возращена после прохождения проверки.
-
Яндекс Пэй проводит платеж, списывая денежные средства с выбранной карты покупателя.
Если оплата прошла успешно, заказ перейдет в статус
CAPTURED
. Отслеживать статус заказа можно через:Уведомления
Для оповещения об изменениях статуса заказа или операции настройте обратный вызов (/webhook) от бэкенда Яндекс Пэй:
- Укажите публично доступный HTTPS URL-адрес бэкенда магазина в поле Callback URL в личном кабинете Яндекс Пэй в разделе Настройки.
- Настройте бэкенд магазина таким образом, чтобы он принимал запросы от бэкенда Яндекс Пэй. Подробнее о требованиях читайте в документации Merchant API.
Поллинг статуса заказа
Настройте регулярную отправку запросов о статусе заказа /orders/{order_id} к бэкенду Яндекс Пэй.
Возможные статусы заказа при проведении оплаты:
PENDING
Оплата в процессе
CAPTURED
Оплачен
FAILED
Оплата не прошла. В этом случае в поле
reason
будет указана причина ошибки -
Деньги за покупку поступят на следующие сутки.
Примечание
Если у подписки был пробный период (триал), то денежные средства за покупку не перечисляются, продавцу нужно списать деньги самостоятельно в дату завершения пробного периода.
Этап 2. Списание средств продавцом
Продавец инициирует списание денежных средств, если у клиента закончилась предыдущая подписка или завершился пробный период.
Для списания средств настройте бэкенд магазина так, чтобы после формирования корзины товаров он вызывал метод /subscriptions/recur и передавал в поле parentOrderId
значение orderId
, заданное ранее при привязке карты.
Сумма заказа будет списана с карты, привязанной ранее. Если операция прошла успешно, заказ перейдет в статус CAPTURED
, а деньги за покупку поступят продавцу на следующие сутки.
Отслеживать статус заказа можно через:
Уведомления
Для оповещения об изменениях статуса заказа или операции настройте обратный вызов (/webhook) от бэкенда Яндекс Пэй:
- Укажите публично доступный HTTPS URL-адрес бэкенда магазина в поле Callback URL в личном кабинете Яндекс Пэй в разделе Настройки.
- Настройте бэкенд магазина таким образом, чтобы он принимал запросы от бэкенда Яндекс Пэй. Подробнее о требованиях читайте в документации Merchant API.
Поллинг статуса заказа
Настройте регулярную отправку запросов о статусе заказа /orders/{order_id} к бэкенду Яндекс Пэй.
Возможные статусы заказа при проведении оплаты:
PENDING |
Оплата в процессе |
CAPTURED |
Оплачен |
FAILED |
Оплата не прошла. В этом случае в поле |
Проверка привязки карты
Чтобы проверить, привязана ли карта к аккаунту в магазине или сервису, используйте метод /subscriptions/{customer_subscription_id}. В запросе передайте параметры:
subscriptionId
— идентификатор подписки, полученный при привязке карты в ответе на запрос/merchant_v1_subscriptions
;check_card_active: true
— чтобы проверить привязку карты.
Если в ответе вернулся параметр is_card_active: null
, то привязанных карт нет.
Возврат средств
Провести возврат можно двумя способами: