Fiat to Crypto
An NGN (fiat) deposit paying out POLYGON_USDT (crypto) — the classic on-ramp.
Call Get available currencies
NGN takes deposits over bank and pays out over bank or airtime — airtime is payout-only, so it cannot be the deposit leg. POLYGON_USDT allows both directions, and NGN's pairs includes crypto. So NGN → POLYGON_USDT over bank is legal.
Call Get order limits
depositPaymentChannel: "bank"
depositCurrencyType: "fiat"
depositCurrencyCode: "NGN"
depositCountryIsoCode: "NG"
payoutPaymentChannel: "crypto"
payoutCurrencyType: "crypto"
payoutCurrencyCode: "POLYGON_USDT"
{
"deposit": {
"min": 1556,
"max": 311184,
"minUsd": 1,
"maxUsd": 200,
"step": 1,
"supportsDecimals": false
},
"payout": {
"min": 1,
"max": 200,
"minUsd": 1,
"maxUsd": 200,
"step": 0.000001,
"supportsDecimals": true
}
}The user wants 100 POLYGON_USDT, which is inside the payout window. Check their KYC tier with the KYC flow — pass the amounts so the answer covers this order.
Call Create quote
Set the amount on one leg only. Here it is the payout, because the user asked for a crypto amount.
{
"deposit": {
"paymentChannel": "bank",
"currencyType": "fiat",
"currencyCode": "NGN",
"countryIsoCode": "NG"
},
"payout": {
"paymentChannel": "crypto",
"currencyType": "crypto",
"currencyCode": "POLYGON_USDT",
"amount": 100
}
}To receive 100 POLYGON_USDT the user must deposit 153,128 NGN. Collect the required fields from both legs:
phoneNumberbankCode(from the enum options)bankAccountNumberblockchainWalletAddress
Call Create order
The recipient* details are the agent's account — where the user sends the money. They are not the bankAccountNumber you collected, which is the user's own account and only identifies who is paying.
Call Confirm order
fieldsToConfirmOrder is empty here, so the order ID is all you need.
{
"orderId": "68728fa56ff494df5f39faf5"
}Last updated

