Skip to main content

Автоплатежи

Автоплатеж — это повторяющийся платеж, который автоматически списывается с банковской карты или счета клиента после первой оплаты. Еще его называют рекуррентным платежом.

Автоплатежи удобны, когда нужно оформить подписку. Покупатель привязывает карту или счет и соглашается на регулярное списание, например, по графику раз в месяц. Следующий платеж списывается автоматически без участия покупателя.

Оплата картой

  • Сценарии автоплатежей подходят при оплате через T-Pay и MIR Pay.
  • Параметры, которые передаются в методе ИНИЦИИРОВАТЬ ПЛАТЕЖ, приоритетнее настроек, которые установлены на терминале.

По умолчанию возможность проводить автоплатежи через метод ПОДТВЕРДИТЬ ПЛАТЕЖ отключена. Чтобы ее включить:

  • на DEMO-терминале — напишите на acq_help@tbank.ru;
  • на боевом терминале — обратитесь к своему персональному менеджеру.

Автоплатежи проводятся последовательно в два этапа:

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

Одностадийная оплата

Для проведения родительского платежа:

  1. Вызовите метод ИНИЦИИРОВАТЬ ПЛАТЕЖ с указанием параметров Recurrent=Y и CustomerKey. В параметре OperationInitiatorType в объекте DATA обязательно передайте признак инициатора операции.
  2. Вызовите метод ПОЛУЧИТЬ ВЕРСИЮ 3DS для проверки ожидаемой версии 3DS протокола.
  3. Вызовите метод ПОДТВЕРДИТЬ ПЛАТЕЖ для оплаты заказа. Если нужно, проверьте прохождение 3DS-проверки через метод ПОДТВЕРДИТЬ ПРОХОЖДЕНИЕ 3DS.
  4. Когда клиент оплатит заказ, в уведомлении о статусе AUTHORIZED или CONFIRMED вернется параметр RebillId — он отвечает за последующие повторные списания. Сохраните его.

Для проведения рекуррентного платежа:

  1. Вызовите метод ИНИЦИИРОВАТЬ ПЛАТЕЖ со стандартными параметрами и укажите нужную сумму для списания в параметре Amount. В параметре OperationInitiatorType в объекте DATA обязательно передайте признак инициатора операции">признак инициатора операции. Передавать параметры Recurrent и CustomerKey в этом случае не нужно.

    Вернется параметр PaymentId — сохраните его.

  2. Вызовите метод ПОДТВЕРДИТЬ ПЛАТЕЖ с параметрами RebillId и PaymentId.

    • При успешном сценарии операция перейдет в статус CONFIRMED.
    • При неуспешном — в REJECTED, и покупатель будет перенаправлен на страницу FailURL. ПЕРЕЧЕНЬ КОДОВ ОШИБОК и возможные ОШИБКИ 3DS.

Двухстадийная оплата

Для проведения родительского платежа:

  1. Вызовите метод ИНИЦИИРОВАТЬ ПЛАТЕЖ с указанием параметров Recurrent=Y и CustomerKey. В параметре OperationInitiatorType в объекте DATA обязательно передайте признак инициатора операции.
  2. Вызовите метод ПОЛУЧИТЬ ВЕРСИЮ 3DS для проверки ожидаемой версии 3DS протокола.
  3. Вызовите метод ПОДТВЕРДИТЬ ПЛАТЕЖ для оплаты заказа. Если нужно, проверьте прохождение 3DS-проверки через метод ПОДТВЕРДИТЬ ПРОХОЖДЕНИЕ 3DS.
  4. Когда клиент оплатит заказ, в уведомлении о статусе AUTHORIZED или CONFIRMED вернется параметр RebillId — он отвечает за последующие повторные списания. Сохраните его.

Для проведения рекуррентного платежа:

  1. Вызовите метод ИНИЦИИРОВАТЬ ПЛАТЕЖ со стандартными параметрами и укажите нужную сумму для списания в параметре Amount. В параметре OperationInitiatorType в объекте DATA обязательно передайте признак инициатора операции. Передавать параметры Recurrent и CustomerKey в этом случае не нужно.

    Вернется параметр PaymentId — сохраните его.

  2. Вызовите метод ПОДТВЕРДИТЬ ПЛАТЕЖ с параметрами RebillId и PaymentId. При успешном сценарии операция перейдет в статус AUTHORIZED.

  3. Вызовите метод ПОДТВЕРДИТЬ СПИСАНИЕ для подтверждения платежа.

    • При успешном сценарии операция перейдет в статус CONFIRMED.
    • При неуспешном — в REJECTED, и покупатель будет перенаправлен на страницу FailURL. ПЕРЕЧЕНЬ КОДОВ ОШИБОК и возможные ОШИБКИ 3DS.

Передача признака инициатора операции

Платежным системам нужно знать, кем была инициирована карточная операция. Это особенно важно при проведении операций без 3DS и по сохраненным данным.

За выполнение требований регулятора отвечает параметр OperationInitiatorType в методе ИНИЦИИРОВАТЬ ПЛАТЕЖ. Значение этого параметра содержит признаки того, кем была инициирована операция и какой способ предоставления реквизитов был использован:

  • Сustomer Initiated (CIT), Credential-Captured — оплата инициирована покупателем, реквизиты карты сохраняются для последующих платежей.
  • Сustomer Initiated (CIT), Credential-on-File — оплата инициирована покупателем по сохраненным реквизитам карты. Ранее была проведена операция с сохранением реквизитов (CIT CC).
  • Merchant Initiated (MIT), Credential-on-File, Recurring — повторяющиеся платежи без графика по ранее сохраненным реквизитам карты (CIT CC). Инициированы магазином. Применяется для оплаты коммунальных услуг, услуг связи и прочего. Сумма может быть определена заранее или становится известна перед оплатой.
  • Merchant Initiated (MIT), Credential-on-File, Installment — повторяющиеся платежи по графику по ранее сохраненным реквизитам карты (CIT CC). Инициированы магазином. Применяется для платежей в рассрочку, оплаты страховки в рассрочку и прочего. График платежей должен быть известен покупателю до проведения операции.

