- бизнес-статус — поле
statusв объекте депозита (напримерcheck,process,paid); - on-chain статус — поле
transaction.networkStatus, которое появляется, когда замечена входящая транзакция.
Бизнес-статусы (status)
Допуск недоплаты и доплата (1.4.0)
- Допуск (
accuracyPaymentPercentдепозита → настройка сайта → глобальная): если получено не меньшеexpectedAmount × (1 − N/100), депозит финализируется какpaid, а неwrong_amount. - Доплата (
allowTopUp): при недоплате депозит получаетwrong_amount, но адрес остаётся под мониторингом до конца окна. Каждая новая транзакция на адрес присылает webhookdeposit.topup_detected(opt-in), после подтверждения суммы складываются и приходит повторныйdeposit.finalizedс итоговым статусомpaid/paid_over. Если окно истекло, а сумма так и не набралась — приходитdeposit.underpaidсisFinal=true, средства сметаются по правилам недоплаты.
Поток статусов
Что означает каждый переход
1
check → process
Платформа заметила первую входящую транзакцию на адрес (и memo) депозита. В этот момент
появляется объект
transaction. Срабатывает webhook deposit.tx_detected.2
process → confirm_check
Транзакция набрала требуемое число подтверждений (
transaction.confirmations достигло
transaction.requiredConfirmations). Платформа выполняет финальную сверку фактической
суммы с ожидаемой. Промежуточный статус, webhook не шлётся.3
confirm_check → paid | paid_over | wrong_amount
Депозит финализирован. Исход зависит от суммы:
paid — получено ровно expectedAmount; paid_over — получено больше;
wrong_amount — получено меньше. Срабатывает webhook deposit.finalized.4
check → expired
Истекло окно мониторинга (
expiresAt), а оплата так и не пришла. Срабатывает webhook
deposit.failed.5
check → cancel | fail | system_fail
Депозит отменён (
cancel) либо завершился ошибкой обработки (fail) или внутренней
ошибкой платформы (system_fail). Для fail / system_fail срабатывает webhook
deposit.failed.6
paid* → refund_process → refund_paid | refund_fail
Запущен возврат средств отправителю. По завершении статус становится
refund_paid
(возврат отправлен, срабатывает webhook deposit.refunded) или refund_fail (возврат
не удался, opt-in webhook deposit.refund_failed). Возврат запускается через
POST /v1/public/deposits/{uuid}/refund или оператором в админке — см. Обзор депозитов.paid, paid_over и wrong_amount — все три считаются «оплаченными» исходами. Сравните
transaction.receivedAmount с expectedAmount, чтобы выбрать действие: зачислить клиенту,
вернуть разницу при переплате или запросить доплату при недоплате. Если expectedAmount
равен "0", принимается любая сумма и исход всегда paid.On-chain статусы (transaction.networkStatus)
Появляются внутри объекта transaction, как только замечена входящая tx.
Когда приходят webhooks
См. также Webhooks, Обзор депозитов.