Endpoints Overview
Get Quote
Generate a price quote by matching your requested cNGN amount against live orderbook liquidity. The response includes the matched order(s), the resulting stablecoin amount you will receive, and aquoteId you can pass directly to POST /fx/trade. The quote is valid for five minutes.
Quotes expire exactly five minutes after generation. If you pass an expired
quoteId to POST /fx/trade, the request is rejected. Generate a fresh quote and retry.- Request
- Response
string
required
Trading pair in the format
CNGN-TOKEN. Accepted values: "CNGN-USDC" or "CNGN-USDT".string
required
Trade direction. Use
"sell" to exchange cNGN for the quote currency, or "buy" to acquire cNGN by spending the quote currency.string
The cNGN amount to trade, expressed as a human-readable decimal (e.g.,
"50000" means 50,000 cNGN). Provide this or tokenAmount, not both. Minimum is 1,000 cNGN.string
The pair-currency amount to trade, expressed as a human-readable decimal (e.g.,
"37.04" for USDC or "37.04" for USDT). Use this when you want the quote denominated in the pair token instead of cNGN. Provide this or cngnAmount, not both.Execute Trade
Execute an FX trade. Choose from three execution modes depending on how much price certainty and targeting you need.Before calling this endpoint, ensure the cNGN you intend to trade is held in your Fintech Smart Wallet. You can retrieve your smart wallet address from
GET /getfintechwallet.- Mode 1 - Quote (Recommended)
- Mode 2 - Direct
- Mode 3 - Targeted
- Response
Execute against a quote you obtained from
POST /fx/quote. This mode locks in the price shown in the quote and is the safest choice to avoid slippage.string
required
The
quoteId returned by POST /fx/quote. The quote must not be expired (valid for 5 minutes).string
An optional client-generated key to prevent duplicate trade submissions. If you retry a request with the same key and the original trade was accepted, the original trade is returned instead of creating a new one.
Create Market Order
Submit an immediate market order that executes at the current best available price from the orderbook. Market orders skip the quote step and settle based on your auto-signing configuration.Market orders execute against the best available limit order at the time of submission. If orderbook liquidity changes between your request and matching, the final fill price may differ slightly from what you observed in the orderbook stats. Use
POST /fx/quote followed by POST /fx/trade (Mode 1) if exact price certainty is required.- Request
- Response
string
required
Trading pair. Accepted values:
"CNGN-USDC" or "CNGN-USDT".string
required
Trade direction:
"sell" to exchange cNGN for the quote currency, or "buy" to acquire cNGN.string
required
Amount of cNGN to trade, in human-readable format (e.g.,
"50000" = 50,000 cNGN). Your wallet must hold at least this amount.string
On-chain address to receive the output tokens. Defaults to your registered fintech wallet if omitted.
string
Client-generated unique key to prevent duplicate order execution on retry.
Get Trade Status
Retrieve the full details and current status of a single trade. Poll this endpoint to track a trade frompending through to completed or failed.
- Request
- Response
string
required
The
tradeId returned when the trade was created.List Trades
List your fintech’s FX trades with optional filters. Results are paginated using a cursor-based approach withstartAfter.
- Request
- Response
string
Filter by trading pair. Accepted values:
"CNGN-USDC" or "CNGN-USDT".string
Filter by trade direction. Accepted values:
"buy" or "sell". Case-insensitive.string
Filter by trade status. Case-insensitive. See the Trade Status Lifecycle section for all accepted values.
number
Maximum number of trades to return. Defaults to
50; maximum is 100.string
The
tradeId of the last trade in the previous page. Pass this value to fetch the next page of results.Trade Status Lifecycle
Every trade passes through the following statuses as it progresses from submission to final settlement:Status Flow
Common Errors
Additional Notes
All cNGN and stablecoin amounts in request bodies use human-readable decimal notation (e.g.,
"50000" = 50,000 cNGN). All amounts in orderbook fields (price, minAmount, maxAmount, availableLiquidity) use the smallest unit with 6 decimal places. Divide those values by 1,000,000 to convert to human-readable form.Quotes and trade locks both expire after exactly five minutes. Structure your integration to execute the trade immediately after generating a quote, and to poll
GET /fx/trades/status for settlement confirmation rather than relying on synchronous responses.