Перейти к основному содержимому

Периодические платежи

О периодических платежах

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

Важно

Данная услуга доступна только по предварительному согласованию.

Для упрощения проведения таких платежей доступны два сценария.

Готовое решение «Подписки»

Функционал сервиса доступен в разделе «Подписки» личного кабинета. Подробная инструкция опубликована в руководстве.

Самостоятельная интеграция

На первом этапе пользователь производит обычный платёж по выставленному счёту. Дополнительно передайте параметр Recurring, который показывает, что платёж нужно будет повторять. После успешной оплаты банковской картой магазин может инициировать повторные списания без участия пользователя. Для этого направляйте запросы на специальный URL, указывая номер счёта, оплаченного на первом этапе, и другие обязательные параметры.

URL для повторных списаний применяется только к дочерним операциям (recurring), а не к первому платежу.

URL запроса

https://auth.robokassa.ru/Merchant/Recurring

Пример запроса с параметром Recurring (материнский платёж)

<form method="POST" action="https://auth.robokassa.ru/Merchant/Index.aspx">
<input type="hidden" name="MerchantLogin" value="demo" />
<input type="hidden" name="InvoiceID" value="154" />
<input type="hidden" name="Description" value="Оплата подписки" />
<input type="hidden" name="SignatureValue" value="9ada9c4f842cdc1163e5e97d0461a1de" />
<input type="hidden" name="OutSum" value="100" />
<input type="hidden" name="Recurring" value="true" />
<input type="submit" value="Оплатить" />
</form>

Пример запроса с параметром PreviousInvoiceID (дочерний платёж)

<form method="POST" action="https://auth.robokassa.ru/Merchant/Recurring">
<input type="hidden" name="MerchantLogin" value="demo" />
<input type="hidden" name="InvoiceID" value="156" />
<input type="hidden" name="PreviousInvoiceID" value="154" />
<input type="hidden" name="Description" value="Оплата подписки" />
<input type="hidden" name="SignatureValue" value="9ada9c4f842cdc1163e5e97d0461a1de" />
<input type="hidden" name="OutSum" value="100" />
<input type="submit" value="Повторить оплату" />
</form>
Важно

Ответ "OK+InvoiceId" на дочерний платёж означает создание операции, но не гарантирует успешное списание средств.

Успешность каждого повторного списания проверяйте через серверные уведомления (ResultURL/ResultUrl2) или XML-интерфейсы.

При передаче номенклатуры используйте рекомендации из раздела «Фискализация», чтобы избежать ошибок.

Параметры запросов

ПАРАМЕТРЗНАЧЕНИЕ
RecurringЭтот параметр показывает, что выставление данного счета будет повторяющимся. Принимает значение true.
PreviousInvoiceID

Магазин передает этот параметр в вызове, направляемом на URL, и указывает в нем номер счета первого платежа в серии повторяющихся платежей. Кроме того, в этом вызове передаются обычные обязательные и необязательные параметры, со следующими исключениями:

  • параметры PreviousInvoiceID и InvoiceID обязательно должны быть указаны в запросе;
  • InvoiceID должен быть сгенерирован магазином. Нельзя передавать пустое значение или 0;
  • параметров IncCurrLabel, ExpirationDate, Recurring не должно быть в запросе;
  • PreviousInvoiceID не включается в формирование контрольной суммы SignatureValue.