required
35=
8string
Exchange-assigned order identifier generated by Kraken; the value to quote back on cancels, amends and status requests.Format: Assigned by Kraken; quote it back on cancels, amends and status requests.
string
required
Client-assigned order identifier, as sent by the client. On US Perps it is a positive integer of at most 19 digits.Format: Positive integer, up to 19 digits, e.g. a microsecond timestamp.
string
ClOrdID of the previous action on the order. Sent on cancel and amend reports.Required: Conditional
string
required
Unique identifier of this execution report. Treat it as opaque: do not parse it or derive it from ClOrdID. On US Perps the New (
150=0) acknowledgement uses a ClOrdID-based form, reports driven by the engine carry an engine-generated identifier, and an Order Status answer (150=I) repeats the ExecID of the cached report.char
required
Nature of the event this execution report describes.Possible values:
0: New - the order is live in the engine.4: Canceled - the order was cancelled.5: Replace - the amend was applied.8: Rejected - the matching engine refused an order it had already acknowledged, for example a post-only order that would cross, a fill-or-kill order that cannot be filled in full or an order stopped by market price protection. The report carries OrdRejReason (103) and Text (58). Engine limit checks (quantity cap, price bounds and bands) map to OrdRejReason3, so they may be reported this way as well; this is to be confirmed in UAT.A: Pending New - not sent on US Perps, because EffectiveTime is rejected on order entry.C: Expired - the order reached its expiry.D: Restated - the engine changed the order itself, e.g. a trigger firing or a reprice. ExecRestatementReason (378) says why.F: Trade - the order got a fill. LastPx/LastQty carry that fill.I: Order Status - this report answers an OrderStatusRequest rather than reporting an event.
char
required
Current state of the order.Possible values:
0: New - live, nothing filled.1: Partially filled - live with fills against it.2: Filled - fully filled and closed.4: Canceled - cancelled and closed.5: Replaced - the amend succeeded.8: Rejected - the matching engine refused the order after acknowledging it. See OrdRejReason (103) and Text (58) for the reason.A: Pending New - not live yet.C: Expired - expired and closed.E: Pending Replace - the amend is accepted but the new parameters are not live yet, e.g. a trade was in flight when the amend arrived.
integer
Code identifying the reason why an order was rejected by the matching engine. Present only on Execution Reports with ExecType (150) = 8 and OrdStatus (39) = 8. The gateway maps only the values below; match-time rejects use
3, 11 and 99. Which engine rejections reach 150=8 is decided by the engine.Possible values:1: Unknown symbol.2: Exchange closed.3: Order exceeds a limit (quantity cap, price bounds and bands).5: Unknown order.6: Duplicate order.11: Unsupported order characteristic.13: Incorrect quantity.99: Other.
string
Numeric end-client id of the end client the order was placed for, as sent in Account (1) on the order.Format: Non-zero numeric end-client id.
integer
Capacity in which the customer traded, as reported to futures exchanges.Possible values:
1: Exchange member trading for their own account.2: Clearing firm trading for its own proprietary account.3: Member trading on behalf of another exchange member.4: Any other customer capacity not listed above.
string
Perpetual futures contract, in the venue symbol form. Ten contracts are listed at launch.Format: Venue symbol.
string
Identifier of the instrument within the Kraken instrument scheme. Present when it is cached for the order.Format: Venue instrument identifier.
char
required
Side of the order.Possible values:
1: Buy.2: Sell.
Qty
Order quantity in contracts. A reduce-only order is clamped to the remaining position at submission; clamped to zero is a reject.
char
required
Execution model of the order. On a triggered order this reflects the resulting model (market or limit) once the trigger has fired.Possible values:
1: Market - fill the whole quantity immediately at the best available prices.2: Limit - rest in the book, trading only at the limit price or better.
integer
Code indicating the format or units in which a price is expressed.Possible values:
1: Price expressed as a percentage of par or nominal.2: Price quoted per unit or per share.3: Absolute fixed price amount.4: Price quoted as a discount, a percentage below par.5: Price quoted as a premium, a percentage above par.6: Price quoted as a spread over a benchmark.7: Price expressed as a TED spread price.8: Price expressed as a TED spread yield.9: Price expressed as a yield rather than a price.10: Fixed price used for cabinet trades of near-worthless options.11: Variable price used for cabinet trades of near-worthless options.
Price
Limit price of the order, denominated in the quote currency. Required for limit orders.Format: Limit price, denominated in the quote currency.Required: Conditional
char
Reference price the FCM trigger watches. Defaults to the last trade price.Possible values:
1: Track the index price as the trigger reference.5: Track the last trade price as the trigger reference. Default.
char
How long the order stays in effect. GTC, IOC, FOK and GTD are the supported durations; a change of TimeInForce on an amend is rejected.Possible values:
1: GTC - good till cancelled. Rests indefinitely.3: IOC - fill what you can immediately, cancel the rest.4: FOK - fill the entire quantity immediately or cancel the whole order.6: GTD - good till date. The expiry is in ExpireTime (126).
UTCTimestamp
Scheduled start time. Not used on US Perps: EffectiveTime is rejected on order entry.Format: UTC timestamp, YYYYMMDD-HH:MM:SS.uuu
MultipleStringValue
One or more execution instructions, space-separated. Reduce-only is clamped by the FCM against the live position at submission, not by the engine, which holds no position or margin context.Possible values:
E: Reduce-only - may shrink an existing margin position but never open or extend an opposite one.s: Single fee - fee reported per trade on the execution report. Mandatory on Derivatives, and the only fee option there.
Qty
Quantity bought or sold on this fill.Required: Conditional
Price
Price of this fill.Required: Conditional
string
Trading session the status applies to.
Qty
required
Quantity still working in the book.
Qty
required
Total quantity filled on the order so far.
Amt
Gross amount traded on the order. The New (
150=0) acknowledgement carries 0.Qty
May be present on reports. Display quantity cannot be set on US Perps orders: NewOrderSingle rejects iceberg orders.
Price
required
Average price across all fills on the order.
UTCTimestamp
Time of the business event in UTC, formatted YYYYMMDD-HH:MM:SS.uuu.Format: UTC timestamp, YYYYMMDD-HH:MM:SS.uuu
string
Free-text description: the cancellation reason, reject reason, or order status detail.Format: Free text set by Kraken; carries the reject or cancellation reason.
string
Additional free-text designation or reference attached to the allocation or order.
integer
Code indicating whether this fill added liquidity to or removed liquidity from the market. Only
1 and 2 are sent.Possible values:1: The fill added liquidity to the order book.2: The fill took liquidity from the order book.
NumInGroup
Number of fee entries that follow.Required: Conditional
string
Exchange-assigned identifier of the trade.Required: Conditional
NumInGroup
Number of subaccount allocations that follow. Always 1 for broker accounts.
required