> For the complete documentation index, see [llms.txt](https://docs.payanyway.ru/marketplace/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payanyway.ru/marketplace/fz-54/primenenie-kontrolno-kassovoi-tekhniki-pri-osushestvlenii-raschetov/formirovanie-cheka-v-kkt-ooo-peienivei/rekurrentnyi-platezh.md).

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

Торговая Площадка (по согласованию) может использовать функционал рекуррентных платежей. Функционал подволяет повторно списывать деньги покупателя, у которого ранее уже проводилась оплата с сохранением карты или СБП.

Запрос на повторную оплату необходимо отправить по адресу:

<https://bpa.payanyway.ru/api/repeat?key=***>

где repeat - это имя метода

key - ключ партнера, будет ему сгенерирован и выдан сервисом ПА ООО "ПЭЙ ЭНИ ВЭЙ"

через json POST следует передать данные:

```
{
  "signature": "***",
  "paymentAmount": 9.00,
  "debitMntAccount": номер счета списания,
  "creditMntAccount": номер счета пополнения,
  "sourceTariffMultiplier": комиссия с продавца,
  "mntTransactionId": "***",
  "customerEmail": "***@***.**",
  "mntSubscriberId": идентификатор покупателя,
  "paymentToken": "0*********",
  "inventory": [
    {"sellerAccount": "30990009",
     "sourceTariffMultiplier": комиссия с продавца,
     "sellerInn": "1234", 
     "sellerName": "ООО Название 1", 
     "sellerPhone": "71234567890",
     "clientTransaction": "N1",
     "productName": "test1",
     "productQuantity": 1, 
     "productPrice": 0.20,
     "productVatCode": 1105,
     "po": "***",
     "pm": "***"},
    {"sellerAccount": "60252006",
     "sourceTariffMultiplier": комиссия с продавца,
     "sellerInn": "5678", 
     "sellerName": "ООО Название 2",
     "sellerPhone": "71234567890",
     "clientTransaction": "N2",
     "productName": "test2", 
     "productQuantity": 2, 
     "productPrice": 4,
     "productVatCode": 1105},
    {"sellerAccount": "30990009",
     "sourceTariffMultiplier": комиссия с продавца,
     "sellerInn": "1234",
     "sellerName": "ООО Название 1", 
     "sellerPhone": "71234567890",
     "clientTransaction": "N3",
     "productName": "test3",
     "productQuantity": 2,
     "productPrice": 0.40,
     "productVatCode": 1105,
     "po": "***",
     "pm": "***"}
  ]
}
```

где:

* **signature** - подпись запроса - должна быть равна md5(debitMntAccount + mntTransactionId + secret). Символ + это конкатенация строк, secret - секретный код партнера, который будет выдан сервисом ПА ООО "ПЭЙ ЭНИ ВЭЙ"
* **paymentAmount** - общая сумма платежа. Десятичный разделитель - точка с двумя десятичными знаками даже если это нули.
* **debitMntAccount** - не обязательный параметр - счет списания в Системе МОНЕТА.РУ - необходимо уточнить в коммерческом отделе. Если не указывается, в сигнатуре вместо него следует оставить пустую строку.
* **creditMntAccount** - счет ПА ООО "ПЭЙ ЭНИ ВЭЙ" в Системе МОНЕТА.РУ, на который необходимо принять денежные средства. Необходимо уточнить в коммерческом отделе.
* **sourceTariffMultiplier** - не обязательный параметр - размер комиссии с продавца в процентах, разделенных на 100, то есть значение 0.015 соответствует 1,5%. Поле sourceTariffMultiplier для позиции является необязательным и если указано перекрывает значение sourceTariffMultiplier указанное для всего документа.
* **mntTransactionId** - уникальный внешний идентификатор транзакции.
* **customerEmail** - e-mail покупателя, на который надо отправить чек от ОФД.
* **mntSubscriberId** - не обязательный параметр при повторном платеже - идентификатор покупателя в учетной системе продавца.
* **paymentToken** - токен рекуррентного платежа, если известен, если не известен, поиск токена будет осуществлем внутри системы по переданному в запросе **mntSubscriberId.**
* **inventory** - номенклатура по поставщикам с указанием данных о поставщиках:
  * **sellerAccount** - номер бизнес-счета продавца в Системе МОНЕТА.РУ.
  * **sellerInn** - ИНН продавца.
  * **sellerName** - название продавца.
  * **sellerPhone** - номер телефона продавца.
  * **clientTransaction** - внешний идентификатор транзакции второго шага (при расщеплении).
  * **productName** - название товара.
  * **productQuantity** - количество товара.
  * **productPrice** - окончательная цена товара с учетом всех скидок и наценок.
  * **productVatCode** - код ставки НДС.
  * **po** - необязательный параметр - объект оплаты.
  * **pm** - необязательный параметр - метод оплаты.

Повторное списание произойдет успешно, если первоначальное списание с сохранением карты или СБП ранее было проведено покупателем успешно (см. метод **invoice**).

Иначе метод **repeat** отдаст ошибку, по которой Торговая Площадка сможет принять решение о том, чтобы повторно принять от покупателя платеж с полным вводом данных карты или через СБП.&#x20;
