Underpayment
What happened
Less arrived than quoted, beyond the tolerance band. Usually an exchange deducted its withdrawal fee from the amount sent.
Status
underpaid, with confirmed_amount against expected_amount.1
Ask for a top-up
While the order is still open the address stays valid, and a second transfer that brings it up to the full amount is picked up and added. On the EVM networks that holds for as long as the address is being watched; on TRON it stops once the quote expires.This is a manual conversation today — there is no automatic prompt to the customer. Coming An automatic top-up prompt is designed and not yet built. Roadmap.
2
Fulfil anyway
For a shortfall of a few cents, usually cheaper than the support conversation. Bear in mind that absorbing the shortfall does not move the money: what arrived stays at the payment address rather than sweeping into your pool. A top-up is the only response that also settles it.There is also no way to mark the order done once you’ve settled it with the customer. The row stays under Needs you permanently, so that list only accumulates. Coming A control to close a resolved row is intended. Roadmap.
3
Refund what arrived
From your own wallet, to an address the customer supplies. Refunds.One thing to know before you choose this: when the customer paid by sending to the one-time address on the invoice, the underpaid amount has not reached your pool. We only sweep deposits that fully cover the invoice, so a partial amount sits at that address until someone sweeps it, and refunding first leaves you out of pocket by the amount that arrived. Contact us if you need that sweep done.Nothing sweeps a partial payment on its own, and that is a deliberate choice rather than a missing piece: we won’t settle an order the customer never completed. So don’t wait for an automatic sweep — it isn’t coming. Coming A sweep-and-refund action you can trigger yourself is designed, not yet built — see the Roadmap. Payments made by signing from a connected wallet are already in your pool and are unaffected.
Overpayment
More arrived than quoted. The full amount lands in your pool. Fulfil the order and refund the difference, or credit it, depending on what you sell. Nothing is stuck.Wrong token
The customer sent a token you haven’t enabled — often USDT when you accept USDC, on the right chain. The funds reach the address and surface aswrong_token. They’re recoverable, but not automatically converted, and — like an underpayment — they are not swept into your pool, so they stay at that address until someone sweeps them manually. Contact the customer and either refund from your own wallet in that token, or arrange a correct payment.
Late payment
The quote expired, then the money arrived.On the EVM networks the payment still counts while the address is still being watched. Expiry locks the price, not the address. Each payment address stays monitored for a window set on your pool — 7 days from creation by default, and 7 days at most — and a correct-token deposit that confirms inside it is credited as
expired_paid_late, settles on its own, and is honoured at the price the expired quote locked.Payment with no matching order
Someone paid an address from an old order, or reused one they had saved. The funds aren’t lost — they sit at an address that can only pay your pool — but working out which customer they belong to needs a human. Two related traps. An order showingexpired is not proof nothing happened — the expired label currently outranks a shortfall, so money may have arrived against it. And a payment sent on a network you don’t accept is never observed at all; detection for that case is intended, recovery tooling is not.
Weigh the recovery before you chase it. A manual sweep runs the deposit forward through normal settlement, so the platform fee applies even though the order never completed — on a small balance that can cost more than it returns.
Held for compliance
If you’ve enabled payer screening in enforce mode and a payment trips it, it shows asheld_sanctioned rather than settling silently: the keeper will not sweep it and we stop reconciling it. Sanctions.
A hold is a one-way state today. The deposit leaves automatic reconciliation: it is never swept and it never settles on its own. The money is not lost — it stays at its payment address, still committed to your pool — but nothing moves it from there. There is no release control in your dashboard, and release tooling is not built on our side yet either, so lifting a hold is something we handle case by case: contact us and we will work it through with you. Coming Release tooling is on the Roadmap. In monitor mode nothing is frozen: the decision is recorded and the sweep proceeds.
Address mismatch
Before capturing a payment we independently re-derive your pool and payment addresses and compare them with what our database holds. If they disagree, the payment is flaggedtamper_suspected and capture stops — it is never marked paid or swept, and no settled signal is issued. A pool.tamper_suspected webhook fires, and your dashboard shows it as “On hold — contact support” and counts it under needs-attention.
Like a compliance hold, this is a one-way state today: we stop re-scanning it and it will not settle on its own. The funds are not lost — they are still at an address that commits to your pool — but there is no release control in your dashboard, and release tooling is not built on our side yet either, so clearing a hold means contacting us to review it case by case. Coming Release tooling is on the Roadmap.
Quick reference
In every row the money is safe in the sense that matters most: a payment address commits to your pool, so funds sent to it can only ever move forward to you and can never be redirected. Safe is not the same as settled, though. Only fully covered payments — including overpayments and, on the EVM networks, correct-token late payments inside the monitoring window — are swept into your pool automatically. Underpaid, wrong-token and held deposits sit at their address until someone sweeps them, and there is no dashboard action for that today. Factor that in before you choose to absorb a shortfall or refund a customer from your own wallet.