β Invoices and Underpayments
Our invoice system is designed for flexibility and reliability. Once an invoice is created, customers can pay any amount in the requested currency β underpayments, overpayments, or exact amounts are all accepted. The system tracks and processes all deposits on supported networks, in supported currencies, and above a certain dust threshold. (For full technical details, see the dedicated sections in this integration guide.) This ensures that funds reach the merchant even if the payment does not exactly match the invoice.

We also offer the option of additional callbacks when an invoice amount is covered in full. This is a tailored solution available upon request. In general, merchant conversion and user experience are much better if the merchant responds promptly to any payment, even if it is underpaid.
Invoices play an important role even in this flexible system. They help track the payment intent on the first payment, fix the conversion rate for a certain period for some payment channels, and provide a clear reference for reconciliation. Even though payments may not always match the invoice exactly, having an invoice allows your system and ours to coordinate efficiently. Other parts of this documentation provide detailed explanations of mismatches and particular scenarios merchants may encounter, such as partial payments, overpayments, or currency differences.
In other words, invoice and deposit amounts may, and almost always will, differ!
Realistically, there will always be one reason or another for some sort of discrepancy β whether itβs a technical limitation, a currency conversion, or a small test payment by the customer.
Always verify that via the deposit callback.
Frequently Asked Questions
Q: Why do we allow underpayments?
Underpayments can occur for technical or practical reasons. Swap prices may fluctuate, CEX limitations may apply, or a customer might intentionally send a small amount first to verify the payment process. The system safely records and forwards these transactions to the merchant, even if the invoice isnβt fully covered yet.
Q: What happens if a customer overpays?
Overpayments are accepted and forwarded to the merchant. Attempting to refund overpayments is often costly and slow β merchants can lose tens of percent of funds to network fees, technical costs, or bank commissions. For most merchants, it is easier and more efficient to handle the extra funds on their side rather than initiating a tedious refund process.
Q: Does the invoice have to match exactly?
No. Any transaction by the customer counts toward completing the invoice. This ensures smooth processing and avoids failed transactions due to minor differences.
Q: How is currency handled?
Customers are expected to pay in the invoiced currency. All deposits above the dust threshold on supported networks are tracked and processed accordingly, ensuring that the merchant receives the funds correctly and callbacks are sent in a standard manner.
Q: Can customer ignore the invoiced currency and pay with something else?
Yes. This is an inherent characteristic of crypto payments. Once a wallet address is generated, it is technically possible for anyone to send supported or unsupported tokens to it.
XGateway tracks and processes payments only for supported currencies on supported networks, and sends the appropriate callbacks to the merchant.
Deposits made in unsupported currencies are not automatically processed. In some cases, recovery may be technically possible via our support team (a recovery fee may apply). Due to the large number of existing tokens and networks, it is not feasible to support or automatically handle them all.
Q: How does the callback system work?
Callbacks are sent for any deposit, invoice-based or not, so merchants can react promptly to payments. Additional callbacks for fully covered invoices are available as a tailored option. Prompt reactions improve customer experience and conversion rates.
Last updated