Skip to main content
Депозит несёт два уровня статуса:
  • бизнес-статус — поле status в объекте депозита (например check, process, paid);
  • on-chain статус — поле transaction.networkStatus, которое появляется, когда замечена входящая транзакция.
Бизнес-статус отвечает за вашу логику (зачислить клиенту, запросить доплату, вернуть средства), а on-chain статус показывает, что именно сейчас происходит с транзакцией в сети.

Бизнес-статусы (status)

СтатусТерминальныйЗначение
checkнетдепозит создан, ждём входящую оплату
processнеттранзакция замечена, набирает подтверждения
confirm_checkнетподтверждения достигнуты, идёт финальная проверка суммы
paidдаоплачено ровно ожидаемой суммой
paid_overдаоплачено больше ожидаемого (переплата)
wrong_amountдаоплачено меньше ожидаемого (недоплата)
expiredдаокно мониторинга истекло без оплаты
cancelдадепозит отменён
failдаошибка обработки депозита
system_failдавнутренняя ошибка платформы
refund_processнетинициирован возврат средств
refund_paidдавозврат отправлен
refund_failдавозврат не удался

Поток статусов

check → process → confirm_check → paid
                                 → paid_over
                                 → wrong_amount

check → expired | cancel | fail | system_fail

paid | paid_over | wrong_amount → refund_process → refund_paid | refund_fail

Что означает каждый переход

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 (возврат не удался).
paid, paid_over и wrong_amount — все три считаются «оплаченными» исходами. Сравните transaction.receivedAmount с expectedAmount, чтобы выбрать действие: зачислить клиенту, вернуть разницу при переплате или запросить доплату при недоплате. Если expectedAmount равен "0", принимается любая сумма и исход всегда paid.

On-chain статусы (transaction.networkStatus)

Появляются внутри объекта transaction, как только замечена входящая tx.
СтатусЗначение
pendingтранзакция создана/замечена, ещё не в блоке
mempoolв мемпуле, набирает подтверждения
confirmedподтверждена сетью
failтранзакция отклонена сетью
Для сетей с детерминированной финальностью (например TON) транзакция может прийти сразу со статусом confirmed и confirmations равным requiredConfirmations — депозит финализируется практически мгновенно. Для EVM-подобных сетей confirmations растёт постепенно от 0 до требуемого порога.

Когда приходят webhooks

СобытиеТриггер
deposit.tx_detectedпервая входящая tx замечена (переход в process)
deposit.finalizedфинализация: paid / paid_over / wrong_amount
deposit.failedfail / system_fail / expired
deposit.refundedrefund_paid
См. также Webhooks, Обзор депозитов.