accuracy) и автовозврат (autorefund).
Две настройки, две разные задачи
Они работают вместе: сначала
accuracy решает, засчитать ли платёж; то, что в допуск не попало,
обрабатывает autorefund.
Допуск (accuracy)
Если включить допуск, счёт, отклонившийся от суммы (недоплата или переплата) не более чем на N %, всё равно станетpaid.
- Диапазон
accuracy_percent— 1–5, кэп 5 %. - По умолчанию допуск ~1 %, а не выключен. Если вы ничего не настраивали, счёт с недоплатой/переплатой
в пределах ~1 % засчитается как
paid. Чтобы требовать ровную сумму (нулевой допуск), нужно явно сохранить настройку выключенной:call("/v1/payment/accuracy/set", {"enabled": False}). - Для конкретного счёта можно перекрыть настройку полем
accuracy_payment_percentвPOST /v1/payment.
paid.
Пришло 9.50 USDT — вне допуска: счёт не закрывается сразу, а ждёт (wrong_amount_waiting) на случай
доплаты, и лишь по истечении срока становится wrong_amount (недоплата).
Автовозврат (autorefund)
Что делать с расхождением, которое не попало в допуск:overpay: true— при переплате (paid_over) вернуть излишек.underpay: true— при истёкшей недоплате (wrong_amount) вернуть полученное.- Оба флага по умолчанию включены.
сумма − наша комиссия − газ. Кто платит комиссию возврата — можно переключить на уровне проекта
(refund-fee-config). Поддержаны EVM, Tron, TON, Solana. Для
Bitcoin/UTXO возврат ручной — через POST /v1/payment/refund.
Как статусы связаны с настройками
Ручное решение по недоплате: /v1/payment/resolve
Автовозврат — политика «по умолчанию». Для конкретного недоплаченного счёта (wrong_amount)
решение можно принять вручную — методом POST /v1/payment/resolve:
action: "accept"— принять частичную оплату: средства остаются у вас, автовозврат для этого счёта отключается. Удобно, когда недоплата копеечная или вы договорились с покупателем.action: "refund"— вернуть недоплату плательщику прямо сейчас, не дожидаясь поллера (или когда автовозврат выключен).
accept — no-op, противоположное действие вернёт
resolution.already_resolved. Если покупатель успел доплатить и счёт стал paid, придёт
resolution.not_underpaid — сверьтесь с /v1/payment/info.
Рекомендации
- Включите небольшой допуск (1–2 %) — это резко снижает число «недоплат» из‑за комиссий и округления, при которых покупатель по факту заплатил почти всё.
- Держите автовозврат включённым, чтобы не разбирать расхождения вручную. Помните про ручной возврат для Bitcoin/UTXO.
- Разрешайте доплату (
is_payment_multiple: trueпри создании счёта), если хотите принимать недоплату частями до истечения срока.