Skip to content

Рекуррентные платежи

Рекуррентные платежи - это регулярные платежи, не требующие подтверждения владельца карты. При первом платеже клиент даёт своё согласие на последующие списания, и они происходят автоматически.

Такие платежи также известны как безакцептные списания, автоплатежи.

Принцип работы

  1. Клиент оплачивает покупку, разрешает запомнить данные банковской карты и соглашается с условиями рекуррентных платежей.
  2. В обозначенный срок (по заданному расписанию) деньги списываются с карты покупателя.
  3. На электронную почту клиента поступает уведомление, в котором должна быть указана следующая информация:
    • признак рекуррентной операции;
    • график платежей;
    • время жизни подписки: дата, до которой будут производиться списания.

Варианты реализации

Платформа предоставляет несколько решений для организации безакцептных списаний:

  • первый успешный платеж используется в качестве родительского: указанный в нем источник денежных средств применяется для последующих оплат;
  • покупатель привязывает карту к сервису, платформа запоминает ее и использует для следующих платежей.

Родительский платеж

Сценарий с использованием платежной формы мерчанта

Ниже описан сценарий проведения рекуррентного платежа в случае, когда покупка производится с формы оплаты мерчанта (не с формы RBK.money).

  1. Инициировать родительский платеж: создать и оплатить инвойс согласно данной схеме взаимодействия с платформой, но с учетом нижеописанных особенностей.

    В теле запросов к API требуется передать определенные значения указанных в таблице параметров.

    Метод API Параметр Значение
    createPaymentResource paymentToolType CardData
    createPayment payerType PaymentResourcePayer
    createPayment makeRecurrent true
  2. Инициировать рекуррентный платеж: cоздать новый инвойс и оплатить его аналогично данной схеме взаимодействия с платформой, но с учетом нижеописанных особенностей.

    Метод создания токена платежного средства не вызывается, а в теле запросов к API требуется передать определенные значения указанных в таблице параметров.

    Метод API Параметр Значение
    createPayment payerType RecurrentPayer
    createPayment invoiceID Идентификатор родительского инвойса, полученный в п.1 сценария выше
    createPayment paymentID Идентификатор родительского платежа, полученный в п.1 сценария выше
    createPayment makeRecurrent true

Примечания

  • При создании новых рекуррентных списаний технически допускается использовать идентификаторы как исходных родительских инвойса и платежа (п.1 сценария выше), так и предыдущих (п.2 сценария выше).

  • В целях безопасности международные платежные системы могут накладывать ограничения на длительность перерыва между двумя рекуррентными платежами: отказывать в безакцептном списании, если оно было запрошено более чем через N месяцев с момента совершения предыдущего. В связи с этим для каждого рекуррентного списания можно использовать идентификатор предыдущего платежа, а не самого первого (родительского).

Сценарий с использованием платежной формы RBK.money

См. описание сценария, в котором оплата производится с платежной формы RBK.money.

Информация

В параметре data-recurring/recurring HTML/JS API необходимо передать значение true.

Привязанная карта

Сценарий с использованием платежной формы мерчанта

Ниже представлен сценарий проведения рекуррентного платежа в случае, когда привязка карты и покупка производятся с формы мерчанта (не с формы RBK.money).

Сценарий отражает процесс оформления подписки на товар или услугу.

Названия представленных на схеме запросов указывают на конкретные методы платежного API.

Примечания

  • При подтверждении привязки банковской карты должна быть пройдена 3-D Secure аутентификация.
  • Получение, передача, обработка и хранение данных банковских карт влечет за собой необходимость соответствовать определенным стандартам безопасности.
  • На момент написания статьи для одного и того же пользователя (покупателя, customerID) можно создать несколько привязок (customerBindingID). При этом активной будет являться лишь одна (самая последняя по дате создания) привязка. При проведении рекурректного платежа будет использована та банковская карта, с которой была создана последняя привязка.
  • Альтернативный сценарий использования привязанной карты отражен в данной статье.

Сценарий с использованием формы RBK.money

Ниже представлен сценарий проведения рекуррентного платежа в случае, когда привязка карты производится с помощью формы RBK.money.

  1. Создать пользователя, получив в ответ customerID и customerAccessToken, аналогично тому, как это происходит в cценарии с использованием платежной формы мерчанта.

  2. Передать в RBK.money Checkout полученные значения customerID и customerAccessToken.

  3. Открыть покупателю форму для ввода и привязки карточных данных‎. checkout_binding После нажатия на кнопку «‎Привязать»‎/«‎Bind» форма сама выполнит привязку карты.

  4. Проверить готовность совершения для данного пользователя рекуррентных платежей с привязанной карты, аналогично тому, как это происходит в сценарии с использованием платежной формы мерчанта.

  5. Создать и оплатить инвойс аналогично тому, как это происходит в сценарии с использованием платежной формы мерчанта.

Правила и ограничения

  1. Покупатель должен самостоятельно ввести данные банковской карты, дать согласие на их привязку к сервису и совершение безакцептных платежей. Согласие можно получить, разместив checkbox для установки соответствующего флажка.
  2. Необходима возможность по запросу предоставлять данные, подтверждающие согласие покупателя.
  3. На момент написания статьи рекуррентные платежи доступны для оплаты с банковской карты: другие, в том числе токинезированные методы оплаты, не поддерживаются.
  4. В случае получения ошибки проведения рекуррентного платежа создание повторных попыток списания допускается не чаще одного раза в сутки на протяжении не более 31 дня.