Cessio Docs
Guides

Quoting

Submitting, replacing and revoking quotes — and the invariants that 4xx you

Submit

curl -X POST -H "X-API-Key: $API_KEY" -H "content-type: application/json" \
  -d '{"rfqId": "…", "price": "97300.0"}' \
  $API_URL/maker/quotes
  • price — the amount of the pair's quote instrument per 1 unit of the base instrument, positive decimal string. Remember direction is the taker's side: on a SELL RFQ the taker sells base, so you are buying — quote below your reference; on BUY you are selling — quote above.
  • validUntil — optional. Omitted, the desk uses its own quote lifetime (30 seconds unless the desk configures another), capped at the RFQ deadline. Send it when your pricing has a real window; an explicit value in the past or past the deadline is a 409, since silently shortening a commitment you stated on purpose would be worse than the error.

The 200 response is your QuoteDto plus actions — but the quote is not live yet. It arrives unanchored: sign the hashes in actions and submit them in one POST /tx/execute (the sign queue), then wait for quote.anchored before the taker can accept it — typically a couple of seconds. A quote left unsigned dies at its validUntil.

What can go wrong

StatusWhy
400Body failed validation (bad decimal, malformed timestamp)
403Your party is not invited to this RFQ
404RFQ unknown or already closed
409INSUFFICIENT_FUNDS — your free holdings cannot fund the quote (the leg you send, plus the fee in the quote asset) · DUST_TRADE — a leg rounds to zero · deadline passed · an explicit validUntil in the past or past the deadline · your previous quote is already settling
503The ledger is unavailable or busy — retry with backoff

Replace

Posting a second quote on the same RFQ replaces the first: the old quote turns revoked (you'll see quote.status) and its allocations are cancelled on the ledger before the new ones are funded, so the released capital pays for the replacement. There is no partial update — send the full body. A replacement that fails leaves you with no quote on the RFQ (see Quotes live on the ledger).

Revoke

curl -X DELETE -H "X-API-Key: $API_KEY" $API_URL/maker/quotes/$QUOTE_ID

204 on success. 403 if the quote is not yours, 404 if it is gone, and 409 once the quote is accepted and settling — from that point your commitment is locked in.

On this page