Underpayment and overpayment in crypto payments
Underpayment is when a customer sends less than the invoice amount; overpayment is when they send more.
In card payments the processor charges exactly the amount requested. In crypto the customer sends the amount themselves, so it can differ from what was expected. These mismatches are among the most common reasons for support requests in crypto payments.
Underpayments usually happen because an exchange deducted its withdrawal fee from the amount, the customer rounded the number or copied it without all decimals, or paid in two parts from different wallets. Overpayments happen when customers round up, send a fee on top or pay the same invoice twice after not seeing the status update.
A payment system needs clear rules for both cases. For an underpayment, a reasonable approach is to keep the invoice open and give the customer a chance to send the difference to the same address within a time window. For an overpayment, the funds already belong to the merchant’s address, so they should be credited at the actual amount rather than ignored, and the merchant can decide whether to refund the excess.
To reduce mismatches, show the exact amount with a copy button, warn customers paying from exchanges that the fee must not be deducted from the amount, update the status quickly so they do not pay twice, and set a small tolerance only if your business can absorb it. Your backend should rely on the received amount reported by the gateway, not on the invoice amount.
In Moonvex, an underpayment gives the customer time to top up, and an overpayment is credited at the actual amount received.
Most common causes
- exchange withdrawal fee deducted from the amount
- amount rounded or copied without all decimals
- payment split between several wallets
- invoice paid twice