# Счета

В данном разделе описаны методы для создания счетов и получения информации о счетах

Функционал счетов позволяет принимать оплату в указанном эквиваленте, а монету и сеть выбирает плательщик

Наример, вы можете создать счет на оплату 100 USD, плательщику будет предложено выбрать\
монету и сеть в которой ему будет удобнее оплатить, например, в USDT, TRX, BNB и других.\
Сумма к оплате пересчитается по курсу автоматически

Вы так же можете при оплате дополнительно указать процент к оплате (поле `insurancePercent`),\
в таком случае плательщику будет показа сумма к оплате 100 USD, но к сумме оплаты, например, в USDT будет равнятся`<СУММА К ОПЛАТЕ> * <КУРС USDT/USD> + <insurancePercent>`\
Пример: вы создали счет на оплату 75 USD и указали `insurancePercent` равным 5. При выборе монеты оплаты, например, USDT (условно примем, что курс USDT/USD 1=1), плательщику будет предложено оплатить 78.75 USDT (5% от 75 = 3.75)

Так же вы можете указать чтобы плательщик оплачивал комиссию сети указав параметр `includeFee: true`.\
В таком случае к конечной сумме оплаты будет добавлена комиссия, выбраной плательщиком, сети

Есть возможность указать процент проскальзывания цены (поле `slippagePercent`).\
Если оно будет указанно, то если плательщик при оплате отправит сумму больше или меньше суммы оплаты на указанный процент, то счет будет считаться закрытым.\
Пример: плательщику надо оплатить 100 USDT, вы указали процент проскальзывания 0.5%.\
В таком случае если плательщик отправит сумму 99.99 USDT (от 99.5 и до 100.5) счет будет считаться исполненным

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

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

```
Note over Client: Выбирает монету/сеть оплаты
Note over Client: Отправляет монеты

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

## Возможные статусы

| Статус      | Описание                                                                 |
| ----------- | ------------------------------------------------------------------------ |
| `INIT`      | Пользователь перешел к оплате                                            |
| `ERROR`     | Ошибка в процессе создания или обработки                                 |
| `PROCESSED` | Исполнен                                                                 |
| `PENDING`   | Ожидаение полной суммы или ожидание подтверждений транзакции в блокчейне |
| `EXPIRED`   | Скрок действия инвойса истек                                             |
| `PARTIAL`   | Частичная оплата                                                         |
| `OVERPAID`  | Счет был оплачен сверх указанной суммы                                   |
| `REJECTED`  | Инвойс отклонен, свяжитесь с поддержкой для уточнения                    |

При изменении статуса или поступлении новой транзакции вам будет отправлен вебхук на указанный при создании ордера URL.

Подробнее о вебхуке можно узнать в разделе **Webhooks**

## Срок жизни счета

Указанный срок жизни счета распространяется на промежут от *создания счета* и до *выбора плательщиком монет и сети для оплаты*

После выбора монеты и сети плательщиком будет создан ордер с максимальным временем жизни доступным выбранной сети.

Подробнее можно узнать в разделе ордеров.
