This is an old revision of the document!
Order Routing
The WebSocket API provides real-time order routing, allowing clients to submit, revise, and pull orders. All order-related operations are sent within a **ClientMessage** envelope and responses are received within a **ServerMessage** envelope.
Submitting an Order
To submit an order, clients send an OrderSubmit message.
Note: You must subscribe to the Account before submitting an order into it. Orders will be rejected if the account is not subscribed.
Example OrderSubmit message:
OrderSubmit {
UserId = "efda0709-af12-4b65-8971-5089edb4aaf0",
AccountId = "448c9ddd-6a50-4852-85ea-aad3b6d60620",
MarketId = "XCME_C ZC (H25)",
Orders = [
{
BuySell = BuySell.Buy,
PriceType = PriceType.Limit,
TimeType = TimeType.Normal,
Volume = 5,
LimitPrice = "4200.50"
}
]
}
Note: The OrderSubmit message allows submitting multiple orders at once.
Revising an Order
To revise an existing order, clients send an OrderRevise message.
Example OrderRevise message:
OrderRevise {
UserId = "efda0709-af12-4b65-8971-5089edb4aaf0",
AccountId = "448c9ddd-6a50-4852-85ea-aad3b6d60620",
MarketId = "XCME_C ZC (H25)",
Revisions = [
{
UniqueId = "a3b1c5f2-7d43-4f9b-88e2-1e2f75c6d9a1",
Volume = 10,
LimitPrice = "4250.00"
}
]
}
Pulling (Cancelling) an Order
To cancel an order, clients must send an OrderPull message with the order ID.
Example OrderPull message:
OrderPull {
UserId = "efda0709-af12-4b65-8971-5089edb4aaf0",
AccountId = "448c9ddd-6a50-4852-85ea-aad3b6d60620",
MarketId = "XCME_C ZC (H25)",
Pulls = [
{
UniqueId = "a3b1c5f2-7d43-4f9b-88e2-1e2f75c6d9a1"
}
]
}