Danh mục stock đang nắm giữ của tiểu khoản
Danh mục stock đang nắm giữ của 1 tiểu khoản, kèm cost_price (giá vốn),
basic_price (giá tham chiếu), close_price (giá đóng cửa gần nhất),
cùng PnL theo vị thế (pnl_amount, pnl_rate, total_pnl).
Field is_snapshot = true khi response là snapshot cuối phiên (ngoài
giờ giao dịch); false khi đang trong phiên (giá realtime).
Authorizations
API key dài hạn của client. Cấu hình 1 lần lúc khởi tạo; có thể wire thẳng
vào static setter của SDK tự-gen. Đi kèm với FINHAY_API_SECRET — secret
này chỉ dùng ở phía client để tính X-FH-SIGNATURE, không bao giờ
gửi qua mạng.
Unix time hiện tại tính bằng milliseconds, đưới dạng chuỗi số thập phân.
Được tính per-request bởi signing middleware. Không set thủ công — dùng middleware mẫu trong README.
UUIDv4 duy nhất per-request (ví dụ crypto.randomUUID()). Server cache
cặp (apiKey, nonce) trong 5 phút; nếu nonce được reuse với cùng apiKey
trong window này, request sẽ bị từ chối với AUTH_NONCE_REUSED (401).
Server chấp nhận chuỗi opaque bất kỳ về mặt kỹ thuật, nhưng nên dùng UUIDv4 để đảm bảo tính unique.
Được tính per-request bởi signing middleware. Không set thủ công — xem middleware mẫu trong tài liệu Authentication.
HMAC-SHA256 của canonical signing payload, encode hex (lowercase).
Signing payload:
{X-FH-TIMESTAMP}\n{METHOD}\n{REQUEST_PATH}[?{QUERY}]\n{BODYHASH}?{QUERY}chỉ nối vào path khi request có query string.{BODYHASH}là chuỗi rỗng khi body rỗng (vẫn không có newline sau đó).
Được tính per-request bởi signing middleware. Không set thủ công — dùng middleware mẫu trong README.
Path Parameters
subAccountId được lấy từ bootstrap flow
(GET /users/v1/users/{userId}/sub-accounts), chọn NORMAL hoặc MARGIN
tuỳ mục đích.
"0001234567"
Response
Trả về data gồm is_snapshot (boolean) và portfolio[] — mỗi item là 1 vị thế stock kèm khối lượng, giá vốn, PnL.
Các field chung của envelope trong mọi response của Finhay API.
error_codelà"0"(string) khi thành công, mã khác"0"khi lỗi.messagelà thông điệp ngắn từ server.