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