4. FastConnect Trading
Placing/amending/cancelling orders, supported order types, and tracking order status.
My order fails with 'Insufficient Balance' — what's causing it?
Check, in order:
- Is the account balance sufficient?
- Are other pending orders using up your buying power?
- Have trading fees been accounted for?
- Is the account frozen or restricted?
Call trade-accountBalance to check your balance, or trade-maxbuysell to check the maximum buy/sell quantity before placing an order.
How do I cancel or amend an existing order?
Use trade-order-cancel (cancel) or trade-order-modify (amend), passing orderId or clientRequestId to identify the order. Orders that are fully filled (FF), expired (EX), or already rejected (RJ) cannot be amended/cancelled — see the full order lifecycle in the Order Status Flow appendix.
Derivatives order response has no orderId — how do I get it?
Add "isReturnOrderId": true to the trade-order-place request (or to each order in trade-order-batch-place). When omitted, equity accounts return orderId by default while derivatives accounts do not. Sending false for an equity account hides orderId from the response (null). If you don't take orderId from the response, you still receive it on the TRADING channel (orderEvent), or you can amend/cancel by clientRequestId. WebSocket API: the PD ack never includes orderId.
What order types does the API support?
LO (Limit Order — a specific price), MP (Market Price — matches at market price), ATO (opening auction), ATC (closing auction). The FCO group additionally supports 7 conditional order types (Trailing Stop, Take Profit, Stop Loss...) — see the Conditional Order Reference.
Can I track order status in real time?
Yes — subscribe to channel TRADING over WebSocket to receive orderEvent/orderMatchEvent notifications the moment an order's status changes, instead of continuously polling REST. See Sub/Unsub Trading Data.