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

# Header & Trailer

> Standard FIX message header and trailer fields

<div className="api-banner">
  <span className="api-protocol fix">FIX</span>
  <span className="api-detail">session: drop copy</span>
  <span className="api-tag">35=\*</span>
</div>

The baseline specification for the US Perps drop copy is FIX 4.4. A standard header must be present at the start of every message in both directions, and a standard trailer closes every message. SenderCompID and TargetCompID are communicated by Kraken during onboarding.

## Standard Header

Present at the start of every message in both directions. The full standard FIX 4.4 header is supported: thirty fields, including the SecureData, XmlData and NoHops constructs that most drop-copy sessions never populate. Six fields are required; the remaining twenty-four are optional and may be left unused.

<ResponseField name="8 - BeginString" type="string" required>
  FIX protocol version. Always FIX.4.4.
</ResponseField>

<ResponseField name="9 - BodyLength" type="Length" required>
  Number of characters between this field and the checksum, counting the delimiter before the checksum.

  **Format:** Character count from after this field up to and including the delimiter before tag 10.
</ResponseField>

<ResponseField name="35 - MsgType" type="string" required>
  Message type of this message.

  **Possible values:**

  * `0` : Heartbeat.
  * `1` : TestRequest.
  * `2` : ResendRequest.
  * `3` : Reject.
  * `4` : SequenceReset.
  * `5` : Logout.
  * `8` : ExecutionReport.
  * `A` : Logon.
</ResponseField>

<ResponseField name="49 - SenderCompID" type="string" required>
  Identifier of the party sending the message. Assigned during onboarding.

  **Format:** Assigned by Kraken at onboarding.
</ResponseField>

<ResponseField name="56 - TargetCompID" type="string" required>
  Identifier of the party receiving the message. Assigned during onboarding.

  **Format:** Assigned by Kraken at onboarding.
</ResponseField>

<ResponseField name="115 - OnBehalfOfCompID" type="string">
  CompID of the firm the message is sent on behalf of, when a third party is relaying.
</ResponseField>

<ResponseField name="128 - DeliverToCompID" type="string">
  CompID of the firm the message is ultimately to be delivered to, when a third party is relaying.
</ResponseField>

<ResponseField name="90 - SecureDataLen" type="Length">
  Length in bytes of the SecureData field that follows.

  **Format:** Byte count.

  <span className="field-attr">Required:</span> Conditional
</ResponseField>

<ResponseField name="91 - SecureData" type="data">
  Encrypted portion of the message. Unused where TLS protects the transport.

  **Format:** Raw data; length given by SecureDataLen (90).

  <span className="field-attr">Required:</span> Conditional
</ResponseField>

<ResponseField name="34 - MsgSeqNum" type="SeqNum" required>
  Sequence number of this message on the session.

  **Format:** Sequence number of this message on the session, per direction.
</ResponseField>

<ResponseField name="50 - SenderSubID" type="string">
  Sub-identifier within SenderCompID, e.g. a desk or trader.
</ResponseField>

<ResponseField name="142 - SenderLocationID" type="string">
  Location of the sending party, e.g. a country or state code.
</ResponseField>

<ResponseField name="57 - TargetSubID" type="string">
  Sub-identifier within TargetCompID.
</ResponseField>

<ResponseField name="143 - TargetLocationID" type="string">
  Location of the receiving party.
</ResponseField>

<ResponseField name="116 - OnBehalfOfSubID" type="string">
  Sub-identifier within OnBehalfOfCompID.
</ResponseField>

<ResponseField name="144 - OnBehalfOfLocationID" type="string">
  Location of the OnBehalfOfCompID party.
</ResponseField>

<ResponseField name="129 - DeliverToSubID" type="string">
  Sub-identifier within DeliverToCompID.
</ResponseField>

<ResponseField name="145 - DeliverToLocationID" type="string">
  Location of the DeliverToCompID party.
</ResponseField>

<ResponseField name="43 - PossDupFlag" type="boolean">
  Whether the message may be a retransmission of one already sent with this sequence number.

  **Possible values:**

  * `Y` : Possible duplicate — this sequence number may have been sent before.
  * `N` : Not a duplicate.
</ResponseField>

<ResponseField name="97 - PossResend" type="boolean">
  Whether the message was resent from the application layer rather than the session layer, so the receiver should check for a duplicate at the business level.

  **Possible values:**

  * `Y` : Yes.
  * `N` : No.
</ResponseField>

<ResponseField name="52 - SendingTime" type="UTCTimestamp" required>
  Time the sender transmitted the message, in UTC.

  **Format:** UTC timestamp, YYYYMMDD-HH:MM:SS.uuu
</ResponseField>

<ResponseField name="122 - OrigSendingTime" type="UTCTimestamp">
  Original sending time of a retransmitted message; set to SendingTime when no original is available. Required on a retransmission.

  **Format:** UTC timestamp, YYYYMMDD-HH:MM:SS.uuu

  <span className="field-attr">Required:</span> Conditional
</ResponseField>

<ResponseField name="212 - XmlDataLen" type="Length">
  Length in bytes of the XmlData field that follows.

  **Format:** Byte count.

  <span className="field-attr">Required:</span> Conditional
</ResponseField>

<ResponseField name="213 - XmlData" type="data">
  XML payload carried inside the FIX message.

  **Format:** Raw data; length given by XmlDataLen (212).

  <span className="field-attr">Required:</span> Conditional
</ResponseField>

<ResponseField name="347 - MessageEncoding" type="string">
  Character encoding of the Encoded\* fields in this message.

  **Format:** EUC-JP, ISO-2022-JP, Shift\_JIS or UTF-8.
</ResponseField>

<ResponseField name="369 - LastMsgSeqNumProcessed" type="SeqNum">
  Highest MsgSeqNum the sender has processed from the counterparty. Lets each side confirm its position without a Test Request.

  **Format:** Sequence number.
</ResponseField>

<ResponseField name="627 - NoHops" type="NumInGroup">
  Number of hop entries that follow, recording each third party the message passed through.

  <Expandable title="repeating group">
    <ResponseField name="628 - HopCompID" type="string">
      CompID of the third party that forwarded this message.
    </ResponseField>

    <ResponseField name="629 - HopSendingTime" type="UTCTimestamp">
      Time that third party sent the message.

      **Format:** UTC timestamp, YYYYMMDD-HH:MM:SS.uuu
    </ResponseField>

    <ResponseField name="630 - HopRefID" type="SeqNum">
      MsgSeqNum the message carried on that hop.

      **Format:** Sequence number.
    </ResponseField>
  </Expandable>
</ResponseField>

***

## Standard Trailer

Closes every message. CheckSum is always the final field. SignatureLength and Signature are the standard FIX 4.4 message-signing pair and are optional; they are rarely used where the transport is already protected by TLS.

<ResponseField name="93 - SignatureLength" type="Length">
  Length in bytes of the Signature field that follows.

  **Format:** Byte count.
</ResponseField>

<ResponseField name="89 - Signature" type="data">
  Message signature. Optional, and rarely used where TLS already protects the transport.

  **Format:** Raw data; length given by SignatureLength (93).
</ResponseField>

<ResponseField name="10 - CheckSum" type="string" required>
  Modulo-256 checksum of the message. Always the last field.

  **Format:** Three digits, modulo-256 sum of every preceding byte.
</ResponseField>
