Skip to main content
Coins adds a small set of primitives on top of the Daya API. Shared primitives (customers, funding, webhooks) live there — this page covers only the Coins delta.

Balances

GET /balance returns your USD cash position — available, held, and total. held currently returns "0", so total equals available. GET /wallet/portfolio breaks the position into per-asset holdings with 24h stats.
Coins balances are separate from Stocks and the Business API — value in one product is not automatically available in another.

Trade: quote → order

Trading a coins asset is quote-driven. POST /quote prices a conversion between two assets; POST /orders executes it.
1

Quote

POST /quote with input_asset, output_asset, and exactly one of input_amount / output_amount. Returns an id, a rate, and an expires_at.
2

Execute

POST /orders with the quote id as quote_id. Save one Idempotency-Key for the logical order and reuse it for every retry.
Quote amounts are shown fee-inclusive so you can render real numbers; the taker fee settles as a separate component at execution.

Cash out: FX quote → withdrawal

A fiat withdrawal converts your USD balance to NGN, so it needs a currency quote — separate from the trade quote above. POST /fx/quotes locks a USD→NGN rate; POST /fiat-withdrawals pays it out to a bank account.
1

FX quote

POST /fx/quotes with amount_usd. Returns an id, the USD→NGN rate, and an expires_at.
2

Withdraw

POST /fiat-withdrawals with the bank_account_id and the FX quote id as quote_id.
Quotes expire after a few seconds. An expired quote returns 410 Gone; a reused quote returns 409 Conflict. Request a fresh quote and retry — the price you show a customer is the price they get.

Orders

POST /orders executes a trade quote_id. List them with GET /orders, fetch one with GET /orders/{id}. Each order also carries executed amounts (base_amount, quote_amount), an executed_price, and a fee (with its fee_asset).
The execution venue is never part of the contract — you request the economic result, and Daya routes and settles.

Transactions

GET /transactions is a cursor-paginated statement of money movements — deposits and withdrawals. Trades are not activity here; read them under Orders. Filter with ?direction=in (deposits) or ?direction=out (withdrawals), optionally filter by asset, and pass the returned next_cursor to page. A movement is described by two orthogonal fields — the rail (method) and which way value moved (direction): So bank_transfer + in is a fiat deposit; onchain + out is a crypto withdrawal. Each entry also carries id, asset, amount (native), amount_usd, created_at, and completed_at.

Withdrawals

Coins supports two rails: Both rails report a status: pending · processing · completed · failed.

Response envelope

Every Coins response uses the standard Daya envelope: