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

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

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: Вебхук об изменении статуса платежа" %}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.onchainpay.io/ru/api-reference/10recurring_payments.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
