> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kalshi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Common Components

> Standard header, trailer, and shared components across all FIX messages

Kalshi's FIX implementation uses **FIXT.1.1** with application version **FIX50SP2**. Members on the Premier tier or above have FIX access by default.

## FIX Dictionary

Download the Kalshi-specific FIX dictionary for import into your FIX engine:

* [Kalshi FIX Dictionary (XML)](https://assets.kalshi.com/fix/kalshi-fix-dictionary.xml)

> [!NOTE]
>
> If you are using a FIX engine such as [QuickFIX/J](https://www.quickfixj.org/), [QuickFIX/N](https://quickfixn.readthedocs.io/), or [quickfix-go](https://github.com/quickfixgo/quickfix), the standard header and trailer fields below are managed automatically by the library. This section is primarily a reference for custom implementations or debugging.

## Standard Header

Every FIX message begins with the following fields:

| Tag | Name | Type | Required | Description |
| - | - | - | - | - |
| 8 | BeginString | String | Y | Always `FIXT.1.1` |
| 9 | BodyLength | Int | Y | Message length in bytes, from the tag after BodyLength up to (but not including) the CheckSum field. Must be the second field. |
| 35 | MsgType | String | Y | Identifies the message type. Must be the third field. |
| 49 | SenderCompID | String | Y | Your FIX API Key (UUID format) when sending; `Kalshi` when receiving. |
| 56 | TargetCompID | String | Y | Session identifier (e.g. `KalshiRT`, `KalshiNR`) when sending; your API key when receiving. |
| 34 | MsgSeqNum | Int | Y | Monotonically increasing sequence number, starting at 1. |
| 52 | SendingTime | UTCTimestamp | Y | Time the message was sent, in UTC. Format: `YYYYMMDD-HH:MM:SS.mmm`. Must be within 30 seconds of server time or the message is rejected (`SessionRejectReason=10`). |
| 43 | PossDupFlag | Boolean | N | `Y` if the message is a possible duplicate of a previously sent message (used during retransmission). |
| 97 | PossResend | Boolean | N | `Y` if the message may contain information that has already been sent under a different sequence number. |
| 122 | OrigSendingTime | UTCTimestamp | N | Original SendingTime of a message being resent. Required when `PossDupFlag=Y`. |

## Standard Trailer

Every FIX message ends with:

| Tag | Name | Type | Required | Description |
| - | - | - | - | - |
| 10 | CheckSum | String | Y | Three-character checksum. Calculated by summing every byte in the message up to (but not including) the CheckSum field, then taking modulo 256. Always three digits, zero-padded (e.g. `007`). |

## Supported MsgTypes

### Session-Level (all sessions)

| MsgType | Name | Direction |
| - | - | - |
| A | Logon | Both |
| 0 | Heartbeat | Both |
| 1 | TestRequest | Both |
| 2 | ResendRequest | Both (KalshiRT, KalshiPT only) |
| 3 | Reject | Server -> Client |
| 4 | SequenceReset | Both (KalshiRT, KalshiPT only) |
| 5 | Logout | Both |

### Application-Level

#### Order Entry

| MsgType | Name | Sessions | Direction |
| - | - | - | - |
| D | NewOrderSingle | KalshiNR, KalshiRT | Client -> Server |
| F | OrderCancelRequest | KalshiNR, KalshiRT | Client -> Server |
| G | OrderCancelReplaceRequest | KalshiNR, KalshiRT | Client -> Server |
| q | OrderMassCancelRequest | KalshiNR | Client -> Server |
| 8 | ExecutionReport | KalshiNR, KalshiRT, KalshiDC | Server -> Client |
| 9 | OrderCancelReject | KalshiNR, KalshiRT | Server -> Client |
| r | OrderMassCancelReport | KalshiNR | Server -> Client |
| j | BusinessMessageReject | All | Server -> Client |

#### Order Groups

| MsgType | Name | Sessions | Direction |
| - | - | - | - |
| UOG | OrderGroupRequest | KalshiNR, KalshiRT | Client -> Server |
| UOH | OrderGroupResponse | KalshiNR, KalshiRT | Server -> Client |

#### Drop Copy

| MsgType | Name | Sessions | Direction |
| - | - | - | - |
| U1 | EventResendRequest | KalshiNR, KalshiDC | Client -> Server |
| U2 | EventResendComplete | KalshiNR, KalshiDC | Server -> Client |
| U3 | EventResendReject | KalshiNR, KalshiDC | Server -> Client |

Historical replay on both `KalshiNR` and `KalshiDC` requires [allowlisting](https://docs.kalshi.com/fix/drop-copy.md) for your user account. Contact [institutional@kalshi.com](mailto:institutional@kalshi.com) to request access.

After an EventResendRequest, the server replays the matching historical order updates as ExecutionReport (35=8) messages and then sends EventResendComplete (35=U2) or EventResendReject (35=U3).

#### Market Data

| MsgType | Name | Sessions | Direction |
| - | - | - | - |
| V | MarketDataRequest | KalshiMD | Client -> Server |
| W | MarketDataSnapshotFullRefresh | KalshiMD | Server -> Client |
| X | MarketDataIncrementalRefresh | KalshiMD | Server -> Client |
| Y | MarketDataRequestReject | KalshiMD | Server -> Client |
| e | SecurityStatusRequest | KalshiMD | Client -> Server |
| f | SecurityStatus | KalshiMD | Server -> Client |

#### Post Trade

| MsgType | Name | Sessions | Direction |
| - | - | - | - |
| UMS | MarketSettlementReport | KalshiPT, KalshiRT | Server -> Client |

#### RFQ

| MsgType | Name | Sessions | Direction |
| - | - | - | - |
| R | QuoteRequest | KalshiRT, KalshiRFQ | KalshiRT: Client -> Server; KalshiRFQ: Server -> Client |
| b | QuoteRequestAck | KalshiRT | Server -> Client |
| S | Quote | KalshiRT, KalshiRFQ | KalshiRT: Server -> Client; KalshiRFQ: Client -> Server |
| AI | QuoteStatusReport | KalshiRFQ | Server -> Client |
| Z | QuoteCancel | KalshiRFQ | Client -> Server |
| U9 | QuoteCancelStatus | KalshiRFQ | Server -> Client |
| AG | QuoteRequestReject | KalshiRT, KalshiRFQ | Server -> Client |
| UA | AcceptQuote | KalshiRT | Client -> Server |
| UC | AcceptQuoteStatus | KalshiRT | Server -> Client |
| U7 | QuoteConfirm | KalshiRFQ | Client -> Server |
| U8 | QuoteConfirmStatus | KalshiRFQ | Server -> Client |
| UE | RFQCancel | KalshiRT | Client -> Server |
| UB | RFQCancelStatus | KalshiRT | Server -> Client |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.