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

# Execution Reports - Rejected and Expired

> Order reject and expired execution report message formats, rejection reason codes, and detailed failure messages.

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

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `8` | BeginString | Always | Standard FIX header |
| `9` | BodyLength | Always | Standard FIX header |
| `35` | MsgType | Always | `8` (Execution Report) |
| `49` | SenderCompID | Always | Standard FIX header |
| `56` | TargetCompID | Always | Standard FIX header |
| `34` | MsgSeqNum | Always | Standard FIX header |
| `52` | SendingTime | Always | Standard FIX header |

#### Standard FIX Trailer

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `10` | CheckSum | Always | |

### Reject Response Fields

**Always Present**

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `54` | Side | Always | `1` = Buy, `2` = Sell |
| `150` | ExecType | Always | `8` (Rejected) |
| `32` | lastShares | Always | `0` |
| `109` | ClientID | Always | |
| `1` | Account | Always | |
| `31` | LastPx | Always | `0` |
| `103` | OrdRejReason | Always | See [Rejection Reason Codes](#rejection-reason-codes--ordrejreason-103) |
| `151` | LeavesQty | Always | `0` |
| `60` | TransactTime | Always | |
| `58` | Text | Always | See [Detailed Rejection Messages](#detailed-rejection-messages--text-58) |
| `20` | ExecTransType | Always | `0` (New) |
| `55` | Symbol | Always | Currency pair |
| `17` | ExecID | Always | |
| `14` | CumQty | Always | `0` |
| `11` | ClOrdID | Always | |
| `44` | Price | Always | |
| `6` | AvgPx | Always | `0` |
| `41` | OrigClOrdID | Always | |
| `40` | OrdType | Always | `1` = Market, `2` = Limit, `3` = Stop Market, `4` = Stop Limit |
| `39` | OrdStatus | Always | `8` (Rejected) |
| `37` | OrderID | Always | |
| `381` | GrossTradeAmt | Always | `0` |
| `59` | TimeInForce | Always | `1` = GTC, `3` = IOC, `4` = FOK, `6` = GTT |

**Conditional**

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `38` | OrderQty | Limit and market sell orders | Base quantity |
| `152` | CashOrderQty | Market buy orders | Fiat notional |
| `18` | ExecInst | Post-only orders | `6` (Post-Only) |
| `126` | ExpireTime | GTT orders | `YYYYMMDD-HH:MM:SS` format |

**Brokerage Clients**

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `5047` | AllocBrokerAccountID | Brokerage clients | IdentityAccountId |
| `50` | SenderSubID | Brokerage clients | IdentityId |
| `5074` | FundCommissionOption | Brokerage clients | |
| `5000` | RecipientProfileId | Brokerage clients | ProfileID that receives settled currency |

**Optional**

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `2362` | SelfMatchPreventionID | If enabled | Prevents self-matching. Up to 36 characters. Requires additional permissions. |

### Rejection Reason Codes – OrdRejReason (`103`)

| Value | Meaning |
| - | - |
| `0` | Broker option |
| `1` | Unknown symbol |
| `2` | Exchange closed |
| `3` | Order exceeds limit |
| `5` | Unknown order |
| `6` | Duplicate order |
| `8` | Stale order |

### Detailed Rejection Messages – Text (`58`)

**Validation Errors**

| Text Value | Description |
| - | - |
| `ClientId Is required` | Missing ClientID field |
| `ClientOrderId Is required` | Missing ClOrdID field |
| `Account Is required` | Missing Account field |
| `Symbol Is required` | Missing Symbol field |
| `OriginalClientOrderId Is required` | Missing OrigClOrdID field |
| `HandlingInstructions Expected Value for this field is 1` | HandlInst must be `1` |
| `Side {value} is not an acceptable value for this field` | Invalid Side value |
| `OrderType {value} is not an acceptable value for this field` | Invalid OrdType value |
| `CashOrderQty Must be greater than zero` | CashOrderQty must be > 0 |
| `OrderQuantity Must be greater than zero` | OrderQty must be > 0 |
| `StopPrice Must be zero` | StopPx must be 0 for non-stop orders |
| `ExpirationTime must be of format YYYYMMDD-HH:MM:SS or YYYYMMDD-HH:MM:SS.sss` | Invalid ExpireTime format |
| `InvalidTimeInForce` | Invalid TimeInForce for this order type |
| `MissingExpirationDate` | ExpireTime required for GTT orders |
| `TimeInForce Not supported` | Unsupported TimeInForce for this order type |
| `Account Is not a GUID` | Account must be a valid GUID |
| `ClientId Is not a GUID` | ClientID must be a valid GUID |
| `Invalid Message Type` | Unsupported MsgType |

**Business Rule Violations**

| Text Value | Description |
| - | - |
| `InsufficientBalance` | Account lacks sufficient funds |
| `NotionalValueTooLarge` | Exceeds [maximum notional order size](/guides/crypto-brokerage/orders-precision-rounding#order-limitations) |
| `InvalidPriceForTakerOrder` | Price deviates 15%+ from midpoint. See [Limit Order Taker Price Protection](/guides/crypto-brokerage/fix/reference/new-order#limit-order-taker-price-protection). |
| `MinimumCommissionExceedsNotional` | Order notional value is too small; minimum commission would exceed it |
| `InactiveInstrument` | Market is unavailable or in cancel-and-post-only mode |
| `MarketHalted` | Market is halted |
| `OrderIdentifierIsNotUniqueForUser` | Duplicate client order identifier for this user |
| `TooManyOpenOrders` | User has exceeded the maximum of 25,000 open orders. Contact your Paxos representative to request a different limit. |
| `UserNotAuthorizedForTrading` | User is not authorized to trade |
| `BlacklistedCountryForTrading` | User's country is blocked from trading |
| `UserNotExemptFromSelfMatchPrevention` | Self-match prevention triggered and user is not exempt |
| `MarketDataUnavailable` | Market data is unavailable for validation |
| `MarketConditionsPreventedExecutionFailReason` | Market conditions prevent execution |
| `PaxAccountingUnknownError` | Internal processing error |

**Identity and Account Errors**

| Text Value | Description |
| - | - |
| `InvalidRecipientProfileId` | Invalid RecipientProfileId |
| `InvalidIdentityId` | Invalid IdentityId |
| `InvalidIdentityAccountId` | Invalid IdentityAccountId |
| `InvalidFundCommissionOption` | Invalid FundCommissionOption value |
| `DisabledIdentityId` | IdentityId is disabled |
| `DisabledIdentityAccountId` | IdentityAccountId is disabled |
| `PendingIdentityId` | IdentityId is pending approval |
| `PendingIdentityAccountId` | IdentityAccountId 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 Value | Description |
| - | - |
| `no open limit order on other side` | Market order rejected — no liquidity on the opposite side |
| `order marketable to existing quote/book` | Post-only order rejected — it would cross the book |
| `Stale Order` | Order 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).

<Note>
  Market buy order executions are captured in [Partial Fill](/guides/crypto-brokerage/fix/reference/execution-report-fills) messages. The Expired message is a summary confirming the order is closed.
</Note>

### Standard FIX Fields

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `8` | BeginString | Always | Standard FIX header |
| `9` | BodyLength | Always | Standard FIX header |
| `35` | MsgType | Always | `8` (Execution Report) |
| `49` | SenderCompID | Always | Standard FIX header |
| `56` | TargetCompID | Always | Standard FIX header |
| `34` | MsgSeqNum | Always | Standard FIX header |
| `52` | SendingTime | Always | Standard FIX header |

#### Standard FIX Trailer

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `10` | CheckSum | Always | |

### Expired Response Fields

**Always Present**

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `54` | Side | Always | `1` = Buy, `2` = Sell |
| `150` | ExecType | Always | `C` (Expired) |
| `32` | lastShares | Always | |
| `109` | ClientID | Always | |
| `1` | Account | Always | |
| `31` | LastPx | Always | |
| `151` | LeavesQty | Always | `0` |
| `60` | TransactTime | Always | |
| `58` | Text | Always | `Expired Order` |
| `20` | ExecTransType | Always | `0` (New) |
| `55` | Symbol | Always | Currency pair |
| `17` | ExecID | Always | |
| `14` | CumQty | Always | Total filled quantity |
| `11` | ClOrdID | Always | |
| `44` | Price | Always | |
| `6` | AvgPx | Always | Average fill price |
| `40` | OrdType | Always | |
| `39` | OrdStatus | Always | `C` (Expired) |
| `37` | OrderID | Always | |
| `381` | GrossTradeAmt | Always | **lastShares (`32`)** \* **LastPx (`31`)** |
| `59` | TimeInForce | Always | `1` = GTC, `3` = IOC, `4` = FOK, `6` = GTT |

**Conditional**

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `12` | Commission | When charged | Commission paid |
| `13` | CommType | When charged | `3` (Absolute Value) |
| `38` | OrderQty | Limit and market sell orders | Base quantity |
| `152` | CashOrderQty | Market buy orders | Fiat notional |
| `18` | ExecInst | Post-only orders | `6` (Post-Only) |
| `5851` | LiquidityInd | When available | `1` = Add, `2` = Remove |
| `126` | ExpireTime | GTT orders | `YYYYMMDD-HH:MM:SS` format |

**Brokerage Clients**

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `5047` | AllocBrokerAccountID | Brokerage clients | IdentityAccountId |
| `50` | SenderSubID | Brokerage clients | IdentityId |
| `5074` | FundCommissionOption | Brokerage clients | |
| `5000` | RecipientProfileId | Brokerage clients | ProfileID that receives settled currency |

**Optional**

| Tag | Field | When Present | Notes |
| - | - | - | - |
| `2362` | SelfMatchPreventionID | If enabled | Prevents self-matching. Up to 36 characters. Requires additional permissions. |

> See also: [Execution Reports - Fills](/guides/crypto-brokerage/fix/reference/execution-report-fills) for fill details during the order lifecycle.
