Skip to main content

Types

Type reference for order executions. GraphQL notation: ! means non-null, [...] is a list; a field without ! can be null.

OrderExecution

The economic snapshot is immutable from the moment of the cross; only status and its timestamps move.

FieldTypeDescription
idUUID!Execution id
orderNumberString!Human-facing order number: TPST- plus eight alphanumerics, unique, non-sequential
buySideOrderIdUUID!The resting buy-side order that crossed
sellSideOrderIdUUID!The resting sell-side order that crossed
buyerAccountIdUUID!Buying account
sellerAccountIdUUID!Selling account
marketIdUUIDVenue the fill cleared in
inventoryItemIdUUID!Inventory item the fill moved
assetConfigurationIdUUID!Traded product
keyIdUUIDGraded/condition key
takerSideOrderSubmissionDirection!Which side crossed the book: the aggressor
quantityInt!Units filled
executionPriceCentsInt!Per-unit cross price, in cents
grossAmountCentsInt!executionPriceCents × quantity
statusOrderExecutionStatus!See enum below
executedAtDateTime!When the cross happened
settledAtDateTimeWhen settlement completed
failedAtDateTimeWhen settlement failed
failureReasonStringWhy settlement failed
createdAtDateTime!Row creation time
updatedAtDateTime!Last status movement

Opt-in fields

Populated only when the corresponding include flag is set on the query; empty or null otherwise.

FieldTypeInclude flagDescription
transfers[Transfer!]!includeTransfersShipment/transfer records sourced off this fill
moneyMovements[MoneyMovement!]!includeMoneyMovementsThe fill's ledger lines
disputes[Dispute!]!includeDisputesDisputes raised against this fill
returns[Return!]!includeReturnsReturn legs unwinding this fill
lineItemEvents[InventoryLineItemEvent!]!includeLineItemEventsThe durable record of which inventory units the fill moved — the only way to recover the traded units after settlement clears the execution link off the line items
assetConfigurationAssetConfigurationincludeProductDataTraded product's catalog row
assetAssetincludeProductDataParent asset
keyKeyincludeProductDataGraded/condition key with display label
marketMarketincludeMarketThe venue — says where the fill happened, never what traded
pnlExecutionPnlincludePnlThe fill's economics. Null for fills that predate receipts
handChanges[ExecutionHandChange!]includeHandChangesYour own prior movements of this product and grade, newest first. getOrderExecution only

ExecutionPnl

Quantities are outcome quantities — a dispute resolution may have moved them off the fill's committed quantity. Prices are cash-actual per unit with fees folded in.

FieldTypeDescription
soldQuantityInt!Units that permanently left the seller
boughtQuantityInt!Units the buyer kept. Both zero when the trade unwound
sellUnitPriceCentsBigIntSeller's per-unit proceeds, net of fees
sellFeesCentsBigIntSeller's fees
buyUnitPriceCentsBigIntBuyer's per-unit cost, fees in
buyFeesCentsBigIntBuyer's fees
unitCostBasisCentsBigIntSeller's moving-average basis per unit
realizedPnlCentsBigIntSeller's realized profit. Null — unknown, never zero — when the basis predates recorded history
acquiredAtDateTimeWhen the seller most recently acquired this product before the sell. Null when nothing is on record

ExecutionHandChange

One movement of your units of the fill's product — an acquisition or disposal off the receipts ledger. Gross history, not lot attribution.

FieldTypeDescription
occurredAtDateTime!When it happened
directionHandChangeDirection!ACQUIRED or DISPOSED
quantityInt!Units moved
unitPriceCentsBigIntYour per-unit cash on that movement; null when unpriced (e.g. intake)
eventTypeString!What kind of movement it was

PublicExecution

The anonymized shape recentOrderExecutions returns — what traded, at what price, when, and where, with no party or account fields.

FieldTypeDescription
idUUID!Execution id — dedupe key against the live trade stream
executedAtDateTimeWhen the cross happened
takerSideOrderSubmissionDirection!Aggressor side, for buy/sell styling
marketMarket!Venue
assetConfigurationAssetConfiguration!Traded product
assetAsset!Parent asset
keyKeyGraded/condition key
quantityInt!Units filled
executionPriceCentsInt!Per-unit cross price, in cents

InventoryLineItemEvent

One recorded event in a line item's history — the append-only receipt of what a fill moved.

FieldTypeDescription
idID!Event id
lineItemIdID!The line item this event belongs to
eventTypeInventoryLineItemEventType!TRADE or MOVEMENT_REQUEST
orderExecutionIdIDThe fill that caused it, when trade-caused
transferIdIDAssociated transfer
facilityMovementRequestIdIDAssociated facility movement
fromInventoryItemIdIDOwnership moved from
toInventoryItemIdIDOwnership moved to
quantityInt!Units the event covers
createdAtDateTime!When it was recorded

OrderExecutionTotals

Aggregates over everything the list filters match, independent of pagination. Both value fields are BigInt, serialized as strings.

FieldTypeDescription
totalCountInt!Matching fills
pendingValueCentsBigInt!Gross value of PENDING fills
completedValueCentsBigInt!Gross value of SETTLING + SETTLED fills

Enums

OrderExecutionStatus

The settlement lifecycle. See the overview for how these drive submission statuses.

ValueMeaning
PENDINGMatched, settlement not yet started
SETTLINGSettlement in flight: charge, payout, inventory transfer
IN_DISPUTEThe buyer raised a dispute mid-settlement. Settlement is frozen — nothing settles, auto-confirms, or gets auto-cancelled — until the dispute resolves and hands the trade back to SETTLING. In flight, not terminal
SETTLEDFully settled
FAILEDSettlement failed; awaiting retry or intervention
REVERSEDUnwound after settlement (refund / clawback)

IN_DISPUTE is the one non-terminal state that can persist indefinitely. Treat it as still in flight: a fill sitting there will move again, and the wait is bounded by dispute resolution rather than by settlement.