> ## 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.

# Execution Report

> Order responses and fill notifications via FIX

<div className="api-banner">
  <span className="api-protocol fix">FIX</span>
  <span className="api-detail">session: trading</span>
  <span className="api-tag">35=8</span>
</div>

As soon as Kraken Trading Engine accepts the order, all order responses will be sent using the Execution Report message.
This includes any fills, order status changes and confirmation of cancellation.

***

<ResponseField name="header" type="" required>35=`8`</ResponseField>

<ResponseField name="11 - ClOrdID" type="string" required>
  Unique identifier of the order.
</ResponseField>

<ResponseField name="41 - OrigClordid" type="string">
  ClOrdID of the previous action on this order.

  <span className="field-attr">Condition:</span> ExecType = Cancel
</ResponseField>

<ResponseField name="17 - ExecId" type="string" required>
  Unique identifier for each execution report message.
</ResponseField>

<ResponseField name="37 - OrderID" type="string" required>
  Unique order identifier generated by Kraken.
</ResponseField>

<ResponseField name="527 - SecondaryExecID" type="integer">
  Sequence number for every ExecType=Trade. This ID is unique by pair.

  <span className="field-attr">Condition:</span> ExecType = Trade
</ResponseField>

<ResponseField name="60 - TransactTime" type="string">
  Time of event expressed in UTC. Format: `YYYYMMDD-HH:MM:SS.uuu`
</ResponseField>

<ResponseField name="40 - OrderType" type="char" required>
  The execution model of the order. For triggered orders, after the trigger the OrderType will reflect the new execution model of the order (market or limit).

  **Possible values:**

  * `1` : market
  * `2` : Limit
  * `3` : Stop-loss
  * `4` : Stop-loss-limit
  * `R` : Take-profit
  * `T` : Take-profit-limit
  * `U` : Trailing-stop
  * `V` : Trailing-stop-limit
</ResponseField>

<ResponseField name="54 - Side" type="integer" required>
  Side of the order.

  **Possible values:**

  * `1` : Buy
  * `2` : Sell
</ResponseField>

<ResponseField name="55 - Symbol" type="string" required>
  Pair in the format BASE/QUOTE.
</ResponseField>

<ResponseField name="44 - Price" type="float">
  Limit Price of the order placed in the Order Book. This field is denominated in Quote Currency.

  <span className="field-attr">Condition:</span> OrderType = Limit / Stop-Loss-Limit / Take-Profit-Limit / Trailing-stop-limit
</ResponseField>

<ResponseField name="99 - StopPx" type="float">
  Stop Price for a Stop-Loss / Take-Profit / Stop-Loss-Limit or Take-Profit-Limit order. This field is denominated in Quote Currency.

  <span className="field-attr">Condition:</span> OrderType = Stop-Loss / Take-Profit / Stop-Loss-Limit / Trailing-stop / Trailing-stop-limit
</ResponseField>

<ResponseField name="31 - LastPx" type="float">
  Price of the trade.

  <span className="field-attr">Condition:</span> ExecType = Trade
</ResponseField>

<ResponseField name="6 - AvgPx" type="float">
  Avg price of all trades on the order.

  <span className="field-attr">Condition:</span> ExecType = Trade
</ResponseField>

<ResponseField name="1102 - TriggerPrice" type="float">
  Price that triggered for stop-loss, take-profit, stop-loss-limit, take-profit-limit, trailing\_stop or trailing\_stop\_limit. It can be different than the StopPx.
</ResponseField>

<ResponseField name="14 - CumQty" type="float" required>
  Total quantity filled on the order so far.
</ResponseField>

<ResponseField name="32 - LastQty" type="float">
  Quantity bought/sold on last trade.

  <span className="field-attr">Condition:</span> ExecType = Trade
</ResponseField>

<ResponseField name="151 - LeavesQty" type="float" required>
  Quantity left on the order on the Book.
</ResponseField>

<ResponseField name="38 - OrderQty" type="float" required>
  Size of the original order.
</ResponseField>

<ResponseField name="1138 - DisplayQty" type="float">
  Iceberg qty of the original order.
</ResponseField>

<ResponseField name="150 - ExecType" type="char" required>
  Describes the type of order event and determines the set of fields in the message.

  **Possible values:**

  * `0` : New — Order has been created and is live in the engine.
  * `4` : Canceled — The order has been cancelled.
  * `5` : Replace — The order has been replaced.
  * `A` : Pending New — Order request has been received and validated but the order is not live yet. Possible when EffectiveTime (Tag 168) is used on the New Order.
  * `C` : Expired — The order has expired.
  * `D` : Restated — The order has changed like a trigger event.
  * `F` : Trade — The order has received a fill.
  * `I` : Order Status — In response to an [Order Status Request](/exchange/api-reference/unified-fix/osr).
