Submit, modify, and cancel orders through FIX messages
Tag | Name | Description | Type/Values |
---|---|---|---|
11 | ClOrderID | Client order identifier (idempotency) | UUID |
38 | OrderQty | Number of contracts | Integer |
40 | OrdType | Order type | Limit<2> |
54 | Side | Buy/Sell Yes contracts | Buy<1>, Sell<2> |
55 | Symbol | Market ticker | String (e.g., “EURUSD-23JUN2618-B1.087”) |
44 | Price | Price per contract in cents (1-99) | Integer |
Tag | Name | Description | Values |
---|---|---|---|
59 | TimeInForce | Order expiration | Day<0>, GTC<1>, IOC<3>, GTD<6> |
18 | ExecInst | Execution instructions | PostOnly<6> |
126 | ExpireTime | Required if TimeInForce=GTD | UTC Timestamp |
453 | NoPartyIDs | Number of parties (for sub-accounts) | 1 |
448 | PartyID | Sub-account identifier | UUID |
452 | PartyRole | Party role | Customer Account<24> |
2964 | SelfTradePreventionType | Self-trade prevention | TakerAtCross<1>, Maker<2> |
526 | SecondaryClOrdID | Order group ID | UUID |
Tag | Name | Description | When Present |
---|---|---|---|
6 | AvgPx | Calculated average price of all fills on this order | Always |
11 | ClOrderID | ClOrderId identifier provided by the initiator on the last message that made any change to the order this execution report refers to | Always |
14 | CumQty | Total number of contracts filled in this order so far | Always |
17 | ExecID | Unique sequenced identifier for this report message | Always |
31 | LastPx | Price of this (last) fill in cents | Trade only |
32 | LastQty | Number of contracts bought or sold in this report | Trade only |
37 | OrderID | Unique identifier for the order in the Kalshi exchange. Please use this ID when referencing the order for support | Always |
38 | OrderQty | Total number of contracts currently in the order. OrderQty = CumQty + LeavesQty | Always |
39 | OrdStatus | Conveys the current status of the order. This should be read as the status after the event causing this execution report to be sent | Always |
41 | OrigClOrdID | ClOrdID(11) of the previous non-rejected order state | Replaced/Canceled |
44 | Price | Price per contract in cents | When applicable |
54 | Side | Yes or No for the original order | Always |
55 | Symbol | Market ticker for the order | Always |
58 | Text | Human-readable description of the result of the execution report | When applicable |
60 | TransactTime | Timestamp for the event that triggered this execution report | Always |
103 | OrdRejReason | Specifies the rejection reason in case ExecType = Rejected | Rejected only |
126 | ExpireTime | Specifies the expiration timestamp for the order if TimeInForce is Good Till Date. This will return 11:59pm ET if TimeInForce is Day | When applicable |
150 | ExecType | Conveys the reason why this execution report was sent | Always |
151 | LeavesQty | Remaining number of contracts that remains open for further execution on this order | Always |
Tag | Name | Description |
---|---|---|
704 | LongQty | Net Yes position after trade |
705 | ShortQty | Net No position after trade |
136 | NoMiscFees | Number of fees |
137 | MiscFeeAmt | Total fees in dollars |
138 | MiscFeeCurr | Currency (USD) |
139 | MiscFeeType | Exchange Fees<4> |
891 | MiscFeeBasis | Fee unit (always ABSOLUTE<0>) |
880 | TrdMatchID | Unique trade identifier |
1057 | AggressorIndicator | Taker/Maker flag |
Tag | Name | Description |
---|---|---|
1703 | NoCollateralAmounts | Number of collateral changes |
1704 | CurrentCollateralAmount | Delta in cents |
1706 | CollateralType | BALANCE or PAYOUT |
Tag | Name | Description |
---|---|---|
453 | NoPartyIDs | Number of parties (for sub-accounts) |
448 | PartyID | Sub-account identifier |
452 | PartyRole | Customer Account<24> |
"insufficient funds"
"self-trade prevention"
"position limit exceeded"
"order group cancel"
"immediate or cancelled"
Tag | Name | Description |
---|---|---|
11 | ClOrderID | Unique cancel request ID |
41 | OrigClOrdID | ClOrdID of order to cancel |
54 | Side | Must match original order |
55 | Symbol | Must match original order |
Tag | Name | Description |
---|---|---|
37 | OrderID | Exchange order ID |
38 | OrderQty | Must match current total quantity |
Tag | Name | Description |
---|---|---|
11 | ClOrderID | Unique modification request ID |
41 | OrigClOrdID | Previous ClOrdID |
38 | OrderQty | New total quantity |
40 | OrdType | Limit<2> |
54 | Side | Must match original |
55 | Symbol | Must match original |
Tag | Name | Description |
---|---|---|
37 | OrderID | Exchange order ID |
44 | Price | New price (if changing) |
Tag | Name | Description |
---|---|---|
11 | ClOrderID | ID from failed request |
37 | OrderID | Exchange order ID |
39 | OrdStatus | Current order status |
41 | OrigClOrdID | Original order’s ClOrdID |
102 | CxlRejReason | Rejection reason code |
434 | CxlRejResponseTo | Cancel<1> or Replace<2> |
Tag | Name | Description |
---|---|---|
11 | ClOrderID | Unique request ID |
530 | MassCancelRequestType | Cancel for session<6> |
Tag | Name | Description |
---|---|---|
11 | ClOrderID | Request ID |
37 | OrderID | Operation ID |
531 | MassCancelResponse | Success<6> or Rejected<0> |
532 | MassCancelRejectReason | If rejected |