Create Quote
Retrieve a real-time conversion quote between any two supported currencies: USDT, USDC, Bitcoin, and NGN.
This endpoint allows you to preview the expected rate, amount received, and validity period for a trade between any supported pair (for example USDT ↔ BTC, or NGN ↔ USDT). Quotes can be used to show customers live pricing or to execute a trade with a locked rate.
Endpoint
Full request and response schema: Quotes in the API reference.
For the full request and response schema, see the Create Quote API Reference.
Purpose
Use this endpoint to:
Display current pricing before executing a trade
Evaluate exact cost or return amount for conversions
Fetch trade metadata (fees, expiry, reference) before committing
Re-read a quote you already created with Get Quote by ID, or skip the quote entirely and read indicative pricing from Get Prices
Create Quote Request
parameter | type | required | description |
|---|---|---|---|
base_currency | string | Yes | The base currency for the trade. One of: BTC, USDT, USDC, or NGN |
quote_currency | string | Yes | The quote currency for the trade. One of: BTC, USDT, USDC, or NGN. For naira trades, one side of the pair must be NGN |
side | string | Yes | The side of the trade. One of: buy or sell |
quantity | string | Yes | The amount of base currency to trade, in major units. Example: 0.0001 (BTC) or 5000 (₦5,000) |
Example Request
Example Request (NGN pair) Preview
NGN (naira) trading is being rolled out gradually and is not enabled for all companies yet.
To quote a naira trade, set base_currency to what you are spending and use side: "sell". Here, 5000 means ₦5,000.
Successful Response (200 OK)
Response Fields
field | type | description |
|---|---|---|
id | string | Unique ID for this quote. Use it when executing the trade |
base_currency | string | The base currency for the trade (e.g., BTC) |
quote_currency | string | The quote currency for the trade (e.g., USDT) |
side | string | The side of the trade: BUY or SELL |
quantity | string | The amount of base currency to trade |
price | string | The quoted price per unit of base currency in terms of quote currency |
expires_at | string | ISO 8601 timestamp after which this quote is no longer valid |
created_at | string | ISO 8601 timestamp when the quote was created |
original_quantity | string | The original quantity requested when the quote was created |
consumed_quantity | string | The amount of the quote already used in executed trades |
remaining_quantity | string | The amount still available to trade (original minus consumed) |
is_exhausted | boolean | Whether the quote has been fully consumed. If true, no more trades can use this quote |
exchange | object | Summary of what will be sent and received if the quote is executed |
send_quantity | string | The amount you will send to execute the trade (e.g., 6.91) |
send_currency | string | The currency you will send (e.g., USDT for a BUY order) |
receive_quantity | string | The amount you will receive after the trade (e.g., 0.00010000) |
receive_currency | string | The currency you will receive (e.g., BTC for a BUY order) |
Notes
Quotes are valid for a short time (usually 30 seconds for development and 10 seconds in production)
Use the quoteId in /trading/quotes to ensure price locking
Use the price from the quote when creating the order.
Without quoteId, the trade executes at current market rate
Fees depend on your integration tier (default is 0)
For NGN pairs, one side of the pair must be NGN, amounts are in major units (whole naira), and a quote_id is required at execution — the rate must be locked before funds move
NGN conversions are limited to ₦500–₦10,000,000 per trade and must be enabled on your account before use
Errors
code | message | fix |
|---|---|---|
400 | Invalid asset pair | Use a supported pair (USDT, USDC, BTC, NGN). Naira trades must have NGN on one side |
400 | Missing or invalid amount | Must be a positive number in major units, within any pair limits |
403 | NGN not enabled | Ask Bitnob to enable naira trading on your account |
403 | Insufficient balance | Only applies if pre-balance checks are enabled |
500 | Quote service unavailable | Retry or contact support if persistent |