Get order limits
[GET] /api/v2/order-limits
Returns the min and max order amount for one deposit/payout pair, in both the leg's own currency and USD.
Request query params type:
type QueryParams = {
depositPaymentChannel: PaymentChannel,// required
depositCurrencyType: CurrencyType,// required
depositCurrencyCode: string,// required
depositCarrierCode?: string,// optional
depositCountryIsoCode?: string,// required if depositCurrencyType is fiat
payoutPaymentChannel: PaymentChannel,// required
payoutCurrencyType: CurrencyType,// required
payoutCurrencyCode: string,// required
payoutCarrierCode?: string,// optional
payoutCountryIsoCode?: string// required if payoutCurrencyType is fiat
}Request URL example:
GET /api/v2/order-limits?depositPaymentChannel=bank&depositCurrencyType=fiat&depositCurrencyCode=NGN&depositCountryIsoCode=NG&payoutPaymentChannel=crypto&payoutCurrencyType=crypto&payoutCurrencyCode=CELO_USDTResponse type:
Use step and supportsDecimals to drive your amount input. A fiat leg is usually whole units with step: 1; a crypto leg usually allows decimals. Rounding an amount the wrong way is the most common cause of a rejected Create quote.
Response example:
All zeros means "not tradable right now", and it comes back as 200. The channel and currency-type params are not enum-validated, so a typo, an unsupported pair, or a pair whose providers are all currently unavailable all return 200 with every field set to 0 rather than an error. Treat an all-zero response as a dead end and re-read Get available currencies; do not show 0 to a user as a limit.
How the window is built
Start with the widest range any available provider supports — the lowest minimum and the highest maximum across all matching offers. That range is then narrowed twice: by the limit rules on your account, and by reconciling the two legs against each other so both are satisfiable.
So the number you get is not any single provider's range, and it moves with exchange rates, with provider availability, and with your own limits. Read it again each time the user opens your amount screen rather than caching it.
Last updated