При проведении автоплатежа учитывайте взаимосвязь параметра RebillId метода ПОДТВЕРДИТЬ ПЛАТЕЖ cо значениями параметров OperationInitiatorType и Reccurent метода ИНИЦИИРОВАТЬ ПЛАТЕЖ.

Если передавать значения параметров, которые не соответствуют значениям в таблице, вернется ошибка 1126 — «Несопоставимые значения RebillId или Recurrent с переданным значением OperationInitiatorType».

Тип операции и инициаторCredential-Captured (CIT CC)Credential-on-File (CIT COF)Credential-on-File, Recurring (MIT COF R)Credential-on-File, Installment (MIT COF I)
Сценарий операцииСтандартный платеж с созданием родительского рекуррентного платежаРекуррентный платеж, инициированный покупателемРекуррентный платеж, инициированный магазиномРекуррентный платеж, инициированный магазином
OperationInitiatorType12RI
RebillId в
ПОДТВЕРДИТЬ ПЛАТЕЖ
nullnot nullnot nullnot null
Reccurent в
ИНИЦИИРОВАТЬ ПЛАТЕЖ
YNNN
Обязательность CVP2/CVVОбязателен, если не используется 3DSНетНетНет
Обязательность аутентификации 3DSОбязательна, если нет CVP2 или CVVНетНетНет

Через СБП

Автоплатеж через СБП — это повторный платеж, который автоматически списывается с привязанного счета по QR. В отличие от автоплатежей по картам, у автоплатежа по СБП нет родительского платежа — вместо него привязывается счет.

Автоплатежи через СБП работают только по одностадийной схеме оплаты. Для их проведения нужно дополнительно настроить оплату через СБП по API:

  1. В личном кабинете интернет-эквайринга перейдите в раздел Магазины.
  2. На вкладке Способы оплаты в разделе Своя платежная форма включите систему быстрых платежей.

Автоплатежи проводятся последовательно в два этапа:

  1. Привязка счета.
  2. Автоплатеж, когда мерчант списывает деньги со счета без участия покупателя.

Автоплатеж с привязкой счета до оплаты

Перед проведением автоплатежа привяжите счет:

  1. Вызовите метод ПРИВЯЗАТЬ СЧЕТ.
  2. На NotificationURL в уведомлении о привязке счета вернется параметр AccountToken — он будет отвечать за последующие повторные списания. Сохраните его.

    Уведомление с AccountToken придет на URL, который установлен в настройках терминала, а не на переданный в методе ИНИЦИИРОВАТЬ ПЛАТЕЖ.

  3. Проведите платеж через СБП:
    1. Вызовите метод ИНИЦИИРОВАТЬ ПЛАТЕЖ с указанием дополнительных параметров Recurrent=Y и DATA={"QR":"true"} для получения параметра PaymentId.
    2. Вызовите метод ПОДТВЕРДИТЬ ПЛАТЕЖ с параметром AccountToken, который вы сохранили на шаге 2.

Автоплатеж с привязкой счета после оплаты

  1. Вызовите метод ИНИЦИИРОВАТЬ ПЛАТЕЖ с указанием дополнительных параметров Recurrent=Y, DATA={"QR":"true"} и обязательной передачей параметра Description с описанием заказа.
  2. Вызовите метод ЗАРЕГИСТРИРОВАТЬ QR и проведите оплату.
  3. После успешной оплаты в уведомлении или ответе метода ЗАРЕГИСТРИРОВАТЬ QR вернется параметр RequestKey — он отвечает за привязку счета.
  4. Вызовите метод ПОЛУЧИТЬ СТАТУС ПРИВЯЗКИ СЧЕТА и передайте параметр RequestKey из пункта 3. Это нужно для проверки статуса привязки счета клиента по магазину.
  5. На NotificationURL в уведомлении о привязке счета вернется параметр AccountToken — он будет отвечать за последующие повторные списания. Сохраните его.

    Уведомление с AccountToken вернется на URL, который установлен в настройках терминала, а не на переданный в методе

    ИНИЦИИРОВАТЬ ПЛАТЕЖ.
  6. После успешной привязки счета проведите автоплатеж — вызовите метод ПОДТВЕРДИТЬ ПЛАТЕЖ с параметром AccountToken, который вы сохранили на шаге 5.

Особенности привязки счета при наличии нескольких терминалов

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

Описание процесса:

  1. У мерчанта есть терминалы А и Б. Ранее покупатель проводил оплату только по терминалу А.
  2. Мерчант пробует провести автоплатеж по терминалу Б.
  3. Банк проверяет наличие привязки к терминалу Б.
  4. Если привязки к этому терминалу нет, банк проверяет ее наличие на других терминалах мерчанта по идентификатору магазина.
  5. Банк успешно находит привязку по терминалу А и разрешает проведение автоплатежа.

openapi@tbank.ru

АО «ТБанк» использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом. «Cookie» представляют собой небольшие файлы, содержащие информацию о предыдущих посещениях веб-сайта. Если вы не хотите использовать файлы «cookie», измените настройки браузера.