Download OpenAPI specification:Download
API cung cấp dữ liệu khách hàng, danh mục đầu tư, lịch sử giao dịch và thống kê hiệu quả đầu tư cho HocChungKhoan CMS.
Truy vấn chi tiết hồ sơ khách hàng theo slug, bao gồm thông tin cá nhân, nhân viên chăm sóc và danh sách tài khoản liên kết.
| slug required | string Slug định danh duy nhất của khách hàng (ví dụ: bangnh) |
{- "success": true,
- "data": {
- "id": "a1b07384-c113-4ec2-a5d6-c95a2d67d7d4",
- "slug": "bangnh",
- "name": "Nguyen Huu Bang",
- "email": "bangnh@example.com",
- "phone": "0987654321",
- "staff_id": "d3b07384-d113-4ec2-a5d6-c95a2d67d712",
- "staff": {
- "id": "d3b07384-d113-4ec2-a5d6-c95a2d67d712",
- "name": "Lê Văn A",
- "email": "vana.le@hocchungkhoan.com"
}, - "accounts": [
- {
- "id": "c1b07384-b113-4ec2-a5d6-c95a2d67d7e3",
- "customer_id": "a1b07384-c113-4ec2-a5d6-c95a2d67d7d4",
- "broker_id": "e2b07384-a113-4ec2-a5d6-c95a2d67d7f1",
- "account_no": "0001234567",
- "broker": {
- "id": "e2b07384-a113-4ec2-a5d6-c95a2d67d7f1",
- "name": "SSI Securities",
- "code": "SSI"
}
}
]
}
}Truy vấn danh sách holdings (mã cổ phiếu, khối lượng, giá vốn, công ty chứng khoán) của khách hàng theo slug.
| slug required | string Slug định danh duy nhất của khách hàng |
{- "success": true,
- "data": [
- {
- "id": "f4b07384-f113-4ec2-a5d6-c95a2d67d7b2",
- "stock_code": "FPT",
- "isin_code": "VN000000FPT4",
- "quantity": 1500,
- "avg_cost": 125000,
- "total_cost": 187500000,
- "account": {
- "id": "c1b07384-b113-4ec2-a5d6-c95a2d67d7e3",
- "account_no": "0001234567",
- "broker": {
- "id": "e2b07384-a113-4ec2-a5d6-c95a2d67d7f1",
- "name": "SSI Securities",
- "code": "SSI"
}
}
}
]
}Truy vấn toàn bộ lịch sử giao dịch mua/bán của khách hàng hỗ trợ phân trang và bộ lọc theo mã cổ phiếu, công ty chứng khoán, loại giao dịch.
| slug required | string Slug định danh duy nhất của khách hàng |
| page | integer Default: 1 Số trang kết quả (mặc định: 1) |
| per_page | integer Default: 10 Số lượng kết quả trên mỗi trang (mặc định: 10) |
| broker | string Mã công ty chứng khoán để lọc (ví dụ: SSI, PINETREE) |
| stock_code | string Mã chứng khoán để lọc (ví dụ: FPT, HPG) |
| type | string Enum: "buy" "sell" Loại giao dịch (buy hoặc sell) |
| start_date | string <date> Ngày bắt đầu lọc (YYYY-MM-DD) |
| end_date | string <date> Ngày kết thúc lọc (YYYY-MM-DD) |
{- "success": true,
- "data": [
- {
- "id": "7a007384-a113-4ec2-a5d6-c95a2d67d7a1",
- "trade_date": "2026-05-20",
- "stock_code": "FPT",
- "isin_code": "VN000000FPT4",
- "type": "buy",
- "quantity": 500,
- "price": 126000,
- "total_value": 63000000,
- "fee": 63000,
- "personal_tax": 0,
- "account": {
- "id": "c1b07384-b113-4ec2-a5d6-c95a2d67d7e3",
- "account_no": "0001234567",
- "broker": {
- "id": "e2b07384-a113-4ec2-a5d6-c95a2d67d7f1",
- "name": "SSI Securities",
- "code": "SSI"
}
}
}
], - "pagination": {
- "page": 1,
- "per_page": 10,
- "total": 45
}
}Truy vấn lịch sử giao dịch lọc theo ID tài khoản chứng khoán cụ thể của khách hàng.
| slug required | string Slug định danh duy nhất của khách hàng |
| accountId required | string <uuid> UUID tài khoản chứng khoán liên kết |
| page | integer Default: 1 |
| per_page | integer Default: 10 |
{- "success": true,
- "data": [
- {
- "id": "7a007384-a113-4ec2-a5d6-c95a2d67d7a1",
- "trade_date": "2026-05-20",
- "stock_code": "FPT",
- "isin_code": "VN000000FPT4",
- "type": "buy",
- "quantity": 500,
- "price": 126000,
- "total_value": 63000000,
- "fee": 63000,
- "personal_tax": 0,
- "account": {
- "id": "c1b07384-b113-4ec2-a5d6-c95a2d67d7e3",
- "account_no": "0001234567",
- "broker": {
- "id": "e2b07384-a113-4ec2-a5d6-c95a2d67d7f1",
- "name": "SSI Securities",
- "code": "SSI"
}
}
}
], - "pagination": {
- "page": 1,
- "per_page": 10,
- "total": 45
}
}Truy vấn thống kê tổng giá trị mua/bán, tổng phí thuế và lợi nhuận thực tế (realized P&L) của khách hàng.
| slug required | string Slug định danh duy nhất của khách hàng |
{- "success": true,
- "data": {
- "total_buy_value": 540000000,
- "total_sell_value": 620000000,
- "total_buy_fee": 540000,
- "total_sell_fee": 620000,
- "total_tax": 620000,
- "realized_pnl": 80000000,
- "transaction_count": 34,
- "date_range": {
- "from": "2026-01-10",
- "to": "2026-05-24"
}
}
}Truy vấn phân tích hiệu quả giao dịch và phong cách đầu tư của khách hàng theo slug (bao gồm win rate, profit factor, holding time, trading frequency, và top 5 thắng/thua).
| slug required | string Slug định danh duy nhất của khách hàng (ví dụ: bangnh) |
{- "success": true,
- "data": {
- "summary": {
- "total_deals": 14,
- "win_deals": 9,
- "loss_deals": 5,
- "win_rate": 0.643,
- "avg_win_pnl": 12000000,
- "avg_loss_pnl": -4500000,
- "profit_factor": 4.8,
- "avg_holding_days_win": 18.5,
- "avg_holding_days_loss": 12.3,
- "total_realized_pnl": 85500000,
- "total_fee_tax": 1160000,
- "monthly_trade_counts": {
- "2026-01": 4,
- "2026-02": 6,
- "2026-03": 8,
- "2026-04": 10,
- "2026-05": 6
}
}, - "top_wins": [
- {
- "stock_code": "FPT",
- "sell_date": "2026-05-18",
- "realized_pnl": 25000000,
- "holding_days": 22,
- "quantity_sold": 1000
}
], - "top_losses": [
- {
- "stock_code": "FPT",
- "sell_date": "2026-05-18",
- "realized_pnl": 25000000,
- "holding_days": 22,
- "quantity_sold": 1000
}
]
}
}Truy vấn toàn bộ dữ liệu hồ sơ, danh mục holdings, thống kê P&L và phân tích phong cách giao dịch chỉ trong một lượt gọi duy nhất giúp giảm số lượng HTTP request từ frontend.
| slug required | string Slug định danh duy nhất của khách hàng |
{- "success": true,
- "data": {
- "customer": {
- "id": "a1b07384-c113-4ec2-a5d6-c95a2d67d7d4",
- "slug": "bangnh",
- "name": "Nguyen Huu Bang",
- "email": "bangnh@example.com",
- "phone": "0987654321",
- "staff_id": "d3b07384-d113-4ec2-a5d6-c95a2d67d712",
- "staff": {
- "id": "d3b07384-d113-4ec2-a5d6-c95a2d67d712",
- "name": "Lê Văn A",
- "email": "vana.le@hocchungkhoan.com"
}, - "accounts": [
- {
- "id": "c1b07384-b113-4ec2-a5d6-c95a2d67d7e3",
- "customer_id": "a1b07384-c113-4ec2-a5d6-c95a2d67d7d4",
- "broker_id": "e2b07384-a113-4ec2-a5d6-c95a2d67d7f1",
- "account_no": "0001234567",
- "broker": {
- "id": "e2b07384-a113-4ec2-a5d6-c95a2d67d7f1",
- "name": "SSI Securities",
- "code": "SSI"
}
}
]
}, - "portfolio": [
- {
- "id": "f4b07384-f113-4ec2-a5d6-c95a2d67d7b2",
- "stock_code": "FPT",
- "isin_code": "VN000000FPT4",
- "quantity": 1500,
- "avg_cost": 125000,
- "total_cost": 187500000,
- "account": {
- "id": "c1b07384-b113-4ec2-a5d6-c95a2d67d7e3",
- "account_no": "0001234567",
- "broker": {
- "id": "e2b07384-a113-4ec2-a5d6-c95a2d67d7f1",
- "name": "SSI Securities",
- "code": "SSI"
}
}
}
], - "stats": {
- "total_buy_value": 540000000,
- "total_sell_value": 620000000,
- "total_buy_fee": 540000,
- "total_sell_fee": 620000,
- "total_tax": 620000,
- "realized_pnl": 80000000,
- "transaction_count": 34,
- "date_range": {
- "from": "2026-01-10",
- "to": "2026-05-24"
}
}, - "analytics": {
- "summary": {
- "total_deals": 14,
- "win_deals": 9,
- "loss_deals": 5,
- "win_rate": 0.643,
- "avg_win_pnl": 12000000,
- "avg_loss_pnl": -4500000,
- "profit_factor": 4.8,
- "avg_holding_days_win": 18.5,
- "avg_holding_days_loss": 12.3,
- "total_realized_pnl": 85500000,
- "total_fee_tax": 1160000,
- "monthly_trade_counts": {
- "2026-01": 4,
- "2026-02": 6,
- "2026-03": 8,
- "2026-04": 10,
- "2026-05": 6
}
}, - "top_wins": [
- {
- "stock_code": "FPT",
- "sell_date": "2026-05-18",
- "realized_pnl": 25000000,
- "holding_days": 22,
- "quantity_sold": 1000
}
], - "top_losses": [
- {
- "stock_code": "FPT",
- "sell_date": "2026-05-18",
- "realized_pnl": 25000000,
- "holding_days": 22,
- "quantity_sold": 1000
}
]
}
}
}Truy vấn danh mục các công ty chứng khoán được hỗ trợ trong hệ thống (ví dụ: SSI, Pinetree).
{- "success": true,
- "data": [
- {
- "id": "e2b07384-a113-4ec2-a5d6-c95a2d67d7f1",
- "name": "SSI Securities",
- "code": "SSI"
}
]
}Cho phép Admin trigger thủ công việc kéo dữ liệu thay đổi từ Neon Postgres sang Insforge Postgres.
| X-Admin-Key required | string API key xác thực quyền Admin |
{- "success": true,
- "data": {
- "synced_rows": 145,
- "duration_ms": 320
}
}