Cessio Docs
Concepts

RFQ lifecycle

From a taker's request to a settled trade — and every dead end on the way

The flow

  1. A taker creates an RFQ: an instrument pair from the catalog (base/quote symbols), a quantity, a direction, a deadline, a set of invited makers, and the desk fee rate (feeBps) stamped at creation time.
  2. Every invited maker receives rfq.created on their stream. Nobody else ever learns the RFQ exists.
  3. Makers post quotes. Each maker holds at most one active quote per RFQ — re-quoting replaces the previous one.
  4. The taker accepts one quote before the deadline and signs its side; once every allocation has landed, the trade settles in one transaction — the accepted quote turns won, every other live quote lost. If the settlement fails, nothing moves: the accepted quote is revoked and the RFQ stays open for another accept until its deadline. Or the RFQ dies: the taker cancels it, or the deadline passes.

Direction

direction is always from the taker's side: SELL means the taker sells the base asset for the quote asset (so the winning maker buys base), BUY means the taker buys base (the maker sells it).

How an RFQ ends (the maker's view)

Stream eventMeaning
rfq.closedThe RFQ is gone — cancelled by the taker, or filled. rfq.closed alone does not say which; your live quote's quote.status does: lost if another maker's trade settled, cancelled if the taker cancelled. You never learn the winning price or who won. It also fires when the deadline passes while a trade is settling — that trade's outcome follows.
rfq.expiredThe deadline passed with no trade.
quote.status: wonYour trade settled; trade.settled carries the proof.

Quote statuses

POST /maker/quotes ──► pending ──► won        (your trade settled)
                              ──► lost       (another maker's trade settled)
                              ──► cancelled  (the taker cancelled the RFQ)
                              ──► expired    (validUntil or the RFQ deadline passed)
                              ──► revoked    (you re-quoted or DELETEd, your unsigned
                                              actions expired, or an accepted trade failed)

While an accepted quote settles, it carries settling: true with status still pending — it is locked: you can no longer revoke it (409).

On this page