> For the complete documentation index, see [llms.txt](https://docs.onchainpay.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.onchainpay.io/ru/api-reference/10recurring_payments.md).

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

Алгоритм взаимодействия с методами из раздела "Рекурренты" и подключения подписчиков к сервису.

1. В личном кабинете, в разделе "Рекурренты" необходимо создать мерчанта
2. На страничке мерчанта будет доступен его идентификатор. Далее в методах API он должен передаваться в обязательном порядке в поле `merchantId`
3. Вызывается метод создания ссылки для привязки платежного метода (create-subscriber-billing-link)
4. Полученную в ответе ссылку необходимо отправить пользователю
5. Пользователь переходит по ссылке и с помощью подключения своего кошелька (web3) привязывает к сервису свой адрес с определенной сетью и токеном
6. После успешного создания платежной связки на указанный `webhookUrl` придет информация о созданной связке

Затем платежную связку можно использовать двумя способами:

* Создать подписку (назначить периодическое списание) - списание фиксированной суммы в указанный период
* Вызывать метод свободного списания - по запросу списать указанную сумму с адреса пользователя

## Схема взаимодействия с API

### Подключение пользователя

{% @mermaid/diagram content="sequenceDiagram
Client ->> Merchant: Запрос платежа
Merchant ->> Onchainpay: Запрос создание платежной связки
Onchainpay ->> Merchant: Ссылка для создания платежной связки
Merchant ->> Client: Ссылка для создания платежной связки

```
Note over Client: Переходит по ссылке
Note over Client: Привязывает свой кошелек

Onchainpay -->> Merchant: Вебхук с данными о платежной связке

Note over Merchant: Сохранить ID платежной связки для дальнейшего взаимодействия" %}
```

### Создание подписки

Автоматическое списание раз в период

{% @mermaid/diagram content="sequenceDiagram
Client ->> Merchant: Выбирает подписку

```
Note over Merchant: Получить доступные платежные связки пользователя
Note over Merchant: Выбрать связку с подходящей монетой/сетью, которую ранее создал пользователь

Merchant ->> Onchainpay: Создание подписки
Onchainpay ->> Merchant: Данные подписки
Merchant ->> Client: Уведомление об успешном создании подписки

Note over Onchainpay: Попытка оплаты с кошелька пользователя

Onchainpay -->> Merchant: Вебхук об изменении статуса подписки
Merchant ->> Client: Уведомление об успешной оплате или об ошибке при оплате" %}
```

### Свободный платеж

{% @mermaid/diagram content="sequenceDiagram
Merchant ->> Onchainpay: Создание платежа
Onchainpay ->> Merchant: Тело платежа

```
Note over Onchainpay: Попытка оплаты с кошелька пользователя

Onchainpay -->> Merchant: Вебхук об изменении статуса платежа" %}
```
