FAQ
Short answers with pointers to the canonical page — the linked pages are always authoritative.
Authentication
Do I need OAuth2? No. API v2 uses an API key on every endpoint plus a referral token for attribution; OAuth2 exists only in v1 for user-scoped history endpoints. See Authentication.
What is x-referral-token?
Your referral token: it attributes orders/quotes to your account (revenue share, partner terms) and doubles as a credential on /rate/ and /pre_screening/. See Authentication.
Why did a market-data request return 401?
All v2 endpoints — including /currency/, /pair/, /rate/ — require an API key. See Authentication.
Orders
What does side mean?
Crypto swaps use BUY (the default — just omit the field); SELL exists for fiat flows. Don't branch on side in responses to classify orders. See Create Order.
What are withdraw_amount and deposit_amount?
deposit_amount is what the user sends; withdraw_amount is what they receive. Provide whichever the user last edited and the other is calculated. See Create Order.
What are withdraw_address and refund_address for?
withdraw_address (required) is the destination for the swapped funds. refund_address is the user's source address (on the deposit chain) — used for payment detection, compliance screening, and refunds; required for DeFi orders whose destination chain is Solana, Tron, or Bitcoin. See Create Order.
Is deposit_address where users send funds?
Yes — always show it (plus deposit_address_extra_id when present) from the order response. See Payment UI.
What happens if I retry a create request after a timeout?
DeFi: you get 200 with the existing order — safe to retry. CeFi: a retry creates a new order; check for the existing one first. See 201 vs 200.
Can I cancel an order?
An unpaid order: PATCH with {"marked_as_paid": false}. See Update Order.
Is the deposit address the same for every order?
Not guaranteed. Including a refund_address lets deposits be allocated with a stable-address strategy; without it a rotating strategy is used. Always pay the address from the specific order response.
Which Bitcoin address formats are supported? Segwit (recommended) and legacy addresses, standard mainnet — no special wallet requirements.
Why doesn't my DeFi order appear in GET /orders/?
The list endpoint returns CeFi orders only; track DeFi orders individually by unique_reference. See List Orders.
Statuses & tracking
What are the possible order states? Canonical table, flows, and the numeric↔string mapping: Order Lifecycle.
How should I monitor progress?
Poll GET /orders/{unique_reference}/ every 30–60s while active, or use Webhooks. See Order Tracking.
What do payment_window_minutes and fixed_rate_deadline mean?
The user's deposit deadline (not processing time). Countdown logic incl. floating-order semantics: Payment UI.
When is marked_as_paid useful?
Optional accelerator after the user pays (attach the tx hash), or false to cancel. Payments are detected automatically either way. See Update Order.
How long does processing take?
Live statistics: order processing times (from order creation to first withdrawal confirmation). Per-quote estimates: include_eta=true on GET /rate/.
Pricing
How do I get an exact user-facing quote?
GET /rate/?pairs=<pair>&deposit_amount=<amount> — the returned withdraw_amount preview is computed through the order-pricing path. Don't multiply rate yourself. See Rates & Pricing.
What is rate_id and how long does it live?
A quote-snapshot id you pass at order creation to bind validation to the displayed price. TTL is short (see expiration_time_unix); use the refresh-on-submit flow.
Which pairs are tradable right now?
Whatever GET /rate/ returns for your filters. GET /pair/ lists all configured pairs, including temporarily unquotable ones — availability is dynamic and can differ per direction. Unsupported direct pairs are routed automatically; no multi-step swaps needed on your side. See Pairs.
Compliance
What if pre-screening fails?
A failed screen is HTTP 200 with status: "failed" — inform the user and don't retry the same address/IP. See Pre-screening.
Are there transaction limits? Risk-based limits apply but are not published as fixed numbers; verify a concrete transaction via Pre-screening. See KYC/AML.
Realtime
Do you offer webhooks or websockets? Webhooks — yes: Webhooks. WebSocket order streaming is not part of the documented v2 API surface — use webhooks or polling.
Still have questions?
- v2 OpenAPI / Swagger: https://api.n.exchange/docs/v2
- v1 docs (legacy): https://api.n.exchange/docs/
- All inquiries: support@n.exchange