</ResponseField>

<ResponseField name="39 - OrdStatus" type="char" required>
  Describes the status of the order.

  **Possible values:**

  * `0` : New — Order is live in the engine with no fills.
  * `1` : Partially Filled — Order is live in the engine with fills.
  * `2` : Filled — Order is fully filled and closed.
  * `4` : Canceled — Order is cancelled and closed.
  * `5` : Replaced — Order is Replaced successfully.
  * `A` : Pending New — Order is not live yet. For example when EffectiveTime is used.
  * `C` : Expired — Order is expired and closed.
  * `E` : Pending Replace — New parameter of the replace are not live yet. For example when EffectiveTime is used or a trade was in flight during the replace request.
</ResponseField>

<ResponseField name="58 - Text" type="string">
  Full description for Cancellations or status of the order.
</ResponseField>

<ResponseField name="59 - TimeInForce" type="string" required>
  **Possible values:**

  * `1` : GTC (Good till canceled)
  * `3` : IOC (Immediate or Cancel)
  * `4` : FOK (Fill or Kill)
  * `6` : GTD (Good till date)
</ResponseField>

<ResponseField name="136 - NoMiscFee" type="integer">
  `1` where a fee is applicable or not present.

  <Expandable title="repeating group">
    <ResponseField name="137 - MiscFeeAmt" type="float">
      Absolute fee value present on Fill Reports. Fees are cumulative from the previous trades.
    </ResponseField>

    <ResponseField name="138 - MiscFeeCurr" type="string">
      Fee Asset.
    </ResponseField>

    <ResponseField name="139 - MiscFeeType" type="integer">
      **Possible values:**

      * `4` : Exchange Fee
    </ResponseField>

    <ResponseField name="891 - MiscFeeBasis" type="string">
      Define how the fee is charged.

      **Possible values:**

      * `2` : Percentage
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="381 - GrossTradeAmt" type="float">
  Cum Cost of the Trade (CumQty × AvgPx).
</ResponseField>

<ResponseField name="118 - NetMoney" type="float">
  Cost of a Single Trade (LastQty × LastPx).
</ResponseField>

<ResponseField name="1003 - TradeID" type="string">
  Unique ID that identifies the trade at exchange.

  <span className="field-attr">Condition:</span> ExecType = Trade
</ResponseField>

<ResponseField name="5050 - LiquidityInd" type="string">
  Define if the trade was from a maker or taker order.

  **Possible values:**

  * `0` : Maker
  * `1` : Taker

  <span className="field-attr">Condition:</span> ExecType = Trade
</ResponseField>

<ResponseField name="78 - NoAllocs" type="integer">
  Number of subaccount that are part of the order. Always 1 for the broker accounts.

  <Expandable title="repeating group">
    <ResponseField name="79 - AllocAccount" type="string">
      Account ID of the Subaccount that this order is targeted to. Only available for broker accounts. Please contact your AM for further questions.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="378 - ExecRestatementReason" type="char">
  It can happen in some scenario that trades are not reported in time through the FIX API.
  In that case the FIX API will detect it and send a ExecType=Restated execution report and use ExecRestatementReason to warn the client.

  **Possible values:**

  * `3` : Repricing of Order
</ResponseField>

<ResponseField name="trailer" type="" required />

