Underpaid Crypto Payments: Causes, Checks and Fixes
A crypto payment arrived short of the invoice. Learn why underpayments happen, how to verify them on-chain, and how merchants can fix and prevent them.
A crypto payment arrived short of the invoice. Learn why underpayments happen, how to verify them on-chain, and how merchants can fix and prevent them.

An underpaid crypto payment is a transaction that reached your address but for less than the invoice required. It is almost never theft or a bug. Most of the time the customer sent the right number, and a fee was taken out of it on the way. The fix is a short, repeatable routine: verify what actually arrived, decide whether to top up or refund, and set up checkout so it happens less often.
This guide covers why payments arrive short, how to check one properly, what to tell the customer, and how to prevent the problem for one-time and recurring invoices.
A crypto invoice asks for a specific amount of a specific coin on a specific network. If the transaction that lands is smaller, the invoice is underpaid. Bitrefill, for example, defines an underpaid order as one where the total amount due was not fully paid.
The gap can be tiny (a few cents) or large (half the order). That difference matters, because it tells you the likely cause:
| Size of the shortfall | Most likely cause |
|---|---|
| A small, round-ish amount, similar across customers | A withdrawal or network fee deducted from the sent amount |
| A fixed percentage | A bridge, swap or custodial service taking a cut |
| A large, irregular amount | The payer typed the amount by hand, split the payment, or paid an old quote |
| Short in value but correct in coin units | The price moved between invoice creation and payment |
None of these require you to assume bad faith. Treat the first reply to the customer as a request for information, not an accusation.
This is the most common cause. Bitrefill lists an incorrect amount and fees deducted by an exchange, custodial wallet or other third party such as a bridge as the reasons a payment comes up short.
Here is how it plays out. A customer owes 100 USDT. They withdraw exactly 100 USDT from an exchange. The exchange charges a withdrawal fee and either subtracts it from the 100 or, on some platforms, requires the fee to be included in the withdrawal amount. Your address receives, say, 99 USDT. The customer sees “100 sent” on their side and is genuinely confused.

The fix on the customer side is to withdraw the invoice amount plus the fee, so the net amount arriving equals the amount due. Our guide to reducing crypto gas fees covers how network choice changes that fee for payers and merchants.
When someone pays from a wallet they control, the network fee is normally added on top by the wallet. When they pay from an exchange, it often is not. For custodial platforms, the fee treatment is set by the platform, not by you or your gateway.
Customers who do not scan the QR code or use the payment link sometimes retype the amount and drop a decimal place. The longer the coin amount (0.00184213 BTC), the easier the mistake.
A quote is a snapshot. If the market moves before the payer sends, the coin amount they send may be worth slightly less than the invoice when it lands. Gateways usually lock a rate for a limited window, and a payment after the window expires is a different case. See our notes on expired crypto payments and on slippage and what you actually net.
Sometimes the customer sent two transactions that together would cover the invoice, but only the first has confirmed. That is not a true underpayment yet, which is why you verify before you reply.
Sending USDT on the wrong network is a different problem from underpaying, and funds may not arrive at all. Our explainer on coins, networks and confirmations shows why those three details must match the invoice.
Before you call something underpaid, rule out that it is still in flight. A pending payment can look like a missing or short one.
Bitcoin.com’s support documentation says a Bitcoin transaction stays pending until a miner includes it in a block, and that low fees or network congestion can delay that. Coinbase’s help center adds that a transaction can wait on the required number of blockchain confirmations, and that high network volume or insufficient fees can slow it down.
BitBox makes a distinction worth passing on to customers: a pending transaction may have zero confirmations, or may be in a block and waiting for more. Its advice is to check the confirmation count and not to pay again just because the first one is slow.
That last point is the one that protects you from overpayments and duplicate refunds. Tell customers plainly: if it says pending, wait and check the transaction ID before sending anything else.
This is the routine we would put in a support playbook. It takes a few minutes once you have the right details.
For the explorer step, keep a short internal list of which explorer to use for each network you accept, so your team does not guess.
There are two clean resolutions. Bitrefill’s guidance for payers is that an underpaid order can be resolved by sending the remaining balance or asking for a refund of what was already paid, following the invoice instructions. The same two options work for merchants.
This is usually the quickest. Send the customer the exact shortfall and the same address, or a fresh payment link for the remaining amount, and mark the order as paid only when the combined confirmed total covers it. Say clearly that the second payment must include any withdrawal fee, otherwise they will end up short again.
If the customer no longer wants the order, or the shortfall is large, return the funds. Because confirmed on-chain transactions cannot be undone, a refund has to be a new, separate transfer back to the payer. That has three practical consequences:
We go through the mechanics in how crypto refunds work at CryptoPayr, and the related rules for late payments in the article on expired payments and refunds as new transfers.
Many merchants set a tolerance: if the shortfall is below a small threshold, they accept the payment as complete, because chasing 40 cents costs more than it recovers. Decide the threshold deliberately, apply it consistently, and check how your gateway handles it before you rely on it. Anything above the tolerance goes through the top-up or refund path.
Thanks for your payment. We received [amount received] on [network] against an invoice of [amount due]. That leaves [shortfall] outstanding. This often happens when an exchange deducts a withdrawal fee from the amount sent. You can either send the remaining [shortfall] to the same invoice, adding any fee on top, or reply with a refund address and we will return the [amount received] as a new transfer. Please do not send the full amount again.
It names the numbers, offers both routes and heads off the duplicate payment.
We look at underpayments from the merchant’s side of the dashboard, and our view is simple: if the same shortfall keeps appearing, the checkout is at fault, not the customers.
People rarely underpay on purpose. They pay from an exchange that quietly subtracts a fee, they retype a long number, or they pick a cheaper network than the one they were quoted. Each of those is predictable, so each can be designed around: show the exact amount and network in large type, make the QR code or payment link the default path, and put a single sentence near the amount that says exchange users should add their withdrawal fee.

