Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
developers:fixapi:orderstatusrequest [2025/09/12 01:35] – ↷ Page moved and renamed from developers:fixapi.orderstatusrequest to developers:fixapi:orderstatusrequest chad | developers:fixapi:orderstatusrequest [2025/09/12 02:09] (current) – chad | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Order Status Request | + | ====== ORDER STATUS REQUEST [35=H] ====== |
- | **Requesting the Status of an Order** | + | |
- | The **Order Status Request** message | + | The Order Status Request message |
- | The order is identified primarily by: | + | ===== Order Identification ===== |
- | * **OrderID** (`Tag 37`) – Unique | + | **Required:** |
- | | + | |
- | | + | * SecurityID (48) - T4 Market ID |
+ | * Side (54) - Buy/ | ||
- | From the client’s perspective, | + | **Optional:** |
- | | + | |
+ | * ClientID | ||
- | ---- | + | ===== Response Behavior ===== |
+ | * Returns Execution Report (35=8) with ExecType=I, PossResend=Y | ||
+ | * Unknown orders return OrdStatus=U | ||
+ | * Maximum 50 requests per session | ||
- | === Response | + | ===== Message Specification |
- | The **Order Status Request** is responded to with an **Execution Report**: | + | |
- | * If recognized – returns current order status | + | |
- | * If unrecognized – returns `Order Status | + | |
- | * All responses have: | + | |
- | - `PossResend` (`Tag 97=Y`) | + | |
- | - `ExecType | + | |
- | Optionally, the request can include: | + | **Message Direction:** Client → T4 |
- | | + | |
- | ---- | + | ^ Tag ^ Field Name ^ Type ^ Req'd ^ Description ^ |
+ | | | **Message Header** | | Y | MsgType = H | | ||
+ | | 1 | Account | String | O | Account code | | ||
+ | | 11 | ClOrdID | String | O | Client order ID (max 20 chars) | | ||
+ | | 37 | OrderID | String | Y | T4-assigned order ID | | ||
+ | | 48 | SecurityID | String | Y | T4 Market ID | | ||
+ | | 55 | Symbol | String | O | T4 Contract ID | | ||
+ | | 207 | SecurityExchange | String | O | T4 Exchange ID | | ||
+ | | 167 | SecurityType | String | O | FUT, OPT, STK, SYN, BIN | | ||
+ | | 54 | Side | Char | Y | 0=None, 1=Buy, 2=Sell | | ||
+ | | 109 | ClientID | String | O | Echoed as MassStatusReqID | | ||
+ | | 107 | SecurityDesc | String | O | Security description | | ||
+ | | 1028 | ManualOrderIndicator | Boolean | O | Y=Manual, N=Automated | | ||
+ | | | **Message Trailer** | | Y | | | ||
- | === Identifying the Order to be Queried | + | ===== Sample Messages ===== |
- | * Orders can be queried by **OrderID** (`Tag 37`) even if not entered via FIX API (e.g., via CTS Front-End or custom T4 API). | + | |
- | * Outside FIX API, **OrderID** is also called **UniqueID**. | + | |
- | * Malformed requests (missing/ | + | |
- | ---- | + | **Note:** Pipe (|) used for readability. Actual FIX messages use SOH (ASCII 01) delimiter. |
- | === Important Considerations === | + | **Status Request:** |
- | * Maintain a client-side order collection for reconciliation. | + | < |
- | * This message complements **Order Mass Status Request**. | + | 8=FIX.4.2|9=200|35=H|49=T4Test|56=test|52=20160725-20: |
- | * If AutoPortfolio Refresh is enabled (default), session orders are presented at session start. | + | 1=_Account_|11=fc-636050440308221244|37=D33CF7F0-206A-48F8-8C8E-22745339FA05| |
- | * Maximum **50 Order Status Requests** per FIX session. | + | 48=XCME_Eq ES (U16)|54=1|55=ES|207=CME_Eq|109=osr-636050579414153893| |
- | * Responses with Unknown Status (`39=U`) occur if: | + | 167=FUT|10=123| |
- | - Account is not subscribed | + | </ |
- | - Order no longer exists in the book | + | |
- | + | ||
- | ---- | + | |
- | + | ||
- | === Message Dictionary === | + | |
- | ^ Tag ^ Field Name ^ Req'd ^ Comments | + | |
- | | **Standard Header** | Y | MsgType | + | |
- | | 1 | Account | + | |
- | | 11 | ClOrdID | + | |
- | | 37 | OrderId | + | |
- | | 48 | SecurityID | + | |
- | | 55 | Symbol | + | |
- | | 207 | SecurityExchange | + | |
- | | 167 | SecurityType | + | |
- | | 54 | Side | Y | 0=None (Flatten), | + | |
- | | 109 | ClientID | + | |
- | | 107 | SecurityDesc | + | |
- | | 1028 | ManualOrderIndicator | + | |
- | | **Standard Trailer** | Y | + | |
- | + | ||
- | ==== Sample Messages ==== | + | |
- | + | ||
- | + | ||
- | Submitting an Order Status Request: | + | |
+ | **Status Response:** | ||
< | < | ||
- | 1 - STATUSREQUEST | + | 8=FIX.4.2|9=450|35=8|49=test|56=T4Test|50=T4FIX|52=20160725-20: |
- | + | 143=US, | |
- | 34=4|49=T4Test|56=test|52=20160725-20: | + | 17=D33CF7F0-206A-48F8-8C8E-22745339FA05_9_U|150=I| |
- | + | 37=D33CF7F0-206A-48F8-8C8E-22745339FA05|39=4|48=XCME_Eq ES (U16)|55=ES| | |
- | [MsgSeqNum] 34 = 4 | + | 207=CME_Eq|200=201609|59=0|107=E-mini S&P 500 Sep16|54=1|167=FUT|38=1| |
- | [SenderCompID] 49 = T4Test | + | 40=2|44=215375|912=Y|60=20160725-16: |
- | [TargetCompID] 56 = test | + | 584=osr-636050579414153893|10=234| |
- | [SendingTime] 52 = 20160725-20: | + | |
- | [Account] 1 = _Account_ | + | |
- | [ClOrdID] 11 = fc-636050440308221244 | + | |
- | [OrderID] 37 = D33CF7F0-206A-48F8-8C8E-22745339FA05 | + | |
- | [SecurityID] 48 = XCME_Eq ES (U16) | + | |
- | [Side] 54 = 1 (BUY) | + | |
- | [Symbol] 55 = ES | + | |
- | [SecurityExchange] 207 = CME_Eq | + | |
- | [ClientID] 109 = osr-636050579414153893 | + | |
- | [SecurityType] 167 = FUT (FUTURE) | + | |
- | + | ||
- | + | ||
- | 2 - EXECUTIONREPORT | + | |
- | + | ||
- | 34=16|49=test|56=T4Test|50=T4FIX|52=20160725-20: | + | |
- | + | ||
- | [MsgSeqNum] 34 = 16 | + | |
- | [SenderCompID] 49 = test | + | |
- | [TargetCompID] 56 = T4Test | + | |
- | [SenderSubID] 50 = T4FIX | + | |
- | [SendingTime] 52 = 20160725-20: | + | |
- | [TargetLocationID] 143 = US,IL | + | |
- | [PossResend] 97 = Y (YES) | + | |
- | [Account] 1 = _Account_ | + | |
- | [ClOrdID] 11 = fc-636050440308221244 | + | |
- | [OrigClOrdID] 41 = fr-636050433226127451 | + | |
- | [ExecID] 17 = D33CF7F0-206A-48F8-8C8E-22745339FA05_9_U | + | |
- | [ExecType] 150 = I (ORDER_STATUS) | + | |
- | [OrderID] 37 = D33CF7F0-206A-48F8-8C8E-22745339FA05 | + | |
- | [OrdStatus] 39 = 4 (CANCELED) | + | |
- | [SecurityID] 48 = XCME_Eq ES (U16) | + | |
- | [Symbol] 55 = ES | + | |
- | [SecurityExchange] 207 = CME_Eq | + | |
- | [MaturityMonthYear] 200 = 201609 | + | |
- | [TimeInForce] 59 = 0 (DAY) | + | |
- | [SecurityDesc] 107 = E-mini S&P 500 Sep16 | + | |
- | [Side] 54 = 1 (BUY) | + | |
- | [SecurityType] 167 = FUT (FUTURE) | + | |
- | [OrderQty] 38 = 1 | + | |
- | [OrdType] 40 = 2 (LIMIT) | + | |
- | [Price] 44 = 215375 | + | |
- | [LastRptRequested] 912 = Y (YES) | + | |
- | [TransactTime] 60 = 20160725-16: | + | |
- | [HandlInst] 21 = 1 (AUTOMATED_EXECUTION_NOBROKER) | + | |
- | [CustomerOrFirm] 204 = 0 (CUSTOMER) | + | |
- | [MassStatusReqID] 584 = osr-636050579414153893 | + | |
</ | </ | ||
- | [[developers: | + | ===== Notes ===== |
- | + | * Malformed messages rejected with Session Reject (35=3) | |
+ | * Unknown orders return OrdStatus=U if account unsubscribed or order expired | ||
+ | * Can query orders from any source (FIX, Front-End, | ||
+ | * Complements Order Mass Status Request for bulk queries |