Чтобы проверить оплату в USDT, не доверяйте скриншоту или сообщению «я отправил». Откройте хэш транзакции в надёжном блокчейн-эксплорере нужной сети и убедитесь, что транзакция успешна, контракт токена соответствует настоящему USDT, адрес получателя совпадает с вашим, сумма соответствует счёту, а перевод набрал необходимое число подтверждений. Считать заказ оплаченным можно только после совпадения всех этих данных.
Скриншот можно отредактировать, использовать повторно или сделать, пока транзакция ещё ожидает обработки. Даже настоящий tx hash сам по себе ничего не доказывает: он может вести на неуспешную транзакцию, другого получателя, неправильную сеть, поддельный токен или старую оплату другого заказа. Источник истины — подтверждённая on-chain транзакция, сопоставленная с реквизитами конкретного счёта.
Краткий чек-лист проверки криптоплатежа
До передачи товара, активации услуги или подтверждения бронирования проверьте:
- Сеть: транзакция находится в той сети, которую согласовали с клиентом.
- Статус: эксплорер показывает успешное выполнение, а не pending, dropped или failed.
- Контракт токена: переведён настоящий USDT или USDC в этой сети, а не токен с похожим названием.
- Получатель: адрес назначения полностью совпадает с вашим платёжным адресом.
- Сумма: полученная сумма закрывает invoice согласно вашей политике недоплат и переплат.
- Подтверждения: транзакция достигла установленного вами порога подтверждений.
- Связь с заказом: этот tx hash ещё не был засчитан в оплату другого счёта.
Если хотя бы один пункт не выполнен или вызывает сомнение, платёж не подтверждён. Скриншот не заменяет отсутствующие данные из блокчейна.
Почему скриншот оплаты ничего не доказывает
Скриншот — это изображение интерфейса, а не запись в блокчейне. Он не подтверждает финальность транзакции, принадлежность текущему клиенту и поступление нужного актива на ваш адрес.
Вводить в заблуждение могут:
- экран подтверждения кошелька до отправки транзакции в сеть;
- pending- или failed-транзакция;
- старая успешная транзакция, выданная за оплату нового заказа;
- перевод другому получателю со скрытым адресом;
- токен с названием и логотипом USDT, но другим контрактом;
- отредактированная сумма, статус или tx hash;
- заявка на вывод с биржи, которая ещё не стала on-chain транзакцией.
Для ручной проверки попросите tx hash, но проверяйте его самостоятельно. Не открывайте незнакомую ссылку на «эксплорер» из сообщения покупателя: скопируйте сам hash и найдите его на известном эксплорере правильной сети.
Как проверить транзакцию USDT по шагам
1. Сначала определите сеть
USDT работает в нескольких сетях. Хэш транзакции имеет смысл только вместе с названием сети, а один и тот же EVM-адрес может использоваться сразу в нескольких EVM-сетях.
Проверьте, в какой сети выставлен счёт: Ethereum, TRON, BNB Smart Chain, Polygon, Arbitrum, Base, Optimism или Solana. Успешный перевод в другой сети не оплачивает исходный invoice, даже если символ токена и адрес визуально совпадают.
Используйте те же эксплореры, на которые GramPayBot ведёт из деталей транзакции:
| Сеть | Эксплорер | Что вставлять в поиск |
|---|---|---|
| Ethereum | Etherscan | Tx hash, начинающийся с 0x |
| Optimism | OP Mainnet Etherscan | Tx hash, начинающийся с 0x |
| BNB Smart Chain | BscScan | Tx hash, начинающийся с 0x |
| Base | BaseScan | Tx hash, начинающийся с 0x |
| Polygon | PolygonScan | Tx hash, начинающийся с 0x |
| Arbitrum | Arbiscan | Tx hash, начинающийся с 0x |
| TRON | TRONSCAN | Хэш TRON-транзакции |
| Solana | Solscan | Подпись Solana-транзакции |
Вставляйте в поиск чистый hash или signature. Если ничего не найдено, сначала уточните сеть у покупателя. Не перебирайте случайные explorer-домены, присланные в сообщении.
2. Убедитесь, что транзакция успешна
Найдите статус транзакции. Формулировка зависит от сети, но должна означать успешное выполнение. Pending означает, что результат ещё не финализирован. Failed, reverted или dropped означает, что ожидаемый перевод не состоялся.
Не путайте внутренний статус вывода на бирже с подтверждением в блокчейне. Биржа может отметить вывод как approved ещё до появления и подтверждения on-chain транзакции.
В Etherscan-подобных эксплорерах сначала смотрите Status, затем Tokens Transferred. В TRONSCAN проверяйте Result и Token Transfers. В Solscan — Status и Token Balance Change. Названия интерфейсных полей могут измениться, но вам нужны два факта: успешное выполнение и реальный перевод токена на ваш адрес.
3. Проверяйте контракт, а не только символ токена
Название и тикер токена не уникальны. Любой человек может выпустить токен с символом USDT, скопировать логотип и отправить большое число монет, не имеющих отношения к Tether USD.
Откройте детали token transfer и сравните contract address с поддерживаемым контрактом USDT в выбранной сети. Для USDC действует то же правило. Символ и логотип помогают отображению, но актив однозначно определяет именно адрес контракта или mint.
В GramPayBot ожидаемая сеть, контракт токена и адрес получателя фиксируются платёжным маршрутом до оплаты. Подробнее — в инструкции по настройке кошельков и сетей.
4. Полностью сравните адрес получателя
Адрес назначения должен совпадать с адресом, который вы контролируете и указали для этой оплаты. Сравнивайте адрес целиком, а не только первые и последние символы, показанные в сокращённом интерфейсе кошелька.
При address poisoning мошенник создаёт активность с внешне похожим адресом, рассчитывая, что пользователь скопирует его из истории. Берите ожидаемый адрес из собственного invoice или настроек проекта, а не из списка последних транзакций.
5. Сравните полученную сумму со счётом
Проверьте сумму в событии token transfer с учётом decimals токена, затем примените вашу заранее определённую политику недоплат и переплат.
Транзакция может быть настоящей и успешной, но не закрывать заказ. Например, перевод 95 USDT не оплачивает счёт на 100 USDT автоматически. Переплата также может требовать ручного решения вместо немедленного исполнения заказа или автоматического возврата.
Для ручных продаж создавайте отдельный invoice до оплаты. В нём сохраняются ожидаемая сумма и контекст заказа, поэтому не приходится восстанавливать договорённости по переписке. См. как создать отслеживаемый криптосчёт.
6. Дождитесь нужного числа подтверждений
Транзакция может появиться в блоке раньше, чем ваша платёжная политика разрешит считать её финальной. Confirmations показывают, сколько блоков или финализированных обновлений сети появилось после транзакции.
Подходящий порог зависит от сети, суммы перевода и риск-политики. Не используйте одно «вечное» число для всех блокчейнов. Применяйте порог, установленный вашей платёжной системой, и сохраняйте заказ в статусе ожидания до его достижения.
7. Свяжите транзакцию только с одним заказом
Одну корректную транзакцию нельзя принимать как доказательство оплаты нескольких заказов. После принятия платежа сохраните tx hash и запретите повторное использование этого hash для другого invoice.
Не определяйте покупателя только по адресу отправителя. Биржи используют общие кошельки для выводов, а клиент может заплатить с другого адреса. Сопоставляйте перевод по сети, токену, получателю, сумме, временному окну и уникальному идентификатору транзакции.
Найденная транзакция ещё не означает оплаченный счёт
Разделяйте следующие состояния:
| Доказательство | Что оно подтверждает | Решение по заказу |
|---|---|---|
| Скриншот или сообщение «отправил» | Покупатель утверждает, что заплатил | Не исполнять |
| Неизвестный или отсутствующий tx hash | Нет независимо проверяемой транзакции | Не исполнять |
| Pending-транзакция | Перевод, возможно, обрабатывается | Ожидать |
| Успешная транзакция с неверным токеном, сетью или получателем | Транзакция существует, но не соответствует invoice | Не отмечать оплаченным |
| Успешная недоплата или неоднозначный перевод | Часть средств могла поступить | Проверить вручную |
| Подтверждённый перевод с полным совпадением данных invoice | Ожидаемый платёж завершён | Отметить paid и исполнить заказ |
«Транзакция найдена», «деньги поступили» и «заказ оплачен» — связанные, но не одинаковые бизнес-состояния.
Когда ручная проверка перестаёт работать
Ручная проверка в эксплорере подходит для редких оплат, но становится ненадёжной, когда несколько клиентов платят одновременно или заказы приходят вне рабочего времени. Сотруднику приходится каждый раз выбирать эксплорер, узнавать настоящий контракт, сравнивать длинные адреса, ждать confirmations и проверять, что hash не использован повторно.
Автоматическая проверка начинается с invoice, созданного до оплаты. Система уже знает ожидаемые сеть, токен, получателя, сумму, срок действия и номер заказа. Она наблюдает за блокчейном, применяет правила подтверждений, отклоняет несовпадения и меняет статус только после выполнения заданных условий.
GramPayBot выполняет это сопоставление, не принимая деньги на свой баланс: покупатель платит напрямую на настроенный кошелёк, а invoice хранит статус и tx hash. Неоднозначные, поздние, неполные и избыточные платежи можно отправить на проверку, а не засчитывать случайному заказу.
Если вы договариваетесь о продажах в чате, используйте сценарий криптооплаты через Telegram, чтобы заменить скриншоты отслеживаемыми счетами. Если ваш сайт уже создаёт заказы, подключите автоматическую криптооплату на сайте и связывайте статус invoice с заказом.
Следующий шаг
Автоматизируйте проверку оплаты на сайте
Создавайте invoice для каждого заказа, отправляйте покупателя на hosted checkout и получайте результат, связанный с заказом.
Приём платежей на сайте →