Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision | |||
faq:collateral_inquiry [2025/07/28 16:20] – rob | faq:collateral_inquiry [2025/07/28 16:22] (current) – rob | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Collateral Inquiry ====== | ====== Collateral Inquiry ====== | ||
- | Application Management | + | ===== 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, or Security Definitions. | ||
- | Beyond order routing, the T4 FIX API provides additional functionalities to query and manage positions, orders, and accounts. The Collateral Inquiry | + | Driven by its **Subscription Request Type (Tag 263)**, the Collateral Inquiry |
- | 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 | |
- | Subscribe to multiple accounts for the connected user | + | |
- | + | | |
- | Unsubscribe | + | |
- | + | | |
- | List User Accounts | + | |
- | + | ||
- | List History of a specific order | + | |
- | + | ||
- | List Orders of a specific account | + | |
- | + | ||
- | List User Information | + | |
===== Listing User Accounts ===== | ===== Listing User Accounts ===== | ||
+ | After FIX logon success, the CTS API system requires subscription to user accounts before any orders can be placed. This is a key requirement without which no order would be accepted during the FIX Session. | ||
- | After FIX logon success, the CTS API system requires subscription to user accounts before any orders can be placed. This is a key requirement. | + | By default, |
- | + | ||
- | By default, all user accounts are automatically subscribed to on login. | + | |
- | + | ||
- | To list accounts, send a Collateral Inquiry with: | + | |
- | + | ||
- | Tag 263=0 (Snapshot) | + | |
- | + | ||
- | Tag 896=0 (Customer-Accounts) | + | |
- | + | ||
- | Responses are returned as multiple Collateral Reports with: | + | |
- | + | ||
- | Account Name in Tag 1 | + | |
- | Account | + | To retrieve a list of accounts: |
+ | * Set **Tag 263 = 0** | ||
+ | * Set **Tag 896 = 0 (Customer-Accounts)** | ||
+ | * Returned as multiple Collateral Reports with **Tag 1 (Account | ||
===== Account Subscriptions ===== | ===== Account Subscriptions ===== | ||
- | |||
To subscribe to accounts: | To subscribe to accounts: | ||
+ | * Use **Tag 263 = 1 (Snapshot Plus Updates)** | ||
+ | * Use PartyID repeating group: | ||
+ | * **Tag 452 = 24 (Customer-Account)** | ||
+ | * **Tag 448 = Account ID** | ||
+ | * Set **Tag 896 = 0 (Customer-Accounts)** | ||
- | Tag 263=1 (Snapshot Plus Updates) | + | Response includes: |
+ | * Account State (details, P/L, margins, balances) | ||
+ | * Account Portfolio (orders, fills, positions) | ||
- | Tag 896=0 (Customer-Accounts) | + | To suppress verbose responses: |
+ | * Set **Tag 725 = 1 (Out-of-Band)** | ||
+ | * Or use Logon message with **Tag 372 = d** | ||
- | Use PartyID repeating group with: | + | **Note:** Subscriptions are by Account ID (Tag 448), not Account Name. |
- | Tag 452=24 | + | To refresh data (e.g., to receive new Execution Reports), unsubscribe |
- | + | ||
- | Tag 448 = list of Account IDs | + | |
- | + | ||
- | Subscriptions are performed by Account ID (Tag 448), not Account Name. | + | |
- | + | ||
- | A successful subscription returns: | + | |
- | + | ||
- | Account State (margins, balances, PnL) | + | |
- | + | ||
- | Account Portfolio (orders, fills, positions) | + | |
- | + | ||
- | You can suppress these by: | + | |
- | + | ||
- | Setting Tag 725=1 (Out-Of-Band) | + | |
- | + | ||
- | Or setting Tag 372=d in Logon | + | |
- | + | ||
- | To re-trigger reports, unsubscribe | + | |
===== Unsubscribing from Accounts ===== | ===== Unsubscribing from Accounts ===== | ||
+ | To unsubscribe: | ||
+ | * Set **Tag 263 = 2** | ||
+ | * Use PartyID group: | ||
+ | * **Tag 452 = 24** | ||
+ | * **Tag 448 = Account ID** | ||
+ | * Set **Tag 896 = 0** | ||
- | Send a Collateral Inquiry with: | + | **Note:** No response is returned. |
- | + | ||
- | Tag 263=2 (Disable Previous Snapshot Plus Update) | + | |
- | + | ||
- | Tag 896=0 (Customer-Accounts) | + | |
- | + | ||
- | PartyID group with: | + | |
- | + | ||
- | Tag 452=24 | + | |
- | + | ||
- | Tag 448 = Account IDs | + | |
- | + | ||
- | No response is returned | + | |
===== Listing Order History ===== | ===== Listing Order History ===== | ||
+ | To list a specific order’s history: | ||
+ | * **Tag 263 = 0** | ||
+ | * PartyID group: | ||
+ | * **Tag 452 = 3 (Order ID)** | ||
+ | * **Tag 448 = Order ID** | ||
+ | * Set **Tag 896 = 3 (Order-History)** | ||
- | To get order history: | + | Returns |
- | + | ||
- | Tag 263=0 (Snapshot) | + | |
- | + | ||
- | Tag 896=3 (Order-History) | + | |
- | + | ||
- | Use PartyID group: | + | |
- | + | ||
- | Tag 452=3 (Order-Id) | + | |
- | + | ||
- | Tag 448 = Order ID(s) | + | |
- | + | ||
- | Responses return | + | |
===== Listing Account Orders and Fills ===== | ===== Listing Account Orders and Fills ===== | ||
+ | To get an account’s portfolio snapshot: | ||
+ | * **Tag 263 = 0** | ||
+ | * PartyID group: | ||
+ | * **Tag 452 = 24 (Customer Account)** | ||
+ | * **Tag 448 = Account ID** | ||
+ | * Set **Tag 896 = 4 (or other values)** | ||
- | To list orders/ | + | Returns Execution Reports |
+ | * Working, filled, rejected, suspended, etc. | ||
+ | * Fills include **Tag 31 (LastPx)** and **Tag 32 (LastQty)** | ||
- | Tag 263=0 (Snapshot) | + | Differentiation: |
- | + | | |
- | Tag 896=4 or other appropriate CollInquiryQualifier | + | * Include **Tag 584 (MassStatusReqID)** to match **Tag 909 (CollInquiryID)** |
- | + | ||
- | Use PartyID group: | + | |
- | + | ||
- | Tag 452=24 (Customer-Account) | + | |
- | + | ||
- | Tag 448 = Account IDs | + | |
- | + | ||
- | Responses return | + | |
- | + | ||
- | Tag 97=Y (PossResend) | + | |
- | + | ||
- | Tag 584 (MassStatusReqID) | + | |
- | + | ||
- | To differentiate fills: | + | |
- | + | ||
- | Fills contain Tag 31 (LastPx) and Tag 32 (LastQty) | + | |
===== Listing User/Trader Information ===== | ===== Listing User/Trader Information ===== | ||
+ | To retrieve trader info: | ||
+ | * Set **Tag 896 = 13** | ||
+ | * Use **Tag 448 = " | ||
- | To list trader/user information: | + | Multiple Collateral Reports returned in multi-trader |
- | Tag 896=13 (User/ | + | Reports |
- | + | | |
- | Optional PartyID group: | + | |
- | + | * Enabled | |
- | Tag 452=24 (Customer_Account) | + | |
- | + | ||
- | Tag 452=22 (User_Exchanges) | + | |
- | + | ||
- | PartyID Tag 448 may be: | + | |
- | + | ||
- | A specific username (Tag 553) | + | |
- | + | ||
- | The string " | + | |
- | + | ||
- | Response | + | |
- | + | ||
- | User name, unique | + | |
- | + | ||
- | Assigned accounts | + | |
===== Message Dictionary ===== | ===== Message Dictionary ===== | ||
- | |||
^ Tag ^ Field Name ^ Req'd ^ Comments ^ | ^ Tag ^ Field Name ^ Req'd ^ Comments ^ | ||
- | | Standard Header | + | | *Standard Header* | Y | MsgType = BB | |
| 909 | CollInquiryID | Y | Unique identifier for this inquiry | | | 909 | CollInquiryID | Y | Unique identifier for this inquiry | | ||
- | | 263 | SubscriptionRequestType | Y | | + | | 263 | SubscriptionRequestType | Y | 0 = SnapShot \\ 1 = Snapshot Plus Updates \\ 2 = Disable Previous Snapshot Plus Updates | |
- | 0 = Snapshot | + | | 725 | ResponseTransportType | N | 0 = In Band (default) \\ 1 = Out of Band | |
- | 1 = Snapshot Plus Updates | + | |
- | 2 = Disable Previous Snapshot Plus Updates | + | |
- | | 725 | ResponseTransportType | N | | + | |
- | 0 = In Band (Default) \ | + | |
- | 1 = Out of Band | | + | |
| 1 | Account | N | Customer Account | | | 1 | Account | N | Customer Account | | ||
| 581 | AccountType | N | Type of Customer Account | | | 581 | AccountType | N | Type of Customer Account | | ||
- | PartyID | + | ==== Start Repeating Group: |
^ Tag ^ Field Name ^ Req'd ^ Comments ^ | ^ Tag ^ Field Name ^ Req'd ^ Comments ^ | ||
- | | 453 | NoPartyIDs | N | Number of PartyIDs | + | | 453 | NoPartyIDs | N | Number of PartyID entries |
- | | 448 | PartyID | Y | See PartyRole (Tag 452) | | + | | 448 | PartyID | Y | Value depends on Party Role | |
- | | 452 | PartyRole | N | | + | | 452 | PartyRole | N | 22 = User Exchanges \\ 24 = Customer Account \\ 3 = Order ID | |
- | 22 = User Exchanges \ | + | |
- | 24 = Customer Account \ | + | |
- | 3 = Order Id | | + | |
- | CollInquiryQualifier | + | ==== Start Repeating Group: |
^ Tag ^ Field Name ^ Req'd ^ Comments ^ | ^ Tag ^ Field Name ^ Req'd ^ Comments ^ | ||
- | | 938 | NoCollInquiryQualifier | N | Repeating Group count | | + | | 938 | NoCollInquiryQualifier | N | Number of qualifiers |
- | | 896 | CollInquiryQualifier | Y | | + | | 896 | CollInquiryQualifier | Y | 0 = Customer Accounts \\ 1 = Customer Exchanges \\ 3 = Order History \\ 4 = Account Orders |
- | 0 = Customer Accounts \ | + | |
- | 1 = Customer Exchanges \ | + | |
- | 3 = Order History \ | + | |
- | 4 = Account Orders | + | |
- | 5 = Account Orders | + | |
- | 6 = Account Orders | + | |
- | 7 = Account Orders | + | |
- | 8 = Account Orders – Rejected \ | + | |
- | 9 = Account Orders – Suspended \ | + | |
- | 11 = Account | + | |
- | 12 = Account | + | |
- | 13 = User/Trader Information | | + | |
| 58 | Text | N | Free-form text | | | 58 | Text | N | Free-form text | | ||
- | | Standard Trailer | + | | *Standard Trailer* | Y | | |