Glossary
Overpaid payment
A crypto payment whose confirmed transfers add up to more than the amount due, leaving a surplus beyond the price of the order.
How it works in CryptoLike
CryptoLike has no separate "overpaid" status: an overpayment is paid with overpaid_amount above zero. The whole confirmed sum, surplus included, is credited to your balance, and the invoice.paid webhook carries overpaid_amount, so your system sees the difference in the same event that confirms the order. remaining_amount is never negative.
If another transfer reaches the same address after the payment is paid, CryptoLike credits it as well and sends invoice.paid again with a higher overpaid_amount. Process each event_id once and key your fulfilment on the payment id: a second invoice.paid for the same payment is not a second order. The checkout page tells the payer "Payment confirmed. The surplus was credited to the merchant.", so the customer knows where the extra went.
The next step is yours: ship the order, then settle the surplus with the customer — a credit on the next order, or a payout to an address the customer gives you. Typical causes are an amount rounded up by hand and a transfer repeated by mistake. The opposite case, a short transfer, is an underpaid payment.
Example
A CryptoLike invoice.paid webhook for an overpayment looks like any other confirmed payment, with the surplus in its own field. Compare overpaid_amount with zero rather than comparing amounts yourself. The values below are illustrative; the field names are the contract:
{
"type": "invoice.paid",
"data": {
"invoice": {
"status": "paid",
"ticker": "USDT",
"payer_amount": "25",
"paid_amount": "30",
"remaining_amount": "0",
"overpaid_amount": "5"
}
}
}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.