Workflow

Trade Order Flow

How a request for a quote turns into a settled trade. Two API calls from you, then Bitrus settles asynchronously.

1

Request a quote

POST /quotes/ — send the base asset, quote asset, side, and quantity. Bitrus returns a price binding for 60 seconds, plus an id you will pass to the order endpoint.

Request

curl -X POST https://api.bitrus.com/api/v1/quotes/ \
  -H "Authorization: Bearer $BITRUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "base_asset": "BTC",
    "quote_asset": "USDT",
    "quantity": "0.5",
    "side": "BUY"
  }'

Response

1 keys
"response": {
"data": {
"id": "ad5f2fa3-7f1b-4d0c-9d81-1f2c3cba9c01",
"customer_id": "1b4a17b7-1d5b-4d10-bc71-f1bf68d8daa1",
"base_asset_id": "f6cf65e1-1b6e-4f0a-9c46-1c4b5b86b8a1",
"quote_asset_id": "1140a7f7-2c0b-44b1-8d62-7d52a7d9a312",
"quantity": "0.5",
"side": "BUY",
"price": "67234.50",
"total": "33617.25",
"created_at": "2026-04-27T15:42:18.123456Z",
"expires_at": "2026-04-27T15:43:18.123456Z"
}
}
2

Create the trade order

POST /trade-order/ — pass the quote id and the network you want settlement on. The response includes the deposit address you must fund.

Request

curl -X POST https://api.bitrus.com/api/v1/trade-order/ \
  -H "Authorization: Bearer $BITRUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "quote_id": "ad5f2fa3-7f1b-4d0c-9d81-1f2c3cba9c01",
    "network": "POLYGON"
  }'

Response

4 keys
"response": {
"id": "8b6d2b71-9e0e-4af2-a4f5-cd24e7c1a8a3",
"status": "RECEIVED",
"deposit_address": {
"network": "POLYGON",
"address": "0xe890c5e40375f4787a49cba184e7ee1553f77e6b"
},
"created_at": "2026-04-27T15:42:30.000000Z"
}
3

Fund the deposit address

Send the exact quote total to the returned deposit address from your own wallet. Bitrus does not see the transfer until it confirms on chain.

4

Wait for settlement

The order moves through five statuses. Poll the order id, or rely on the operations email Bitrus sends on key transitions.

Statuses you will see

What each status means and what action, if any, it asks of you.

RECEIVED
The order is persisted. Bitrus has not yet observed your deposit.
Send the exact quote total to the returned deposit address.
WAITING_DEPOSIT
Bitrus is watching the deposit address for an incoming transfer.
Wait — the broadcast may take a few blocks to confirm.
DEPOSIT_RECEIVED
The deposit confirmed on chain. Bitrus has queued the counter-asset payout.
Nothing — the outbound leg is fully automated from here.
ASSET_SENT
The counter-asset transfer has been signed and broadcast.
Wait for chain confirmations.
COMPLETE
Settlement is finished on both legs.
Done. Quote a new trade when ready.

Need just the request and response shape?

The reference pages document every parameter, every response field, and every error these two endpoints can return.