К содержимому

Словарь

Переплата

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

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

Отдельного статуса «переплачено» в CryptoLike нет: переплата — это paid с overpaid_amount больше нуля. Вся подтверждённая сумма вместе с излишком зачисляется на ваш баланс, а вебхук invoice.paid содержит overpaid_amount, поэтому ваша система видит разницу в том же событии, которое подтверждает заказ. remaining_amount при этом никогда не бывает отрицательным.

Если на тот же адрес приходит ещё один перевод после paid, CryptoLike тоже его зачисляет и повторно отправляет invoice.paid с увеличенным overpaid_amount. Обрабатывайте каждый event_id один раз и привязывайте выдачу заказа к id платежа: второй invoice.paid по тому же платежу — это не второй заказ. Страница оплаты сообщает плательщику: «Платёж подтверждён. Излишек зачислен продавцу.» — клиент понимает, куда ушла лишняя сумма.

Дальше решаете вы: отгрузите заказ и договоритесь с клиентом об излишке — зачтите его в следующий заказ или верните выплатой на адрес, который назовёт клиент. Обычные причины — сумма, округлённая вручную в большую сторону, и случайно повторённый перевод. Обратная ситуация, перевод меньше нужного, — это недоплата.

Пример

Вебхук CryptoLike invoice.paid при переплате выглядит как обычный подтверждённый платёж, только излишек вынесен в отдельное поле. Сравнивайте с нулём overpaid_amount, а не суммы между собой: так проще и без ошибок округления. Значения ниже условные, а названия полей — часть контракта и не меняются от события к событию:

json
{
  "type": "invoice.paid",
  "data": {
    "invoice": {
      "status": "paid",
      "ticker": "USDT",
      "payer_amount": "25",
      "paid_amount": "30",
      "remaining_amount": "0",
      "overpaid_amount": "5"
    }
  }
}

В документации →

Связанные термины

Читать дальше

Начните с тестового платежа

Создайте аккаунт, попросите у поддержки доступ к тестовой среде и посмотрите, как платёж проходит путь от pending до paid в тестовой сети.