Покупатель уверен, что заплатил. Магазин видит статус «недоплачено» и разницу в сотые доли процента. Дальше — переписка, ручная сверка и потерянный заказ. Это самая частая проблема приёма криптовалюты, и она почти никогда не в покупателе.
Счёт выставлен в долларах, платят криптой. Курс фиксируется в момент выставления, и сумма получается с точностью до минимальной единицы — например, 76.923077 TRX за 10 долларов. Кошелёк покупателя показывает ему 76.92, он отправляет 76.92, не хватает 0.000077.
Если покупатель платит прямо с биржи, часть бирж удерживает комиссию вывода из суммы перевода, а не сверх неё. Человек ввёл 100 USDT, до вас доехало 99. Это уже не копейки, и допуском такое закрывать нельзя — но знать про этот случай нужно, потому что выглядит он так же.
Многие кошельки показывают четыре знака после запятой, а отправляют то, что показали. Сумма 12.500001 превращается в 12.5 — и снова недоплата на единицу.
Покупатель отправил часть, увидел, что не хватило, доплатил. Счёт всё это время в состоянии «недоплачено», и если магазин отменяет такие заказы автоматически через пять минут, второй перевод придёт на закрытый счёт.
Допуск недоплаты — это доля от суммы счёта, в пределах которой платёж считается полным. По умолчанию 0.5%: заказ на 100 USDT закроется при 99.5, а на 10 000 — при 9950.
Допуск считается от суммы счёта, а не фиксированным числом, и это важно. Абсолютный допуск в 5 центов бесполезен на крупных заказах и превращается в скидку 5% на мелких.
underpaid_by. Оплаченный счёт с ненулевым
underpaid_by — это счёт, закрытый по допуску. Сумма видна, её можно
сложить за месяц и решить, устраивает ли такая цена спокойствия.
Покупатель может прислать и больше: ошибся суммой, отправил «с запасом на
комиссию», заплатил дважды. Излишек виден отдельным полем
overpaid_by и не растворяется в балансе.
Вернуть его можно одной кнопкой в кабинете — деньги уйдут на кошелёк, с которого пришёл платёж. Возврат проходит те же проверки, что и обычный вывод: второй фактор, наличие средств, форма адреса.
invoice.underpaid: это не ошибка, а состояние, из
которого заказ ещё может стать оплаченным.