<Tabs>
  <Tab title="Spot">
    <CodeGroup>
      ```text New (ExecType=0) theme={null}
      8=FIX.4.4|9=260|35=8|34=3|49=KRAKEN-TRD|56=CLIENT|52=20260407-14:32:05.122|6=0|11=1744036325000000|14=0|17=EXEC002:TRD001|37=OQNCZM-NVAVC-AVD2LO|38=0.001|39=0|40=2|44=84000|54=1|55=BTC/USD|58=buy 0.001 BTC/USD @ limit 84000|59=1|60=20260407-14:32:05.000|150=0|151=0.001|381=0|10=144|
      ```

      ```text Trade/Fill (ExecType=F) theme={null}
      8=FIX.4.4|9=307|35=8|34=5|49=KRAKEN-TRD|56=CLIENT|52=20260407-14:32:05.122|6=84000|11=1744036325000000|14=0.001|17=EXEC003:TRD001|31=84000|32=0.001|37=OQNCZM-NVAVC-AVD2LO|38=0.001|39=2|40=2|44=84000|54=1|55=BTC/USD|59=1|60=20260407-14:32:05.122|118=84|136=1|137=0.168|138=USD|139=4|150=F|151=0|381=84|1003=TRADE-001|5050=1|10=114|
      ```

      ```text Canceled (ExecType=4) theme={null}
      8=FIX.4.4|9=247|35=8|34=6|49=KRAKEN-TRD|56=CLIENT|52=20260407-14:32:05.122|6=0|11=1744036325300000|14=0|17=EXEC004:TRD001|37=OTOTN4-LJ3P7-PUMZVZ|38=0.001|39=4|40=2|44=84000|54=1|55=BTC/USD|58=Order canceled by user|59=1|60=20260407-14:32:06.000|150=4|151=0|381=0|10=244|
      ```

      ```text Replaced (ExecType=5) theme={null}
      8=FIX.4.4|9=225|35=8|34=7|49=KRAKEN-TRD|56=CLIENT|52=20260407-14:32:05.122|6=0|11=1744036325100000|14=0|17=EXEC005:TRD001|37=OQNCZM-NVAVC-AVD2LO|38=0.002|39=5|40=2|44=83500|54=1|55=BTC/USD|59=1|60=20260407-14:32:10.000|150=5|151=0.002|381=0|10=204|
      ```
    </CodeGroup>

    <Accordion title="Other states">
      <CodeGroup>
        ```text PendingNew (ExecType=A) theme={null}
        8=FIX.4.4|9=260|35=8|34=3|49=KRAKEN-TRD|56=CLIENT|52=20260407-14:32:05.122|6=0|11=1744036325000000|14=0|17=EXEC001:TRD001|37=OQNCZM-NVAVC-AVD2LO|38=0.001|39=A|40=2|44=84000|54=1|55=BTC/USD|58=buy 0.001 BTC/USD @ limit 84000|59=1|60=20260407-14:32:05.000|150=A|151=0.001|381=0|10=177|
        ```

        ```text Expired (ExecType=C) theme={null}
        8=FIX.4.4|9=242|35=8|34=9|49=KRAKEN-TRD|56=CLIENT|52=20260407-14:32:05.122|6=0|11=1744036325400000|14=0|17=EXEC007:TRD001|37=OBCDEF-GHIJK-LMNOPQ|38=0.001|39=C|40=2|44=84000|54=1|55=BTC/USD|58=GTD order expired|59=6|60=20260407-14:32:10.000|150=C|151=0|381=0|10=238|
        ```

        ```text OrderStatus (ExecType=I) theme={null}
        8=FIX.4.4|9=225|35=8|34=8|49=KRAKEN-TRD|56=CLIENT|52=20260407-14:32:05.122|6=0|11=1744036325000000|14=0|17=EXEC006:TRD001|37=OQNCZM-NVAVC-AVD2LO|38=0.001|39=0|40=2|44=84000|54=1|55=BTC/USD|59=1|60=20260407-14:32:05.000|150=I|151=0.001|381=0|10=218|
        ```
      </CodeGroup>
    </Accordion>
  </Tab>

  <Tab title="Futures">
    <CodeGroup>
      ```text New (ExecType=0) theme={null}
      8=FIX.4.4|9=315|35=8|34=3|49=KRAKEN-DRV-TRD|56=CLIENT-DRV|52=20260407-14:32:05.122|6=0|11=a17d4971-f00d-4f67-94d1-e7d604104ed2|14=0|17=6B2NDTNHRQAAA:TRD001|37=9e58120f-40e0-44dc-beec-6d1b5ea9136c|38=0.001|39=0|40=2|44=84000|54=1|55=PF_XBTUSD|58=buy 0.001 PF_XBTUSD @ limit 84000|59=1|60=20260407-14:32:05.000|150=0|151=0.001|381=0|10=179|
      ```

      ```text Trade/Fill (ExecType=F) theme={null}
      8=FIX.4.4|9=364|35=8|34=5|49=KRAKEN-DRV-TRD|56=CLIENT-DRV|52=20260407-14:32:05.122|6=84000|11=a17d4971-f00d-4f67-94d1-e7d604104ed2|14=0.001|17=6B2NDTNHRQAAB:TRD001|31=84000|32=0.001|37=9e58120f-40e0-44dc-beec-6d1b5ea9136c|38=0.001|39=2|40=2|44=84000|54=1|55=PF_XBTUSD|59=1|60=20260407-14:32:05.122|118=84|136=1|137=0.042|138=USD|139=4|150=F|151=0|381=84|1003=TRADE-FUT-001|5050=1|10=207|
      ```
    </CodeGroup>
  </Tab>
</Tabs>
