Skip to main content

Execution Report - Order Reject

If an order is rejected, Paxos returns an Execution Report with ExecType (150) = 8 and OrdRejReason (103) populated with the rejection reason.

Standard FIX Fields

TagFieldWhen PresentNotes
8BeginStringAlwaysStandard FIX header
9BodyLengthAlwaysStandard FIX header
35MsgTypeAlways8 (Execution Report)
49SenderCompIDAlwaysStandard FIX header
56TargetCompIDAlwaysStandard FIX header
34MsgSeqNumAlwaysStandard FIX header
52SendingTimeAlwaysStandard FIX header

Standard FIX Trailer

TagFieldWhen PresentNotes
10CheckSumAlways

Reject Response Fields

Always Present
TagFieldWhen PresentNotes
54SideAlways1 = Buy, 2 = Sell
150ExecTypeAlways8 (Rejected)
32lastSharesAlways0
109ClientIDAlways
1AccountAlways
31LastPxAlways0
103OrdRejReasonAlwaysSee Rejection Reason Codes
151LeavesQtyAlways0
60TransactTimeAlways
58TextAlwaysSee Detailed Rejection Messages
20ExecTransTypeAlways0 (New)
55SymbolAlwaysCurrency pair
17ExecIDAlways
14CumQtyAlways0
11ClOrdIDAlways
44PriceAlways
6AvgPxAlways0
41OrigClOrdIDAlways
40OrdTypeAlways1 = Market, 2 = Limit, 3 = Stop Market, 4 = Stop Limit
39OrdStatusAlways8 (Rejected)
37OrderIDAlways
381GrossTradeAmtAlways0
59TimeInForceAlways1 = GTC, 3 = IOC, 4 = FOK, 6 = GTT
Conditional
TagFieldWhen PresentNotes
38OrderQtyLimit and market sell ordersBase quantity
152CashOrderQtyMarket buy ordersFiat notional
18ExecInstPost-only orders6 (Post-Only)
126ExpireTimeGTT ordersYYYYMMDD-HH:MM:SS format
Brokerage Clients
TagFieldWhen PresentNotes
5047AllocBrokerAccountIDBrokerage clientsIdentityAccountId
50SenderSubIDBrokerage clientsIdentityId
5074FundCommissionOptionBrokerage clients
5000RecipientProfileIdBrokerage clientsProfileID that receives settled currency
Optional
TagFieldWhen PresentNotes
2362SelfMatchPreventionIDIf enabledPrevents self-matching. Up to 36 characters. Requires additional permissions.

Rejection Reason Codes – OrdRejReason (103)

ValueMeaning
0Broker option
1Unknown symbol
2Exchange closed
3Order exceeds limit
5Unknown order
6Duplicate order
8Stale order

Detailed Rejection Messages – Text (58)

