> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.paradigm.co/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.paradigm.co/_mcp/server.

# API Flows

### OB Created

*Taker's* & *Maker's* Perspective:

1. Subscribed to `rfq` WS Channel.
2. Receives WS message with `kind` == `ADDED`, `status` == `ACTIVE`.

### OB Expires

*Taker's* & *Maker's* Perspective:

1. Subscribed to `rfq` WS Channel.
2. Receives WS message with `kind` == `REMOVED`, `status` == `EXPIRED`.

### OB: Quote Created

*Taker's* & *Maker's* Perspective:

1. Subscribed to the `quote`, `quote_status`, and `quote_book` WS Channels.
2. Asynchronously:
   * Receives WS messages on `quote_book` WS Channel with `kind` == `ADDED` and `status` == `OPEN`.
   * *Maker* only, receives WS messages on `quote` WS Channel with `kind` == `NEW` and `status` == `OPEN`.
3. Certain order book validations are performed only asynchronously. In the case of a validation error, the error will be returned on the `quote_status` channel.

### OB: Quote Canceled

*Taker's* & *Maker's* Perspective:

1. Subscribed to the `quote` and `quote_book` WS Channels.
2. Asynchronously:
   * Receives WS messages on `quote_book` WS Channel with `kind` == `REMOVED` and `status` == `CLOSED`.
   * *Maker* only, receives WS messages on `quote` WS Channel with `kind` == `CANCELED` and `status` == `CLOSED`.
3. Certain order book validations are performed only asynchronously. In the case of a validation error, the error will be returned on the `quote_status` channel.

### OB: Matched Quote and Order

*Taker's* Perspective:

1. Subscribed to `quote_book`, `order`, `trade` and `trade_tape` WS Channels.
2. Asynchronously:
   * Receives a single WS message on `order` WS Channel with `kind` == `PENDING_FILL` and `status` == `OPEN`.
   * Receives a WS message on the `quote_book` WS Channel:
     * If Quote is completely consumed `kind` == `REMOVED`.
     * If Quote is partially consumed `kind` == `UPDATED`.
3. Asynchronously:
   * If Trade execution is successful at clearing & settlement:
     * Receives WS messages on `trade` WS channel with `kind` == `CONFIRMATION` for each successful trade execution as part of the Order.
     * Receives WS messages on `trade_tape` WS channel with `kind` == `COMPLETED` for each successful trade execution through Paradigm.
   * If Trade execution is rejected at clearing & settlement:
     * Receives WS messages on `trade` WS channel with `kind` == `REJECTION` for each rejected trade execution as part of the Order.
   * In the event of Successful/Rejected executions at clearing & settlement:
     * Receives WS messages on `order` on WS channel with `kind` == `SUMMARY` and `status` == `CLOSED`.

*Maker's* Perspective:

1. Subscribed to `quote_book`, `quote`, `trade` and `trade_tape` WS Channels.
2. Asynchronously:
   * Receives a single WS message on `quote` WS Channel:
     * If Quote is completely consumed `kind` == `PENDING_FILL` and `status` == `CLOSED`.
       * Also occurs if the Remaining Quantity is below the venue's enforced "Block Size Minimum".
     * If Quote is partially consumed `kind` == `PENDING_FILL` and `status` == `OPEN`.
   * Receives a WS message on the `quote_book` WS Channel:
     * If Quote is completely consumed `kind` == `REMOVED`.
     * If Quote is partially consumed `kind` == `UPDATED`.
3. Asynchronously:
   * If Trade execution is successful at clearing & settlement:
     * Receives WS messages on `trade` WS channel with `kind` == `CONFIRMATION` for each successful trade execution as part of the Order.
     * Receives WS messages on `trade_tape` WS channel with `kind` == `COMPLETED` for each successful trade execution through Paradigm.
     * If a Quote is only partially consumed at execution, meaning there is remaining available quantity:
       * Receives a WS message on the `quote` WS Channel with `kind` == `PARTIALLY_FILLED` and `status` == `OPEN`.
     * If a Quote is only completely consumed at execution, meaning there is NO remaining available quantity:
       * Receives a WS message on the `quote` WS Channel with `kind` == `FILLED` and `status` == `OPEN`.
   * If Trade execution is rejected at clearing & settlement:
     * Receives WS messages on `trade` WS channel with `kind` == `REJECTION` for each rejected trade execution as part of the Order.
     * Receives a WS message on the `quote` WS Channel with `kind` == `CANCELED` and `status` == `CLOSED`.