developers:fixapi:orderstatusrequest

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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 chaddevelopers: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 (`MsgType=H`) is used by FIX API clients to electronically query the instantaneous state of an order.+The Order Status Request message queries the current state of an order.
  
-The order is identified primarily by: +===== Order Identification ===== 
-  * **OrderID** (`Tag 37`– Unique ID assigned by T4 servers +**Required:** 
-  * **SecurityID** (`Tag 48`– Instrument identifier (T4 Market ID) +  OrderID (37) - T4-assigned unique ID 
-  * **Side** (`Tag 54`– Buy/Sell side+  * SecurityID (48) T4 Market ID   
 +  * Side (54) Buy/Sell direction
  
-From the client’s perspective, the order can also be identified with: +**Optional:** 
-  * **Client Order ID** (`Tag 11`– Verbose ID (12–20 characters)+  ClOrdID (11) - Client order ID 
 +  * ClientID (109- Echoed as MassStatusReqID in response
  
-----+===== 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 Unknown` (`Tag 39=U`) +
-  * All responses have: +
-    - `PossResend` (`Tag 97=Y`) +
-    - `ExecType Order Status` (`Tag 150=I`)+
  
-Optionally, the request can include: +**Message Direction:** Client → T4
-  * **ClientID** (`Tag 109`) – echoed in the Execution Report as `MassStatusReqID` (`Tag 584`)+
  
-----+^ 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/empty/invalid tags) are rejected with a **FIX Session Reject**.+
  
-----+**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. +<code> 
-This message complements **Order Mass Status Request**. +8=FIX.4.2|9=200|35=H|49=T4Test|56=test|52=20160725-20:39:01.415
-* 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 +</code>
-  - Order no longer exists in the book +
- +
----- +
- +
-=== Message Dictionary === +
-^ Tag  ^ Field Name              ^ Req'd ^ Comments                                                                                         ^ +
-**Standard Header** | Y        | MsgType H                                                                                             +
-   | Account                 | N     | Account code for which status request is submitted                                                | +
-| 11   | ClOrdID                 | N     | Client-side identifier (max 20 chars)                                                             | +
-| 37   | OrderId                 | Y     | Unique order ID assigned by T4 servers                                                             +
-48   | SecurityID              | Y     | T4 Market ID                                                                                        | +
-| 55   | Symbol                  | N     | T4 Contract ID                                                                                      | +
-| 207  | SecurityExchange        | N     | T4 Exchange ID                                                                                      | +
-| 167  | SecurityType            | N     | FUT=Futures, OPT=Options, STK=Stock, SYN=Synthetic, BIN=Binary Option                              | +
-| 54   | Side                    | Y     | 0=None (Flatten), 1=Buy, 2=Sell                                                                    | +
-| 109  | ClientID                | N     | Optional client identifier, echoed back as MassStatusReqID in Execution Report                     +
-107  | SecurityDesc            | N     | Description of Security ID                                                                         | +
-| 1028 | ManualOrderIndicator    | N     | Y=Manual, N=Automated                                                                              +
-| **Standard Trailer** | Y                                                                                                              | +
- +
-==== Sample Messages ==== +
- +
- +
-Submitting an Order Status Request:+
  
 +**Status Response:**
 <code> <code>
-1 - STATUSREQUEST +8=FIX.4.2|9=450|35=8|49=test|56=T4Test|50=T4FIX|52=20160725-20:39:01.417| 
- +143=US,IL|97=Y|1=_Account_|11=fc-636050440308221244|41=fr-636050433226127451| 
-34=4|49=T4Test|56=test|52=20160725-20:39:01.415|1=_Account_|11=fc-636050440308221244|37=D33CF7F0-206A-48F8-8C8E-22745339FA05|48=XCME_Eq ES (U16)|54=1|55=ES|207=CME_Eq|109=osr-636050579414153893|167=FUT| +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:47:19.425|21=1|204=0| 
-[TargetCompID] 56 = test +584=osr-636050579414153893|10=234|
-[SendingTime] 52 = 20160725-20:39:01.415 +
-[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:39:01.417|143=US,IL|97=Y|1=_Account_|11=fc-636050440308221244|41=fr-636050433226127451|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|207=CME_Eq|200=201609|59=0|107=E-mini S&P 500 Sep16|54=1|167=FUT|38=1|40=2|44=215375|912=Y|60=20160725-16:47:19.425|21=1|204=0|584=osr-636050579414153893| +
- +
-[MsgSeqNum] 34 16 +
-[SenderCompID] 49 = test +
-[TargetCompID] 56 = T4Test +
-[SenderSubID] 50 = T4FIX +
-[SendingTime] 52 = 20160725-20:39:01.417 +
-[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:47:19.425 +
-[HandlInst] 21 = 1 (AUTOMATED_EXECUTION_NOBROKER) +
-[CustomerOrFirm] 204 = 0 (CUSTOMER) +
-[MassStatusReqID] 584 = osr-636050579414153893+
 </code> </code>
  
-[[developers:legacy_fix_api|T4 FIX API Home]] +===== 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, API) using OrderID 
 +  * Complements Order Mass Status Request for bulk queries
  • developers/fixapi/orderstatusrequest.1757640927.txt.gz
  • Last modified: 2025/09/12 01:35
  • by chad