Skip to content
Crypto checkout · 14 min

Crypto Payment Problems: Underpaid, Expired or Wrong Chain

The five states an order can land in, why an exchange withdrawal so often arrives short, what the 48-hour recovery sweep actually recovers — and the one mistake nobody can undo.

Published Aug 29, 2026
← All entries
Contents · 22

Every crypto checkout in the world has the same shape: an address, an amount, and a clock. Almost everything that goes wrong goes wrong in the gap between what your wallet sent and what those three things expected. Sending slightly too little is the single most common failure, it is almost never your arithmetic, and it is recoverable. Sending on the wrong chain is far rarer and is the one failure nobody can undo.

This guide is about the payment, not the code. If you have already been delivered a gift card and it will not redeem, that is a different problem with a different cause — our redemption troubleshooting guide covers it. What follows is everything that can happen between the moment you press Pay and the moment the order flips to confirmed, in the order of how often it actually happens.

What the checkout is doing while the clock runs

When you choose a coin, three things are created at once. A deposit address is generated for your order and nothing else. A quote is taken — the price of the card in that coin at that second — and held. And a countdown starts, which is how long that quote is held for.

From that moment the address is watched continuously. Watching starts on broadcast, not on confirmation: the second your wallet pushes the transaction into the network, the payment page sees it and switches from "waiting" to "confirming". You do not need to send a hash, paste a receipt, or tell anybody anything. There is no account, so there is nothing to log into and nothing to attach a payment to by hand.

The countdown is a quote expiry, not a deadline on your money. This distinction is the source of most of the panic in this whole subject, so it is worth stating plainly: when the clock hits zero, the price is no longer guaranteed. Your coins are not gone, not burned, not lost. They are simply arriving against a quote that has lapsed, and there is a separate mechanism — described further down — that picks them up.

The five states an order can be in

The payment page shows exactly one of five states, and it changes them live without you refreshing. Knowing which one you are in tells you whether to act or to wait.

StateWhat it meansWhat you should do
PendingAddress created, nothing seen on chain yet. The clock is running.Send, or close the tab and start again later. Nothing is owed.
ConfirmingYour transaction was seen in the mempool. The network is confirming it.Nothing. Close the page if you like — delivery goes to your email.
Partial payment detectedReal funds landed, but less than the quote requires. The order is paused.Send the shortfall to the same address, or ask for the balance back.
Window closedThe quote lapsed before a deposit confirmed.If you sent nothing, start fresh. If you sent late, wait for the sweep.
ConfirmedEnough confirmations. The code is being issued.Watch your inbox — median is eleven minutes end to end.

The gap between "confirming" and "confirmed" is chain work, not our queue, and it is entirely determined by the coin you picked. That timeline is broken down minute by minute in how eleven-minute delivery actually works.

Underpayment is a withdrawal fee, not a mistake

Here is the failure that accounts for most paused orders, and the reason is so mundane it is almost disappointing: you told your exchange to send 0.00184 BTC, and your exchange sent 0.00184 BTC minus its withdrawal fee.

Every custodial exchange handles this differently, and almost none of them make it obvious on the confirmation screen. Some deduct the network fee from the amount you typed. Some add it on top and debit your balance for the total. Some let you choose, buried behind a toggle. If yours deducts, the invoice asked for a number and received that number minus somewhere between a few cents and thirty dollars — and an invoice that expects an exact amount reads that as a partial payment, because that is precisely what it is.

The same thing happens in a second, quieter way with token transfers. Send USDT on Ethereum and the gas is paid in ETH, so the USDT arrives whole; send it from a platform that nets its own service charge out of the token amount and it does not. The chain is not the variable here. The sender's fee policy is.

There is a third variant that catches careful people. Wallets with a "send max" or "sweep" button compute the largest amount that fits after fees, which is a genuinely useful feature for emptying an address and a terrible one for paying an invoice, because the resulting number is whatever is left over rather than the number you were asked for.

How a partial payment is actually resolved

When a deposit lands short, the payment page does not fail. It reveals a panel headed Partial payment detected that shows three numbers: received so far, total required, and the difference. The deposit address stays live and stays yours.

You then have two routes, and both of them end with you whole:

  1. Top up. Send the shortfall to the same address. The watcher adds deposits together, so a 0.00003 BTC follow-up against a 0.00003 BTC gap completes the order and it proceeds normally. Do this while the quote is still held and the price you were originally given still applies.
  2. Take it back. Ask for a refund of what actually arrived. It is returned in the coin you sent — never converted — to a wallet address you supply. No code is issued until the full amount confirms, so there is never a state where you have paid partially and received something partially.

The one thing not to do is open a second order and pay that one instead. You now have two live invoices, one funded partially and one funded fully, and untangling them takes a human. Topping up the existing address is faster in every case.

Overpayment is the easy one

Sending too much is rarer and much less interesting. The order is funded, so it proceeds immediately and the code is issued at the price you were quoted. The surplus is refunded to a wallet address you provide, in the same coin.

Overpayment usually comes from rounding up by hand — typing 0.0019 because 0.00184 looked fussy. It costs you a refund round-trip and its network fee, which on Bitcoin is worth more than the rounding you were avoiding. Copy the amount with the button rather than retyping it and this category disappears entirely.

