Trading

trade-order-cancel

Hủy lệnh hiện có.

DELETE
/api/v3/trading/order

Authorization

Bearer
AuthorizationBearer <token>

Nhập JWT token theo định dạng Bearer <token>.

In: header

Header Parameters

Content-Typestringrequired

Định dạng nội dung request body. Chủ yếu là application/json.

User-Agentstringoptional

Thông tin client gửi request.

Accept-Languagestringoptional

Ngôn ngữ phản hồi mong muốn. Nếu không có header này, hệ thống sẽ mặc định là en

X-Signaturestringrequired

Chữ ký RSA + SHA256 để xác thực tính toàn vẹn của request. Input bao gồm SecretKey + JSON body.

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

bodyobjectrequired
clientCancelIdstring | nulloptional

Định danh hủy lệnh do client tạo ra, dùng để đối chiếu trong các phản hồi sau này. Trường này không bắt buộc nhưng nếu có thì nên đảm bảo tính duy nhất để tránh nhầm lẫn khi xử lý phản hồi. Khi để trống thì hệ thống sẽ tự sinh định danh hủy lệnh cho khách hàng và trả về response & streaming.

clientRequestIdstring | nulloptional

Định danh lệnh gốc do client tạo ra khi đặt lệnh. Khi để trống thì hệ thống sẽ không đối chiếu dựa trên định danh lệnh gốc mà sẽ dựa vào `orderId` để xác định lệnh cần hủy.

orderIdstring | nulloptional

Định danh lệnh gốc sinh ra bởi hệ thống SSI. Đây là một trong hai trường (cùng với `clientRequestId`) được sử dụng để xác định lệnh cần hủy. Nếu cả hai trường đều có giá trị, hệ thống sẽ ưu tiên đối chiếu dựa trên `clientRequestId`. Nếu chỉ có `orderId` có giá trị thì hệ thống sẽ đối chiếu dựa trên `orderId`. Nếu cả hai trường đều không có giá trị thì yêu cầu hủy lệnh sẽ bị từ chối do thiếu thông tin xác định lệnh cần hủy.

accountNostringrequired

Số tài khoản giao dịch.

deviceIdstringrequired

Định danh thiết bị thực hiện gửi yêu cầu hủy lệnh. Thông thường dùng MAC address hoặc IMEI của thiết bị.

userAgentstring | nulloptional

Thông tin về trình duyệt hoặc ứng dụng gửi yêu cầu hủy lệnh.

ipAddressstring | nulloptional

Địa chỉ IP của thiết bị gửi yêu cầu hủy lệnh.

Response Headers

X-RATELIMIT-LIMITstringoptional

Giới hạn số request trong chu kỳ.

X-RATELIMIT-REMAININGstringoptional

Số request còn lại trong chu kỳ hiện tại.

X-RATELIMIT-RESETstringoptional

Thời điểm reset giới hạn request.

Response Body

application/json

application/json

curl -X DELETE "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",    "deviceId": "string"  }'

Success

{
  "clientRequestId": "string",
  "orderId": "string",
  "orderStatus": "string",
  "clientModifyId": "string",
  "clientCancelId": "string"
}

Yêu cầu không hợp lệ.

{
  "code": "400",
  "msg": "Invalid request"
}

trade-order-modifyPUT

Sửa lệnh hiện có.

trade-order-batch-placePOST

Đặt nhiều lệnh mới trong một request (Batch Order). **Quy tắc chung** - Tối đa **50 lệnh** mỗi request. Các lệnh có thể thuộc nhiều tài khoản khác nhau, nhưng tất cả tài khoản phải nằm trong danh sách tài khoản được cấp quyền cho API Key. - Validation theo cơ chế **all-or-nothing**: nếu bất kỳ lệnh nào trong batch không hợp lệ, toàn bộ request bị từ chối (HTTP 400) và không có lệnh nào được thực thi. - Sau khi validation đạt, từng lệnh được xử lý **độc lập**. Một lệnh bị từ chối ở bước xử lý (ví dụ không đủ sức mua) không ảnh hưởng đến các lệnh còn lại; kết quả từng lệnh được trả về trong `results` (`success`, `errorCode`, `errorMessage`). - **Chống replay**: `batchRequestTime` (epoch milliseconds, UTC) phải lệch không quá **30 giây** so với thời gian máy chủ. - **Idempotency**: `batchRequestId` phải duy nhất theo từng API Key, từng loại thao tác (đặt/hủy) trong ngày. Gửi lại cùng `batchRequestId` sẽ bị từ chối là request trùng lặp. - Chữ ký `X-Signature` được tính trên **toàn bộ request body** (cả `batchRequestId`, `batchRequestTime` và `orders`). - Mỗi lệnh trong `orders` áp dụng cùng quy tắc với API đặt lệnh đơn `trade-order-place`. **Scope yêu cầu:** `trading:order:post`.