For the complete documentation index, see llms.txt. This page is also available as Markdown.

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_USDT

Response 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:

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