# Недоплата

> Клиент перевёл меньше, чем нужно: как CryptoLike держит адрес открытым для доплаты, что показывает remaining_amount и что делать после истечения срока.

Source: https://cryptolike.net/ru/glossary/underpaid-payment
Updated: 2026-09-24

Криптоплатёж, по которому подтверждённые переводы в сумме меньше требуемого: заказ ещё не покрыт, и плательщик должен отправить разницу.

## Как это работает в CryptoLike

CryptoLike ставит платежу статус `underpaid`, когда подтверждённый перевод покрывает меньше `payer_amount`, а нехватка выходит за допуск на недоплату в настройках вашего аккаунта. Платёж остаётся открытым: плательщик может отправить недостающее на тот же адрес до `ttl_expires_at`, а поле `remaining_amount` показывает, сколько именно не хватает. Доплата, закрывающая сумму, переводит платёж в `paid`.

Вам приходит вебхук `invoice.underpaid` с `paid_amount` и `remaining_amount`. Страница оплаты показывает, сколько уже получено, и просит отправить остаток на тот же адрес; QR-код и платёжная ссылка для кошелька содержат уже остаток, а не исходную сумму. Ещё до подтверждения страница сравнивает замеченную в сети сумму с требуемой, так что плательщик сразу видит, что перевёл меньше.

Когда срок оплаты истёк, `underpaid` становится финальным (`is_final: true`, заполнено `expired_at`), а страница предлагает плательщику связаться с продавцом. Полученная часть остаётся на вашем балансе. Решите с клиентом: засчитать её, запросить остаток новым платежом или вернуть выплатой. Средства, пришедшие позже, зачисляются как поздний платёж (`invoice.late_payment`). Небольшая нехватка в пределах допуска считается `paid`. Частая причина — биржа, которая вычитает свою комиссию за вывод из отправляемой суммы; подробнее — [недоплаты в криптоплатежах](https://cryptolike.net/ru/blog/underpaid-crypto-payments).

## Пример

Вебхук CryptoLike `invoice.underpaid` несёт полное текущее состояние платежа, поэтому обработчик может показать клиенту недостающую сумму и крайний срок без дополнительного запроса к API. Значения ниже условные, а названия полей — часть контракта и не меняются. Остаток к доплате всегда берите из `remaining_amount`:

```json
{
  "type": "invoice.underpaid",
  "data": {
    "invoice": {
      "status": "underpaid",
      "ticker": "USDT",
      "payer_amount": "25",
      "paid_amount": "20",
      "remaining_amount": "5",
      "ttl_expires_at": "2026-09-16T12:30:00Z"
    }
  }
}
```
