What is an exchange rate lock in crypto payments
An exchange rate lock fixes the amount of cryptocurrency the customer must pay for a price set in fiat, for a limited period.
Most businesses price goods in a fiat currency such as US dollars, but customers pay in crypto. Someone has to decide how many BTC, ETH or TON a 100-dollar order costs. An exchange rate lock means the payment system calculates this amount at the current rate when the invoice is created and guarantees it for a set time window.
Without a lock, the amount would change every second, and the customer would never know what to send. With a lock, the payment page shows one exact amount, and if the customer pays it within the window, the order is considered paid in full, regardless of where the market went in the meantime.
The window cannot be infinite. If a customer opens an invoice and pays a day later, the merchant may receive much less value than expected if the coin dropped. That is why invoices with a fiat price expire. Late payments are then handled by specific rules: recalculated at the new rate, treated as partial or reviewed manually.
For stablecoins the lock matters less, since one USDT is roughly one dollar, but it still defines the exact amount. For volatile coins it is essential. Common mistakes are using a long window for volatile coins, not showing the customer the timer, and building your own conversion with a rate source that differs from what the gateway uses, which causes small but annoying mismatches.
In Moonvex, the price can be set in USD or directly in the coin. For USD prices, the amount due is calculated and fixed when the invoice is created.