The response includes an
exchangeRateId and expiresAt. Use this ID to execute the on/off-ramp before it expires; attempts after expiry will be rejected.
Locked rates may include a premium or wider spread that depends on the
selected lock duration and market conditions (longer locks typically cost
more). If you don’t require guaranteed pricing, consider using a floating
exchange rate instead.
Process overview
1
Request a locked rate
Request a guaranteed rate with a specified lock-in duration.
2
Receive the rate ID
Get
exchangeRateId plus expiresAt (UTC).3
Execute before expiry
Start the on-ramp or off-ramp using the
exchangeRateId.4
Complete the transaction
The transaction settles at the locked rate.
Create a locked rate
Call/exchange-rates with "type": "locked".You can pass a
partnerFeeId to bake partner fees into the rate.
Request
| Parameter | Type | Required | Description |
|---|---|---|---|
type | string | Yes | Must be "LOCKED". |
sourceCurrency | string | Yes | Currency code to convert from (e.g., BRL, USDC, USDT). |
sourceAmount | string | Yes | Amount in sourceCurrency (string for decimal precision). |
targetCurrency | string | Yes | Currency code to convert to (e.g., USDC, BRL, USDT). |
targetAmount | string | Yes | Desired amount in the targetCurrency. |
timeLock | string | No | Quote validity window: 30s, 1m, or 5m. Default: 30s. |
partnerFeeId | string | No | UUID of the partner fee to apply. If omitted and a default exists, that fee will be used. |
Response
| Field | Description |
|---|---|
id | The exchangeRateId to use when executing the transaction. |
type | Exchange rate type (LOCKED). |
expiresAt | UTC timestamp when the locked quote expires. |
sourceCurrency | Currency being converted from. |
sourceAmount | Amount in source currency. |
targetCurrency | Currency being converted to. |
baseTargetAmount | Target amount before fees. |
baseExchangeRate | Base FX before fees. |
fees | Breakdown of Lumx and partner fees (rate in bps). |
finalTargetAmount | Target amount after fees (guaranteed for the lock window). |
finalExchangeRate | Effective rate including fees. |
Time lock options
30s— 30 seconds (default)1m— 1 minute5m— 5 minutes
Use a locked rate in transactions
Pass theexchangeRateId when creating the transaction. You do not need to include currencies/amounts again; they are derived from the locked quote.
On-ramp (locked)
Request
Response
Off-ramp (locked)
Request
Response
Locked quotes are single-use and must be executed before
expiresAt.Next steps
- Learn about Floating Exchange Rates for guaranteed rates
- Configure Partner Fees for custom fee structures
- Explore On-Ramp Transactions to convert fiat to stablecoins
- Explore Off-Ramp Transactions to convert stablecoins to fiat