Skip to main content

New Order Single (35=D)

Example New Margin Order

Order Cancel/Replace Request (35=G)

Used to modify an existing order without canceling it.

Supported Modifications

  • OrderQty: Increase or decrease the quantity. Increasing quantity forfeits queue priority.
  • Price: Change the limit price.

Order Cancel Request (35=F)

Cancel all remaining quantity of an existing order.

Execution Report (35=8)

This message is sent by the exchange to reflect changes to an order’s state.

Order Status (39)

  • New<0>: Active order, no fills
  • Partially Filled<1>: Some quantity filled
  • Filled<2>: Completely filled
  • Canceled<4>: Canceled
  • Replaced<5>: Order modified via Cancel/Replace
  • Pending Cancel<6>: Cancel pending
  • Rejected<8>: Order rejected
  • Pending New<A>: Order pending acceptance
  • Expired<C>: Time-in-force expired
  • Pending Replace<E>: Modification pending
With default settings, expiry-style system cancellations are reported as Canceled&lt;4&gt;. If 21012 (UseExpiredOrdStatus)=Y, expiry-style system cancellations emit Expired&lt;C&gt;.

Order Rejection Reasons (103)

  • Unknown symbol<1>
  • Exchange closed<2>
  • Order exceeds limit<3>
  • Too late to enter<4>
  • Stale order<5>
  • Duplicate order<6>
  • Unsupported order characteristic<11>
  • Incorrect quantity<13>
  • Unknown account<15>
  • Other<99>

Execution Types (150)

  • New<0>
  • Trade<F>
  • Canceled<4>
  • Replaced<5>
  • Rejected<8>
  • Expired<C>
  • Pending New<A>
  • Pending Cancel<6>
  • Pending Replace<E>

Text Field Values (58)

Common values include:
  • EXCHANGE_UNAVAILABLE
  • INTERNAL_ERROR
  • MARKET_ALREADY_CLOSED
  • MARKET_INACTIVE
  • MARKET_NOT_FOUND
  • SELF_CROSS_ATTEMPT
  • ORDER_ALREADY_EXISTS
  • EXCEEDED_PER_MARKET_RISK_LIMIT
  • EXCEEDED_ORDER_GROUP_RISK_LIMIT
  • ORDER_GROUP_NOT_FOUND
  • FOK_INSUFFICIENT_VOLUME
  • POST_ONLY_CROSS
  • ORDER_GROUP_CANCEL
  • TAKER_CANCEL_FOR_SELF_TRADE_PREVENTION
  • MAKER_CANCEL_FOR_SELF_TRADE_PREVENTION
  • IMMEDIATE_OR_CANCELLED

OrderCancelReject (35=9)

Exchange-returned amend and cancel failures are returned as OrderCancelReject (35=9), not ExecutionReport.

Position and Fee Information

When ExecType = Trade:

Collateral Changes

Party Information

Party fields from the original request are echoed in execution reports when a sub-account is involved.

Rejection Reasons (102)

  • Too late to cancel<0>
  • Unknown order<1>
  • Other<99>

Mass Cancel Request (35=q)

Cancel all orders for the trading session. Only available on KalshiNR (NewOrderMode) sessions.

Mass Cancel Report (35=r)

Response to mass cancel request.
Individual ExecutionReports follow for each cancelled order.