The clock ran out and you had already sent

This is the state that reads as catastrophic and almost never is. Bitcoin at a busy hour can sit unconfirmed for longer than the quote is held; a bank-hours exchange withdrawal can be queued for manual review; you can simply have walked away mid-payment. The page says the window closed and you have a transaction in the mempool with nowhere obvious to go.

Late deposits are picked up automatically for 48 hours after the window closes. A recovery sweep runs against expired invoices, matches the deposit to the order it was addressed to, and completes it. There is nothing to submit and no form to fill in — the address was only ever generated for your order, so the money identifies itself.

What the sweep does not do is preserve the price. The quote lapsed by definition, so a large move between the send and the sweep is settled rather than ignored. In practice this is the strongest argument for paying stablecoins on a fast chain if you are the kind of buyer who starts a payment and then gets distracted: USDT does not move while you are not looking.

The wrong chain: the failure that does not come back

Everything above is recoverable. This one, generally, is not, and it deserves the bluntest paragraph in this guide: a deposit sent on a network the address does not exist on is not received by anyone. There is no sweep for it, because there is nothing on our side to sweep. The transaction is valid, confirmed and permanent on a chain nobody is watching.

It happens because ticker symbols are shared across chains and withdrawal screens put the network selector below the fold. USDT exists on Ethereum, Tron, Solana, BNB Chain and a dozen others. Every one of those is a different asset with a different address format, and two of them — Ethereum and BNB Chain — use the same address format, which is exactly why that particular mistake is the classic one. The address looks right. It is right, for a chain we are not watching.

Coin at checkoutNetwork to selectAddress starts withConfirmationEasiest way to get it wrong
BitcoinBitcoin mainnetbc1, 1 or 31–2 confs, ~10–30 minWithdrawing BTC as BEP-20 "BTCB"
Tether (TRC-20)TronT1 conf, 90 s – 3 minLeaving the selector on Ethereum
Tether (ERC-20)Ethereum0x~12 blocks, 2–5 minPicking BNB Chain — identical 0x address
EthereumEthereum mainnet0x~12 blocks, 2–5 minSending from an L2 (Arbitrum, Base, Optimism)
MoneroMonero4 or 810 confs, ~20 minRarely wrong — no wrapped XMR to confuse it
LitecoinLitecoinltc1, L or M~2 confs, 5–15 minLegacy 3-prefix addresses from old wallets
SolanaSolanabase58, 32–44 chars~1 conf, 5–30 sConfusing SOL with USDT-on-Solana
TRONTronT1 conf, ~1–3 minSending TRX to a USDT-TRC20 invoice

The payment page always names the network beside the address, and it is worth two seconds of reading before you approve anything. Choosing the coin thoughtfully in the first place also narrows the risk: our ranking of the best coin to buy gift cards with weighs exactly this against fee and speed.

Why the "open in wallet" button sometimes is not there

On some orders the payment page offers a link that hands the address and amount straight to a desktop wallet. On others it shows only a QR code and the address. That is deliberate, and it is one of the few places where withholding a convenience is the safer engineering choice.

The button is withdrawn whenever the payment cannot be expressed in a wallet URI without ambiguity: when a memo or tag is required and no URI scheme carries one; when the address does not match the shape that coin's addresses take; when the recorded network contradicts the coin; when the amount is missing or malformed; or when the amount cannot be converted exactly into the token's smallest unit. Truncating a fraction would send a hair less than asked — which is an underpayment, manufactured by us, on purpose. Better no button.

Tron is the one case where the button never appears at all: TRX and USDT-TRC20 have no standard URI scheme, and the alternatives are wallet-specific web links that would publish your deposit address to a third party. Those two keep the QR and nothing else. Where a desktop wallet is named in the interface — Electrum, Sparrow or Exodus for Bitcoin; Litecoin Core or Electrum-LTC for Litecoin; Monero GUI or Feather for XMR — it is named in a sentence rather than on a button, because a machine registers exactly one handler per URI scheme and three buttons would all do the same thing.

Memo and tag coins

Some chains route every deposit for an entire service through one address and separate customers with a memo, tag or comment field. On those, the memo is the address as far as your order is concerned. A deposit that arrives without it lands in a pool with no marker saying whose it was, and recovering it is a manual, slow, best-effort exercise rather than an automatic one.

None of the eight coins at this checkout — Bitcoin, Monero, Ethereum, USDT on Tron or Ethereum, Litecoin, TRON and Solana — normally require one. If a payment page anywhere ever shows you a memo field, treat it as mandatory even when it is styled as optional, and never send from an exchange that cannot attach one.

Splitting one payment across two transactions

Two deposits to the same address are added together, so a deliberate split does eventually complete an order. It is still the wrong way to pay, for reasons that have nothing to do with arithmetic.

The order only proceeds when the total confirms, which means you have bought the confirmation latency twice and are gated by the slower of the two. On Bitcoin at a busy hour that can cost more than the quote window. You have also paid two network fees to achieve one payment. And if either half is fee-underpriced and sticks in the mempool, the order sits in partial-payment state until it clears. One transaction, exact amount, copied not retyped. Splitting is a recovery tool, not a payment strategy.

