RugWard Pay
Статусы, подтверждения и доказательства оплаты
Жизненный цикл счёта подробно: когда счёт считается оплаченным, что значат недоплата, переплата, поздняя оплата и истечение, как работают возвраты и как поделиться доказательством оплаты.
На этой странице
Жизненный цикл кратко#
open ──(payment seen)──▶ pending ──(enough confirmations, full amount)──▶ paid / overpaid
│ │
│ └─(quote expired + 10 min grace, still short)──▶ underpaid
├─(nothing arrives before expiry)──▶ expired
├─(payment seen only after quote expiry + 10 min)──▶ late
└─(merchant cancels, no payment yet)──▶ canceledСправочник статусов#
| Статус | Метка в панели | Значение | Что делать | Окончательный? |
|---|---|---|---|---|
open | Awaiting payment | Создан; платежей пока не замечено. | Ждать. | нет |
pending | Payment detected, confirming | Платёж замечен, но ещё не подтверждён, или пришла только часть суммы, пока курс ещё зафиксирован (покупатель может доплатить). | Ждать. Пока не отправляйте товар. | нет |
paid | Paid | Подтверждённые платежи покрывают сумму котировки (см. допуск ниже). | Отправляйте товар. | да |
overpaid | Paid (more than requested) | Оплачен, причём более чем на 1% выше суммы котировки. | Отправляйте; при желании верните излишек со своего кошелька. | да |
underpaid | Underpaid | Фиксация курса (плюс 10 минут льготного периода) закончилась, а подтверждено меньше суммы. | Свяжитесь с покупателем: попросите доплатить или верните деньги. | да |
late | Paid after expiry | Платёж пришёл только после истечения котировки плюс 10 минут. | Проверьте сумму и текущий курс и решите: принять, попросить доплату или вернуть деньги. | да |
expired | Expired | Вовремя ничего не пришло. | Создайте новый счёт, если покупатель ещё хочет заплатить. | да |
canceled | Canceled | Вы отменили его до какого-либо платежа. | — | да |
Каждое изменение статуса создаёт одно событие вебхука (invoice.pending, invoice.paid, …). См. Вебхуки.
Когда счёт считается оплаченным?#
Для выбранной покупателем монеты RugWard суммирует подтверждённые платежи, замеченные до истечения котировки плюс 10 минут льготного периода (так что транзакция, отправленная перед самым дедлайном, всё равно засчитывается). Счёт становится:
- paid, когда эта сумма не меньше суммы котировки минус небольшой допуск: уникальная добавка к сумме плюс 0,1% (на случай кошельков, округляющих последние знаки);
- overpaid, когда она превышает сумму котировки более чем на 1%.
Суммы в разных монетах никогда не складываются. В Base, где 0,5% отделяются on-chain, проверяются 99,5%, которые доходят до вас.
Подтверждения#
| Сеть | Требуется |
|---|---|
| Bitcoin | 1 |
| Monero | 10 |
| Ethereum | 12 блоков |
| Base | 30 блоков |
| Arbitrum | 60 блоков |
| BNB Chain | 15 блоков |
| Polygon | 32 блока |
| Solana | уровень finalized |
Как RugWard обнаруживает платежи#
| Монета | Обнаруживается автоматически по | Покупатель также может вставить |
|---|---|---|
| Bitcoin | сканированию вашего адреса на точную уникальную сумму | id транзакции |
| USDC / USDT в EVM-сетях (без сплиттера) | событиям Transfer токена с точной уникальной суммой | хэш транзакции |
| ETH / BNB (без сплиттера) | хэшу транзакции (передаётся автоматически кнопкой кошелька) | хэш транзакции |
| ETH / USDC в Base (сплиттер) | событию Paid сплиттера с reference этой котировки, вашим адресом, токеном и комиссией ровно 0,5% | хэш транзакции |
| SOL / USDC / USDT в Solana | ключу reference Solana Pay | подпись транзакции |
| Monero | id транзакции плюс tx key или вашему view key (две публичные ноды должны совпасть) | id транзакции (+ tx key) |
Встроенные в обнаружение защиты:
- Одна транзакция оплачивает один счёт. Транзакция может быть зачтена только один раз для каждой сети и адреса получателя.
- Без фронтраннинга. Хэш транзакции, вставленный кем-то другим, принимается, только если он совпадает с точной уникальной суммой этой котировки или содержит её reference.
- Без старых транзакций. Транзакция, добытая до создания котировки, не может её оплатить.
- Вставленная транзакция с другой суммой отклоняется с сообщением «Contact the merchant with the transaction id»; продавец урегулирует это вручную.
- Курс вычисляется только на сервере; браузер покупателя никогда не передаёт цену.
Возвраты#
RugWard Pay некастодиальный: деньги уже на вашем кошельке, поэтому RugWard не может ничего вернуть, отменить или оформить чарджбэк. Чтобы вернуть деньги покупателю, отправьте монеты сами со своего кошелька, лучше на адрес, который укажет покупатель (а не автоматически на адрес отправителя: он может принадлежать бирже). Сохраните id счёта и ссылки на транзакции для учёта.
Доказательства оплаты#
У каждого счёта со статусом paid или overpaid есть публичная страница-доказательство, которой можно поделиться: https://rugward.com/pay/proof/<invoice id> (а также JSON по адресу /api/pay/proof/<invoice id>). Она показывает сумму в USD, продавца, время подтверждения, сумму в монете по котировке и курс с источниками цен, адрес получения и каждую подтверждённую транзакцию со ссылкой на обозреватель. Любой может перепроверить эти транзакции в публичном блокчейне.

Страницы-доказательства не индексируются поисковиками. У неоплаченных счетов доказательства нет (404).
Истечение сроков подробно#
- Истечение счёта (от 15 минут до 7 дней): после него зафиксировать новый курс нельзя.
- Истечение котировки (фиксации курса): через 30 минут после выбора монеты покупателем. Если осталось меньше 5 минут, повторный выбор той же монеты фиксирует новый курс.
- Льготный период: платежи, замеченные в течение 10 минут после истечения котировки, засчитываются как обычно.
- Счёт переходит в expired, только когда и сам счёт, и его последняя котировка (плюс льготный период) закончились без платежа.
Обновлено: 30 октября 2026 г.