Validation Errors
Text ValueDescription
ClientId Is requiredMissing ClientID field
ClientOrderId Is requiredMissing ClOrdID field
Account Is requiredMissing Account field
Symbol Is requiredMissing Symbol field
OriginalClientOrderId Is requiredMissing OrigClOrdID field
HandlingInstructions Expected Value for this field is 1HandlInst must be 1
Side {value} is not an acceptable value for this fieldInvalid Side value
OrderType {value} is not an acceptable value for this fieldInvalid OrdType value
CashOrderQty Must be greater than zeroCashOrderQty must be > 0
OrderQuantity Must be greater than zeroOrderQty must be > 0
StopPrice Must be zeroStopPx must be 0 for non-stop orders
ExpirationTime must be of format YYYYMMDD-HH:MM:SS or YYYYMMDD-HH:MM:SS.sssInvalid ExpireTime format
InvalidTimeInForceInvalid TimeInForce for this order type
MissingExpirationDateExpireTime required for GTT orders
TimeInForce Not supportedUnsupported TimeInForce for this order type
Account Is not a GUIDAccount must be a valid GUID
ClientId Is not a GUIDClientID must be a valid GUID
Invalid Message TypeUnsupported MsgType
Business Rule Violations
Text ValueDescription
InsufficientBalanceAccount lacks sufficient funds
NotionalValueTooLargeExceeds maximum notional order size
InvalidPriceForTakerOrderPrice deviates 15%+ from midpoint. See Limit Order Taker Price Protection.
MinimumCommissionExceedsNotionalOrder notional value is too small; minimum commission would exceed it
InactiveInstrumentMarket is unavailable or in cancel-and-post-only mode
MarketHaltedMarket is halted
OrderIdentifierIsNotUniqueForUserDuplicate client order identifier for this user
TooManyOpenOrdersUser has exceeded the maximum of 25,000 open orders. Contact your Paxos representative to request a different limit.
UserNotAuthorizedForTradingUser is not authorized to trade
BlacklistedCountryForTradingUser’s country is blocked from trading
UserNotExemptFromSelfMatchPreventionSelf-match prevention triggered and user is not exempt
MarketDataUnavailableMarket data is unavailable for validation
Market conditions have invalidated this orderMarket conditions prevent execution
PaxAccountingUnknownErrorInternal processing error
Identity and Account Errors
Text ValueDescription
InvalidRecipientProfileIdInvalid RecipientProfileId
InvalidIdentityIdInvalid IdentityId
InvalidIdentityAccountIdInvalid IdentityAccountId
InvalidFundCommissionOptionInvalid FundCommissionOption value
DisabledIdentityIdIdentityId is disabled
DisabledIdentityAccountIdIdentityAccountId is disabled
PendingIdentityIdIdentityId is pending approval
PendingIdentityAccountIdIdentityAccountId is pending approval
Matching Engine Rejections These rejections occur after the order reaches the matching engine. Unlike the enum-style values above, these use human-readable text strings.
Text ValueDescription
no open limit order on other sideMarket order rejected — no liquidity on the opposite side
order marketable to existing quote/bookPost-only order rejected — it would cross the book
Stale OrderOrder became stale before it could be matched

Execution Report - Expired

Expired Execution Reports are returned for market buy orders that close with a small amount of unexecuted quote currency remaining. ExecType (150) = C, OrdStatus (39) = C (Expired).
Market buy order executions are captured in Partial Fill messages. The Expired message is a summary confirming the order is closed.

Standard FIX Fields

TagFieldWhen PresentNotes
8BeginStringAlwaysStandard FIX header
9BodyLengthAlwaysStandard FIX header
35MsgTypeAlways8 (Execution Report)
49SenderCompIDAlwaysStandard FIX header
56TargetCompIDAlwaysStandard FIX header
34MsgSeqNumAlwaysStandard FIX header
52SendingTimeAlwaysStandard FIX header

Standard FIX Trailer

TagFieldWhen PresentNotes
10CheckSumAlways

Expired Response Fields

Always Present
TagFieldWhen PresentNotes
54SideAlways1 = Buy, 2 = Sell
150ExecTypeAlwaysC (Expired)
32lastSharesAlways
109ClientIDAlways
1AccountAlways
31LastPxAlways
151LeavesQtyAlways0
60TransactTimeAlways
58TextAlwaysExpired Order
20ExecTransTypeAlways0 (New)
55SymbolAlwaysCurrency pair
17ExecIDAlways
14CumQtyAlwaysTotal filled quantity
11ClOrdIDAlways
44PriceAlways
6AvgPxAlwaysAverage fill price
40OrdTypeAlways
39OrdStatusAlwaysC (Expired)
37OrderIDAlways
381GrossTradeAmtAlwayslastShares (32) * LastPx (31)
59TimeInForceAlways1 = GTC, 3 = IOC, 4 = FOK, 6 = GTT
Conditional
TagFieldWhen PresentNotes
12CommissionWhen chargedCommission paid
13CommTypeWhen charged3 (Absolute Value)
38OrderQtyLimit and market sell ordersBase quantity
152CashOrderQtyMarket buy ordersFiat notional
18ExecInstPost-only orders6 (Post-Only)
5851LiquidityIndWhen available1 = Add, 2 = Remove
126ExpireTimeGTT ordersYYYYMMDD-HH:MM:SS format
Brokerage Clients
TagFieldWhen PresentNotes
5047AllocBrokerAccountIDBrokerage clientsIdentityAccountId
50SenderSubIDBrokerage clientsIdentityId
5074FundCommissionOptionBrokerage clients
5000RecipientProfileIdBrokerage clientsProfileID that receives settled currency
Optional
TagFieldWhen PresentNotes
2362SelfMatchPreventionIDIf enabledPrevents self-matching. Up to 36 characters. Requires additional permissions.
See also: Execution Reports - Fills for fill details during the order lifecycle.