Stuck in the mempool: unconfirmed for an hour

A transaction broadcast with a fee below the going rate is not lost, it is queued, and on Bitcoin during a congestion spike that queue can be hours long. The payment page will honestly say "confirming" the entire time, because it saw the broadcast.

You have three options and they are all yours to take, in your wallet, not ours. Wait — fee markets fall as often as they rise, and most stuck transactions clear within a few hours. Bump it, if you enabled replace-by-fee, by rebroadcasting the same transaction with a higher fee. Or push it, by spending the change output back to yourself at a high fee so miners must confirm the parent to collect it. If the whole thing lapses in the meantime, the 48-hour sweep is still behind you.

The structural fix is to stop using a fee-market chain for small time-sensitive payments. A card bought with USDT-TRC20 or Solana confirms in seconds for cents, and neither has a mempool auction to lose.

Paying from an exchange versus paying from your own wallet

Almost every failure above is more likely when the coins leave a custodial exchange, because the exchange sits between your instruction and the chain and applies its own policy to both.

FailureFrom an exchangeFrom your own wallet
Arrives shortCommon — fee policy varies and is rarely explicitRare — you set the amount and the fee separately
Wrong networkThe main source — one dropdown, many chainsNearly impossible — the wallet holds one chain
Arrives after the windowPossible — withdrawals can be batched or held for reviewBroadcast is immediate
Stuck at a low feeUncommon — exchanges usually overpay feesPossible if you set the fee by hand
What the exchange learnsA withdrawal to an address, tied to your verified identityNothing — there is no intermediary to tell

That last row is not a payment failure, but it is the row people underestimate. A withdrawal from a verified account creates a permanent record linking your identity to the address you paid. We ask for an email and nothing else, which means the checkout itself holds almost nothing — but a KYC'd exchange one hop upstream holds plenty. The privacy threat model works through what each party in that chain actually sees, and the comparison with cashing out on an exchange covers the cost side.

Six habits that prevent all of this

  • Copy the amount, never retype it. The copy control gives the exact figure to the exact decimal. Hand-typed amounts round, and rounding is how both underpayment and overpayment happen.
  • Read the network line before approving. It is beside the address on the payment page and in the withdrawal screen. Two seconds here removes the only unrecoverable class of failure.
  • On an exchange, check whether the fee is deducted or added. If it is deducted, increase the amount you type by the fee so the invoice receives what it asked for.
  • Send once. One transaction, full amount. Splitting doubles both fees and confirmation risk.
  • Pick the coin for the situation. Stablecoins on a fast chain for anything time-sensitive, Monero when the privacy matters more than the twenty minutes.
  • Keep the tab open only if you want to. The order lives server-side and the code goes to your email. Closing the page cancels nothing.

Frequently asked questions

I sent slightly too little. Do I lose the order?

No. The order pauses and the payment page shows a partial-payment panel with the exact shortfall. Send that difference to the same address and it completes, or ask for the balance back in the coin you sent. No code is issued until the full amount confirms, so there is no half-delivered state.

The countdown hit zero after I sent. Is my money gone?

No. Late deposits are picked up automatically by a recovery sweep for 48 hours after the window closes, and the address only ever belonged to your order. What is not preserved is the price — the quote lapsed, so the settlement uses the rate at the time it is swept rather than the one you were shown.

I sent USDT on the wrong network. Can it be recovered?

Generally no. A deposit confirmed on a chain the address does not exist on has not been received by anyone here, so there is nothing on this side to return. This is the one failure worth being slow and careful about, and it is why the network is printed next to the address.

Why does my transaction say confirming for an hour?

Because the fee was below the going rate and the transaction is queued in the mempool. Wait it out, bump it with replace-by-fee, or push it with a child-pays-for-parent spend. If the quote lapses first, the 48-hour sweep still applies. Switching to USDT-TRC20 or Solana avoids fee markets entirely.

Can I pay from Binance, Kraken or Coinbase?

Yes, and many people do. Watch two things: the network selector, which is where wrong-chain sends come from, and the fee policy, which is where underpayments come from. Paying from a wallet you control avoids both and leaves no withdrawal record tying your identity to the address.

Do I need to send the transaction hash to prove I paid?

No. The deposit address is generated for your order alone, so an arriving deposit identifies itself. There is no account, no ticket, no proof to submit. Watching begins on broadcast, before the first confirmation.

What if I close the payment page mid-payment?

Nothing changes. The countdown and the watcher run server-side and the code is delivered by email. You can reopen the order from the order lookup with your order number and the email you used at checkout.

Can I get a refund if I simply change my mind?

Before the code is issued, yes — an unfunded or partially funded order can be returned in the coin you sent. After delivery, an unredeemed code can be refunded within 14 days in the original coin. Once a code has been redeemed at the brand, it cannot be reversed. The FAQ sets out each case, and contact reaches a human for anything it does not.

End of entry

Found a region quirk we missed? Tell the desk — /contact.

Stop reading. Start spending.

81 live brands waiting.

Browse the catalog