Glossary
Underpaid payment
A crypto payment whose confirmed transfers add up to less than the amount due, so the order is not covered yet and the payer still owes the difference.
How it works in CryptoLike
CryptoLike marks a payment underpaid when a confirmed transfer covers less than payer_amount and the shortfall is outside your account's underpayment tolerance. The payment stays open: the payer can send the missing part to the same address until ttl_expires_at, and remaining_amount says exactly how much is missing. A top-up that completes the amount turns the payment into paid.
You receive invoice.underpaid with paid_amount and remaining_amount. The checkout page shows how much was received and asks the payer to send the rest to the same address; its QR code and payment URI carry the remaining amount, not the original one. Even before confirmation the page compares the detected amount with the amount due, so the payer sees a short transfer at once.
When the TTL passes, underpaid becomes final (is_final: true, expired_at set) and the page tells the payer to contact the merchant about the partial amount. The received part stays on your balance. Decide with the customer: accept it, ask for the rest in a new payment, or return it with a payout. Funds that arrive later are credited as a late payment (invoice.late_payment). A small shortfall within the tolerance counts as paid. A common cause is an exchange that deducts its withdrawal fee from the amount sent — see underpaid crypto payments.
Example
A CryptoLike invoice.underpaid webhook carries the full current state of the payment, so your handler can show the customer the missing amount and the deadline without another API call. The values below are illustrative; the field names are the contract:
{
"type": "invoice.underpaid",
"data": {
"invoice": {
"status": "underpaid",
"ticker": "USDT",
"payer_amount": "25",
"paid_amount": "20",
"remaining_amount": "5",
"ttl_expires_at": "2026-09-16T12:30:00Z"
}
}
}Related terms
Read next
Start with a test payment
Create an account, ask support for the test environment and see a payment go from pending to paid on a test network.