This is an old revision of the document!
Collateral Inquiry
Application Management
Beyond order routing, the T4 FIX API provides additional functionalities to query and manage positions, orders, and accounts. The Collateral Inquiry message (`MsgTyp=BB`) is the cornerstone of (non-routing) application management. If the requests are successful, Collateral Inquiries result in responses from the T4 FIX API server with:
- Execution Reports
- Collateral Reports
- Security Definitions
Driven by its Subscription Request Type (`Tag 263`), the Collateral Inquiry can provide the following functionalities:
- Subscribe to multiple accounts for the connected user
- UnSubscribe from multiple accounts for the connected user
- List User Accounts
- List History of a specific order
- List Orders of a specific account
- List User Information
Listing User Accounts
After FIX logon success, the CTS API system requires subscription to user accounts before any orders can be placed. By default, all user accounts are automatically subscribed upon successful login. If only a subset of accounts is required, Automatic Account Subscription can be turned off with the Logon message (`Tag 372=BB`). Account subscriptions must then be explicitly requested with the Collateral Inquiry message.
The List User Accounts request (`Tag 263=0`) retrieves the accounts the connected user is authorized for. The response is multiple Collateral Reports with:
- Account Name (`Tag 1`)
- Account ID (`Tag 448`)
To request the account list, set Collateral Inquiry Qualifier to Customer-Accounts (`Tag 896=0`).
Account Subscriptions
To subscribe to accounts:
- Use `Subscription Request Type` = SnapShot-Plus-Updates (`Tag 263=1`)
- Provide multiple accounts via the PartyID repeating group with:
- `PartyRole` = Customer-Account (`Tag 452=24`)
- `PartyID` = User Account IDs (`Tag 448`)
- Set Collateral Inquiry Qualifier = Customer-Accounts (`Tag 896=0`)
A successful subscription loads the accounts and returns:
- Account State (static details, P/L, margins, balances)
- Account Portfolio Composition (orders, fills, positions)
To suppress verbose reports:
- Set `ResponseTransportType` (`Tag 725=1`) for Out-Of-Band responses.
- Or in Logon, set `RefMsgType` (`Tag 372=d`) to avoid echoing portfolio data.
Redundant subscriptions generate no response. Portfolio data can be refreshed by unsubscribing and re-subscribing.
UnSubscribing From Accounts
To unsubscribe from accounts:
- Set `Subscription Request Type` = Disable-Previous-Snapshot-Plus-Update (`Tag 263=2`)
- Specify accounts via PartyID repeating group:
- `PartyRole` = Customer-Account (`Tag 452=24`)
- `PartyID` = Account IDs (`Tag 448`)
- Set `Collateral Inquiry Qualifier` = Customer-Accounts (`Tag 896=0`)
No messages are returned for unsubscriptions.
Listing Order History
To get the chronology of a specific order:
- Set `Subscription Request Type` = SnapShot (`Tag 263=0`)
- Provide `OrderID` in `PartyID` (`Tag 448`) with:
- `PartyRole` = Order-Id (`Tag 452=3`)
- Set `Collateral Inquiry Qualifier` = Order-History (`Tag 896=3`)
Returns multiple Pending Execution Reports for all order chain states, including:
- Risk Approval
- Order Submittal to exchange
- Order Acceptance by exchange
Listing Account Orders and Fills
To get an account’s portfolio snapshot:
- Set `Subscription Request Type` = SnapShot (`Tag 263=0`)
- Provide Account IDs in `PartyID` (`Tag 448`) with:
- `PartyRole` = Customer-Account (`Tag 452=24`)
- Set `Collateral Inquiry Qualifier` = Account-Orders (`Tag 896=4`) or other order-related qualifier.
Returns Execution Reports for all orders and fills (working, filled, rejected, suspended, etc.). Key indicators:
- `PossResend` (`Tag 97=Y`) marks these as inquiry results, not live updates.
- `MassStatusReqID` (`Tag 584`) matches the `CollInquiryID` (`Tag 909`).
- Fills include `LastPx` (`Tag 31`) and `LastShares`/`LastQty` (`Tag 32`).
Listing User/Trader Information
For User/Trader Information inquiries:
- Set `Collateral Inquiry Qualifier` = User/Trader Information (`Tag 896=13`)
- May return multiple Collateral Reports if in Multi-Trader mode (Logon with `RefMsgType=UCG`).
User/Trader Collateral Reports (`Tag 854=8`) include:
- User’s name, unique ID, type
- Firm name, parent firm name, roles
- Optionally: assigned accounts (`PartyRole=24`) and enabled exchanges (`PartyRole=22`)
You can request:
- All logged-in traders (`PartyID` = “Traders”)
- Specific trader (`PartyID` = UserName from Trader Logon)
Message Dictionary
Tag | Field Name | Req'd | Comments |
---|---|---|---|
Standard Header | Y | MsgType = BB | |
909 | CollInquiryID | Y | Unique identifier for this inquiry. |
263 | SubscriptionRequestType | Y | Type of inquiry: `0`=SnapShot, `1`=Snapshot Plus Updates (Subscribe), `2`=Disable Previous Snapshot Plus Updates (UnSubscribe) |
725 | ResponseTransportType | N | `0`=In Band (Default), `1`=Out of Band (silent). |
1 | Account | N | Customer Account |
581 | AccountType | N | Type of Customer Account |
Start Repeating Group | PartyIDs | ||
453 | NoPartyIDs | N | Number of PartyIDs fields requested. |
448 | PartyID | Y | Value depends on PartyRole. |
452 | PartyRole | N | `22`=User Exchanges, `24`=Customer Account, `3`=Order Id |
End Repeating Group | |||
Start Repeating Group | Collateral Inquiry Qualifiers | ||
938 | NoCollInquiryQualifier | N | Number of qualifiers |
896 | CollInquiryQualifier | Y | `0`=Customer Accounts, `1`=Customer Exchanges, `3`=Order History, `4`=Account Orders - All, `5`=Working, `6`=Canceled, `7`=Filled, `8`=Rejected, `9`=Suspended, `11`=Fills, `12`=Overnights, `13`=User/Trader Information |
End Repeating Group | |||
58 | Text | N | Free-form text |
Standard Trailer | Y |