The second thing we would tell any merchant is to decide your policy before the first case arrives. Set a tolerance, decide who pays refund fees, and write the customer message once. Support teams that improvise on each underpayment end up with inconsistent answers, and inconsistent answers are what turn a 40-cent problem into a lost customer.
Finally, remember that the person on the other end is often new to crypto. A calm, specific reply that tells them exactly what happened and exactly what to do will keep the sale more often than any technical safeguard.
— Dustin
Prevention beats recovery. These changes remove most cases.
If you also hold funds in the gateway for a period, understand who controls them. Our comparison of custodial and non-custodial gateways explains the trade-off, and our note on how funds and data are protected describes our approach to security.
Recurring payments magnify the problem. A customer who is a few cents short on an invoice one month may be short every month, and an unpaid subscription invoice can trigger a suspension that was never intended.
Some habits help:
For more on getting paid reliably when cards fail, see our piece on crypto payments for SaaS. Freelancers who invoice individually will find the freelancer page more relevant, since one client’s short payment is a visible share of monthly income.
If you accept crypto and want fewer manual corrections, the gateway you use matters. CryptoPayr is a no-KYC crypto payment gateway that supports 110+ cryptocurrencies through hosted checkout, e-commerce plugins, payment links and an API. There are no setup or monthly fees. Pricing is volume-based: the published tiers are Standard at 2%, Growth at 1.5%, Scale at 1% and Enterprise at 0.1%, and there is also a flat fee of $0.10 per payment on the gateway page.
For stores, the e-commerce page shows how checkout is set up. For platforms that pay out sellers or split commissions, see marketplaces and platforms. To start accepting payments, go to CryptoPayr.
Most underpayments close with one message. Escalate when:
In those cases, pause fulfillment, keep a log, and contact your gateway’s support with the invoice ID and the transaction hash. If tax treatment of refunds or write-offs is unclear, ask an accountant who handles crypto in your jurisdiction rather than guessing.
It means the confirmed amount that reached the recipient is lower than the invoice total. The usual reasons are a fee deducted by an exchange or wallet, a manually typed amount, or a price change before payment. The invoice remains open until the balance is paid or the amount received is refunded.
A Bitcoin transaction stays pending until it is included in a block and, for many services, until it has enough confirmations. Low fees and network congestion are the usual causes of delay. Check the confirmation count on a block explorer and avoid sending a second payment while the first is still unconfirmed.
No. Once confirmed, a transaction cannot be reversed. If you decide to return an underpayment, you send a new transfer to a refund address the customer gives you, and you record that transaction against the order.
Many merchants do, within a set tolerance, because chasing very small gaps costs more than it returns. Pick a threshold, apply it to everyone and write it into your terms. Anything above it should go through the top-up or refund route.
Open a free CryptoPayr account and take your first crypto payment the same day.
Get started for free
Send crypto payment alerts to a Discord channel with webhooks: which events to post, what each message should hold, and how to keep it reliable and private.
Crypto payments can't be charged back, so disputes work differently. Learn what merchants and buyers can do: refunds, evidence, scam reports and prevention.
Embed a crypto swap widget with an iframe or SDK: setup steps, security checks, compliance questions and how to choose a widget that fits your site.