fco.place
Place a conditional order — the response returns the order-creation result right away, unlike
order.* which acks first and delivers the result later. If rejected, the response carries an
error with error.code: "FCO_ERROR". Requires a signature. See also the
Conditional Order Reference appendix.
Required scope: tradingws:fco:post.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Underlying/derivative trading symbol.
Order side.
Conditional order type. See the Conditional Order Reference appendix.
Conditional order price. Required and must be > 0.
Allowed price slippage.
Order quantity.
Trading account number.
Effective start time, format `yyyy/MM/dd HH:mm:ss`. If `to` is also present, `from` must be <= `to`.
Effective end time, format `yyyy/MM/dd HH:mm:ss`.
Trigger (stop) price.
Conditional-order activation price.
Trailing-stop amount.
Take Profit activation price.
Stop Loss activation price.
Take Profit price.
Stop Loss price.
Allowed slippage for Take Profit.
Allowed slippage for Stop Loss.
Comparison operator for the trigger condition.
OTP transaction-verification code (required if OTP verification is enabled for the account).
Identifier of the device submitting the request.
Information about the browser/application sending the request.
RSA+SHA256 signature (base64). Required.
Response Body
application/json
application/json
Sample Request
wscat -c wss://api.ssi.com.vn/ws/v3/trading -x '{
"id": "req-0004",
"method": "fco.place",
"params": {
"symbol": "SSI",
"side": "B",
"type": "TS",
"price": "45.00",
"quantity": 4000,
"accountNo": "1231496",
"deviceId": "MAC-AABBCCDDEEFF"
},
"signature": "base64(RSA-SHA256(...))",
"timestamp": 1755000003000
}'Sample Response
{
"id": "req-0004",
"method": "fco.place",
"status": 200,
"result": {
"fcoId": "7528ac20-a340-4233-8bb7-a2379fc3c638"
},
"rateLimit": {
"limit": 50,
"remaining": 44,
"resetMs": 840
}
}order.batchCancelWS
Cancel multiple orders in a single message (Batch Order). Each order in `params.orders` has the same structure and rules as `order.cancel` (the order is identified by `orderId` OR `clientRequestId`). The same general rules and the same fast `PD` acknowledgment as `order.batchNew` apply (up to 50 orders, all-or-nothing validation, 30-second replay window, idempotency by `batchRequestId`, signature over the entire `params`). The real outcome of each cancel request arrives afterward through the `order.{accountNo}` notification channel. Required scope: `tradingws:order:delete`.
fco.cancelWS
Cancel a conditional order by `fcoId`. If rejected, the response carries `error.code: "FCO_ERROR"`. Requires a `signature`. Required scope: `tradingws:fco:delete`.