Accept a quote (taker) — atomic DvP settlement
Stages the trade — checks your funding and locks the quote — and answers **202** with `status: "settling"` plus `actions`: your own allocations to sign, one per instrument your legs touch (empty for a desk-signed house taker). Sign them all in one `POST /tx/execute`. One the desk could not queue at once follows as `sign.requested` (and in `GET /tx/pending`): until the outcome, sign what arrives for the trade. The desk adds its fee-receipt allocation and, once every allocation has landed, settles the trade in one transaction. The outcome arrives as `trade.settled` / `trade.failed` on the stream, or read it from `GET /trades` (settled) and `GET /rfq-history` (failed). A failed trade moves nothing; the quote is revoked and the RFQ stays open for another accept until its deadline. Unsigned allocations fail the trade about 11 minutes after the quote's `validUntil`; an action itself expires after 10, and until then the desk queues a fresh one in its place. An accept also drops any unsigned withdrawal of yours — or the maker's — in the trade's instruments, so it cannot spend the holdings the settlement needs: request it again after the outcome.
Stages the trade — checks your funding and locks the quote — and
answers 202 with status: "settling" plus actions: your own
allocations to sign, one per instrument your legs touch (empty for a
desk-signed house taker). Sign them all in one POST /tx/execute. One
the desk could not queue at once follows as sign.requested (and in
GET /tx/pending): until the outcome, sign what arrives for the trade.
The desk adds its fee-receipt allocation and, once every allocation
has landed, settles the trade in one transaction.
The outcome arrives as trade.settled / trade.failed on the stream,
or read it from GET /trades (settled) and GET /rfq-history
(failed). A failed trade moves nothing; the quote is revoked and the
RFQ stays open for another accept until its deadline. Unsigned
allocations fail the trade about 11 minutes after the quote's
validUntil; an action itself expires after 10, and until then the
desk queues a fresh one in its place. An accept also drops any unsigned
withdrawal of yours — or the maker's — in the trade's instruments, so
it cannot spend the holdings the settlement needs: request it again
after the outcome.
Authorization
ApiKeyAuth In: header
Path Parameters
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/quote/string/accept"{ "tradeId": "string", "taker": "string", "maker": "string", "direction": "SELL", "qty": "string", "base": "cbtc", "quote": "usdcx", "price": "string", "fee": "string", "settledAt": "string", "status": "settled", "ledger": { "updateId": "string", "receiptCids": [ "string" ] }, "actions": [ { "id": "string", "kind": "hash", "purpose": "allocate", "description": "Sign your quote 97300 (2/2: USDCx allocation)", "hash": "string", "tradeId": "string", "createdAt": "2019-08-24T14:15:22Z", "expiresAt": "2019-08-24T14:15:22Z" } ]}{ "error": "string", "code": "INSUFFICIENT_FUNDS"}{ "error": "string", "code": "INSUFFICIENT_FUNDS"}{ "error": "string", "code": "INSUFFICIENT_FUNDS"}{ "error": "string", "code": "INSUFFICIENT_FUNDS"}Trade history of the key's party GET
Previous Page
Create an RFQ (taker) POST
Requests quotes for a `base`/`quote` swap from `invitedMakers` (party hints; every invited maker must currently be reachable — a listed but offline maker is a 400). `direction` is from the taker's side: SELL — you sell the base for the quote instrument. `base` / `quote` are catalog symbols (any case). The RFQ expires after `ttlSeconds` unless a trade settles first. You cannot invite yourself.