trade-order-place
Place a new order.
Authorization
Bearer Enter the JWT token in the format Bearer <token>.
In: header
Header Parameters
The format of the request body content. Primarily application/json.
Information about the client sending the request.
The desired response language. If this header is absent, the system will default to en
The HMAC-SHA256 signature used to verify the integrity of the request.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
An order identifier created by the client, used for reconciliation in subsequent responses. This field is optional, but if provided it should be unique to avoid confusion when processing responses. When left empty, the system will automatically generate an order identifier for the customer and return it in the response & streaming.
The trading account number.
The securities symbol.
The buy or sell side of the trading order. (B - Buy, S - Sell)
The type of the trading order. (LO - Limit Order, ATO - At The Open, ATC - At The Close, MP - Market Price, MAK - Match and Kill, MOK - Match or Kill, MTL - Match then Limit, PLO)
The order quantity.
The order price. Required when orderType is LO (Limit Order); not required for other order types (ATO, ATC, MP, MAK, MOK, MTL, PLO).
The identifier of the device sending the order placement request. Typically the device's MAC address or IMEI.
Information about the browser or application sending the request.
The IP address of the device sending the request.
Optional — whether the response should include `orderId`. When omitted (or `null`), the system uses a default based on the account type: - Equity accounts: default `true` (the response includes `orderId`). - Derivatives accounts: default `false` (the response has no `orderId`; get it from streaming or the order book). For derivatives accounts, send `true` to receive `orderId` in the response. When the effective value is `false`, `orderId` in the response is `null`; the order is still placed normally and can still be modified/cancelled by `clientRequestId`. For the WebSocket API (`order.place`, `order.batchNew`), the `PD` ack never includes `orderId` regardless of this value; `orderId` arrives on the `order.{accountNo}` channel.
Response Headers
The request limit within the cycle.
The number of requests remaining in the current cycle.
The time at which the request limit resets.
Response Body
application/json
application/json
curl -X POST "https://api.ssi.com.vn/api/v3/trading/order" \ -H "Content-Type: application/json" \ -H "X-Signature: sha256=abc123..." \ -H "Content-Type: application/json" \ -d '{ "accountNo": "string", "symbol": "string", "side": "B", "orderType": "LO", "quantity": 0.1, "price": "string", "deviceId": "string" }'Success
{
"clientRequestId": "string",
"orderId": "string",
"orderStatus": "string",
"clientModifyId": "string",
"clientCancelId": "string"
}Invalid request.
{
"code": "400",
"msg": "Invalid request"
}