Skip to main content

Base URL

https://external.dev.onboardpay.co

List of endpoints

Trade options

This endpoint provides a list of supported fiat currencies, blockchain networks, payment channels, and transaction limits supported by Onboard. users to configure their trades.
URL
GET /exchange/api/orders/trade-options
Response
{
    "fiats": [
        {
            "name": "Nigerian Naira",
            "isoCode": "NGN",
            "symbol": "NGN",
            "logo": "https://s3.us-west-2.amazonaws.com/country-flags-staging.getonboard.co/NG.png",
            "unicodeSymbol": "₦",
            "transactionLimits": {
                "kyc": {
                    "minSingleTransactionLimit": 86.12310458350001,
                    "maxSingleTransactionLimit": 3444924.18334,
                    "dailyTransactionLimit": 10334772.55002
                },
                "noKyc": {
                    "minSingleTransactionLimit": 86.12310458350001,
                    "maxSingleTransactionLimit": 43061.55229175,
                    "dailyTransactionLimit": 43061.55229175,
                    "maxLifetimeLimit": 43061.55229175
                }
            }
        },
        {
            "name": "US Dollar",
            "isoCode": "USD",
            "symbol": "USD",
            "logo": "https://s3.us-west-2.amazonaws.com/country-flags-staging.getonboard.co/US.png",
            "unicodeSymbol": "$",
            "transactionLimits": {
                "kyc": {
                    "minSingleTransactionLimit": 0.05,
                    "maxSingleTransactionLimit": 2000,
                    "dailyTransactionLimit": 6000
                },
                "noKyc": {
                    "minSingleTransactionLimit": 0.05,
                    "maxSingleTransactionLimit": 25,
                    "dailyTransactionLimit": 25,
                    "maxLifetimeLimit": 25
                }
            }
        },
        ...
    ],
    "networks": [
        {
            "name": "Binance Smart Chain Testnet",
            "networkId": "bsc_testnet",
            "chainId": 97,
            "nativeAsset": "BNB",
            "explorer": "https://testnet.bscscan.com",
            "availableTokens": [
                {
                    "symbol": "BNB",
                    "isNative": true
                },
                {
                    "symbol": "USDT",
                    "isNative": false
                }
            ]
        },
        {
            "name": "Base Sepolia Testnet",
            "networkId": "base_sepolia",
            "chainId": 84532,
            "nativeAsset": "ETH",
            "explorer": "https://sepolia.basescan.org",
            "availableTokens": [
                {
                    "symbol": "ETH",
                    "isNative": true
                },
                {
                    "symbol": "USDC",
                    "isNative": false
                }
            ]
        },
        ...
    ],
    "transactionLimitsConfig": {
        "kyc": {
            "minSingleTransactionLimit": 0.05, // in USD
            "maxSingleTransactionLimit": 2000, // in USD
            "dailyTransactionLimit": 6000 // in USD
        },
        "noKyc": {
            "minSingleTransactionLimit": 0.05, // in USD
            "maxSingleTransactionLimit": 25, // in USD
            "dailyTransactionLimit": 25, // in USD
            "maxLifetimeLimit": 25 // in USD
        }
    },
    "paymentChannels": [
        {
            "paymentChannelId": "BANK_TRANSFER_NIGERIA",
            "name": "Bank Transfer - Nigeria",
            "supportedCurrencies": [
                {
                    "country": "NG",
                    "currency": "NGN"
                }
            ]
        },
        {
            "paymentChannelId": "BANK_TRANSFER_SOUTH_AFRICA",
            "name": "Bank Transfer - South Africa",
            "supportedCurrencies": [
                {
                    "country": "ZA",
                    "currency": "ZAR"
                }
            ]
        },
        ...
    ]
}

Explanation of key properties

  • fiats
  • networks
  • transactionLimitsConfig
  • paymentChannels
PropertyDescription
nameFull name of the fiat currency.
isoCodeISO 4217 code representing the currency.
symbolSymbol for the currency.
unicodeSymbolUnicode character for the currency.
logoURL to the flag or icon representing the currency.

Get trade URL

Returns the trade URL for the paramaters provided. The URL retuned in the response can then be used in a browser / web view to start an ONRAMP / OFFRAMP
URL
GET /exchange/api/orders/trade-url&apiKey=onb_test_f284e796ffe4ae3426bddd6f05f098cf&product=web3&tradeType=sell&fiat=NGN&token=USDT&tokenAmount=1&networkId=bsc_testnet&autoselect=true
Response
{
    "tradeUrl": "https://app.dev.onboardpay.co/express/confirm?cexOrderId=51&fiat=NGN&token=USDT&walletAddress=0x0a1756f20c3993eAEaeD87934a6aa95936ac889d&tradeType=Sell&network=bsc_testnet&tokenAmount=1&offerId=d1bf4ad0-22ff-43de-aecb-c0ebfb85bc51&product=WEB3&thirdPartyOrderTradeId=fb34dc78-00e4-463a-8f1b-c617c634b148"
}
See here for a full list of parameters that can be used in the URL.

Start trade

This endpoint can be used in place of Get Trade URL, which returns the trade url in JSON. Instead, the Start trade endpoint automatically resolves to the trade URL. This endpoint is best used to initiate trades within a browser or webview.
https://external.dev.onboardpay.co/exchange/orders/trade?apiKey=<API_KEY>&product=web3&<TRADE_QUERY_PARAMETERS>
See here for a full list of parameters that can be used in the URL.

Sample mobile app integration

For mobile apps, the redirect link can be used within an embedded browser or webview component.
To integrate Connect to your Android app, see the Java and Kotlin snippets below:
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    private WebView webView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webView);
        WebSettings webSettings = webView.getSettings();
        webSettings.setJavaScriptEnabled(true);

        // Load the URL
        webView.loadUrl("https://external.dev.onboardpay.co/exchange/orders/trade?apiKey=<API_KEY>&product=web3&<TRADE_QUERY_PARAMETERS>");
    }
}
To integrate Connect to your iOS app, see the Swift and Flutter snippets below:
import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {
    @IBOutlet var webView: WKWebView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Set the WKWebView navigation delegate
        webView.navigationDelegate = self

        // Load the URL
        if let url = URL(string: "https://external.dev.onboardpay.co/exchange/orders/trade?apiKey=<API_KEY>&product=web3&<TRADE_QUERY_PARAMETERS>") {
            let request = URLRequest(url: url)
            webView.load(request)
        }
    }
}

Get an order’s current price

URL
GET ?apiKey=&product=web3&tradeType=Sell&fiat=NGN&token=USDT&tokenAmount=120299&networkId=bsc_testnet
Response
{
    "price": 1400
}
I