{
  "info": {
    "name": "TCBS iFlash Open API v1.0.0",
    "description": "Auto-generated from MDX documentation.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{access_token}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://openapi.tcbs.com.vn"
    },
    {
      "key": "access_token",
      "value": ""
    }
  ],
  "item": [
    {
      "name": "Stock — Orders",
      "item": [
        {
          "name": "Sub account information",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/eros/v2/get-profile/by-username/:custodyCode?fields=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "eros",
                "v2",
                "get-profile",
                "by-username",
                ":custodyCode"
              ],
              "query": [
                {
                  "key": "fields",
                  "value": "",
                  "description": "List of information to get, e.g. basicInfo,bankSubAccounts."
                }
              ]
            },
            "description": "Get sub-account information."
          }
        },
        {
          "name": "Supplementary loan package",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/campaign-management/v1/margin/subscription/:accountNo/addons/detail",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "campaign-management",
                "v1",
                "margin",
                "subscription",
                ":accountNo",
                "addons",
                "detail"
              ]
            },
            "description": "Get addon/supplementary loan package details for a margin account."
          }
        },
        {
          "name": "Cash statement",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/erebos/v2/digital/trans-hist-cashStatements?accountNo=&fromDate=&toDate=&pageSize=&pageIndex=&transactionCode=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "erebos",
                "v2",
                "digital",
                "trans-hist-cashStatements"
              ],
              "query": [
                {
                  "key": "accountNo",
                  "value": "",
                  "description": "Account number."
                },
                {
                  "key": "fromDate",
                  "value": "",
                  "description": "From date (YYYY-MM-DD)."
                },
                {
                  "key": "toDate",
                  "value": "",
                  "description": "To date (YYYY-MM-DD)."
                },
                {
                  "key": "pageSize",
                  "value": "",
                  "description": "Page size."
                },
                {
                  "key": "pageIndex",
                  "value": "",
                  "description": "Page number."
                },
                {
                  "key": "transactionCode",
                  "value": "",
                  "description": "Transaction code."
                }
              ]
            },
            "description": "Get cash statement (transaction history) for a sub-account."
          }
        },
        {
          "name": "Debt lookup",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/erebos/v2/digital/margin-info?acctno=&fromdate=&toDate=&page=&size=&custodycd=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "erebos",
                "v2",
                "digital",
                "margin-info"
              ],
              "query": [
                {
                  "key": "acctno",
                  "value": "",
                  "description": "Account number."
                },
                {
                  "key": "fromdate",
                  "value": "",
                  "description": "From date (YYYY-MM-DD)."
                },
                {
                  "key": "toDate",
                  "value": "",
                  "description": "To date (YYYY-MM-DD)."
                },
                {
                  "key": "page",
                  "value": "",
                  "description": "Page number."
                },
                {
                  "key": "size",
                  "value": "",
                  "description": "Page size."
                },
                {
                  "key": "custodycd",
                  "value": "",
                  "description": "Custody code."
                }
              ]
            },
            "description": "Get margin debt information (loan history) for a sub-account."
          }
        },
        {
          "name": "Loan list",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khaos/v1/loan/:accountNo",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khaos",
                "v1",
                "loan",
                ":accountNo"
              ]
            },
            "description": "Get list of loans for a margin account."
          }
        },
        {
          "name": "Price matching history",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/nyx/v1/intraday/:ticker/his/paging?page=&size=&headIndex=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "nyx",
                "v1",
                "intraday",
                ":ticker",
                "his",
                "paging"
              ],
              "query": [
                {
                  "key": "page",
                  "value": "",
                  "description": "Page number (starts from 0)."
                },
                {
                  "key": "size",
                  "value": "",
                  "description": "Page size (max 100)."
                },
                {
                  "key": "headIndex",
                  "value": "",
                  "description": "Head index for reverse paging (default -1)."
                }
              ]
            },
            "description": "Get intraday price matching history for a stock symbol."
          }
        },
        {
          "name": "Daily supply & demand",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/nyx/v1/intraday/:ticker/bsa?type=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "nyx",
                "v1",
                "intraday",
                ":ticker",
                "bsa"
              ],
              "query": [
                {
                  "key": "type",
                  "value": "",
                  "description": "Investor type: sheep (small retail), wolf (medium institutional), shark (large institutional), all (default)."
                }
              ]
            },
            "description": "Get daily supply and demand data for a stock symbol."
          }
        },
        {
          "name": "Intraday supply & demand (15m)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/nyx/v1/intraday/:ticker/bsa-ext?timeWindow=&tWindow=&type=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "nyx",
                "v1",
                "intraday",
                ":ticker",
                "bsa-ext"
              ],
              "query": [
                {
                  "key": "timeWindow",
                  "value": "",
                  "description": "Time frame in minutes: 15 or 60."
                },
                {
                  "key": "tWindow",
                  "value": "",
                  "description": "Time frame in minutes: 15."
                },
                {
                  "key": "type",
                  "value": "",
                  "description": "Investor type: sheep (small retail), wolf (medium institutional), shark (large institutional), all (default)."
                }
              ]
            },
            "description": "Get intraday supply and demand data in 15-minute intervals."
          }
        },
        {
          "name": "Monthly supply & demand",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/nyx/v1/intraday/:ticker/bsa-month?timeWindow=&type=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "nyx",
                "v1",
                "intraday",
                ":ticker",
                "bsa-month"
              ],
              "query": [
                {
                  "key": "timeWindow",
                  "value": "",
                  "description": "Time frame: 1M."
                },
                {
                  "key": "type",
                  "value": "",
                  "description": "Investor type: sheep (small retail), wolf (medium institutional), shark (large institutional), all (default)."
                }
              ]
            },
            "description": "Get monthly supply and demand data for a stock symbol."
          }
        }
      ]
    },
    {
      "name": "Authentication",
      "item": [
        {
          "name": "Exchange API Key for JWT",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/gaia/v1/oauth2/openapi/token",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "gaia",
                "v1",
                "oauth2",
                "openapi",
                "token"
              ]
            },
            "description": "Exchange your API Key for a JWT access token.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"apiKey\": \"\",\n  \"otp\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Exchange API Key for JWT (request-otp)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/gaia/v1/oauth2/openapi/request-otp",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "gaia",
                "v1",
                "oauth2",
                "openapi",
                "request-otp"
              ]
            },
            "description": "Exchange your API Key for a JWT access token.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"apiKey\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Exchange API Key for JWT (token)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/gaia/v1/oauth2/openapi/token",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "gaia",
                "v1",
                "oauth2",
                "openapi",
                "token"
              ]
            },
            "description": "Exchange your API Key for a JWT access token.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"apiKey\": \"\",\n  \"otp\": \"\",\n  \"otpId\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Derivative — Orders",
      "item": [
        {
          "name": "Money & margin overview",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/account/status?accountId=&subAccountId=&getType=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "account",
                "status"
              ],
              "query": [
                {
                  "key": "accountId",
                  "value": "",
                  "description": "Custody account number."
                },
                {
                  "key": "subAccountId",
                  "value": "",
                  "description": "Derivative sub-account."
                },
                {
                  "key": "getType",
                  "value": "",
                  "description": "0 = get all, 1 = money only."
                }
              ]
            },
            "description": "Derivative money and margin overview."
          }
        },
        {
          "name": "Cancel condition order (derivative)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/order/condition/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "order",
                "condition",
                "cancel"
              ]
            },
            "description": "Cancel a conditional derivative order.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountId\": \"\",\n  \"subAccountId\": \"\",\n  \"orderNo\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Cancel normal order (derivative)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/order/cancel",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "order",
                "cancel"
              ]
            },
            "description": "Cancel a normal derivative order.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountId\": \"\",\n  \"orderNo\": \"\",\n  \"cmd\": \"\",\n  \"pin\": \"\",\n  \"refId\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Get condition order book (derivative)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/order/condition/detail?accountId=&subAccountID=&pageNo=&PageSize=&orderStatus=&orderType=&Symbol=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "order",
                "condition",
                "detail"
              ],
              "query": [
                {
                  "key": "accountId",
                  "value": "",
                  "description": "Custody account number."
                },
                {
                  "key": "subAccountID",
                  "value": "",
                  "description": "Derivative account number."
                },
                {
                  "key": "pageNo",
                  "value": "",
                  "description": "Page number."
                },
                {
                  "key": "PageSize",
                  "value": "",
                  "description": "Page size."
                },
                {
                  "key": "orderStatus",
                  "value": "",
                  "description": "0 = all, 1 = waiting, 2 = activated, 3 = rejected."
                },
                {
                  "key": "orderType",
                  "value": "",
                  "description": "'' = all, 3 = Arbitrage, 4 = SL/TP, 5 = Stop order."
                },
                {
                  "key": "Symbol",
                  "value": "",
                  "description": "Filter: ALL,ALL = all; VN30F2303,B = by symbol."
                }
              ]
            },
            "description": "Query the derivative conditional order book."
          }
        },
        {
          "name": "Get normal order book (derivative)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/order/in-day?accountId=&pageNo=&pageSize=&symbol=&orderType=&status=&refId=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "order",
                "in-day"
              ],
              "query": [
                {
                  "key": "accountId",
                  "value": "",
                  "description": "Custody account number."
                },
                {
                  "key": "pageNo",
                  "value": "",
                  "description": "Page number."
                },
                {
                  "key": "pageSize",
                  "value": "",
                  "description": "Page size."
                },
                {
                  "key": "symbol",
                  "value": "",
                  "description": "Filter: ALL,ALL = all; VN30F2303,B = by symbol; ALL,B = by L/S."
                },
                {
                  "key": "orderType",
                  "value": "",
                  "description": "Filter order type: '' = all, 3 = Arbitrage, 4 = SL/TP, 5 = ForceClose, 6 = Normal."
                },
                {
                  "key": "status",
                  "value": "",
                  "description": "0 = all, 1 = waiting, 2 = matched."
                },
                {
                  "key": "refId",
                  "value": "",
                  "description": "Order ref ID."
                }
              ]
            },
            "description": "Query the derivative normal order book."
          }
        },
        {
          "name": "Symbol & price info (derivative)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/tartarus/v1/derivatives",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tartarus",
                "v1",
                "derivatives"
              ]
            },
            "description": "Get derivative market symbol and price information."
          }
        },
        {
          "name": "Place condition order (derivative)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/order/condition/place",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "order",
                "condition",
                "place"
              ]
            },
            "description": "Place a conditional derivative order.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountId\": \"\",\n  \"subAccountId\": \"\",\n  \"side\": \"\",\n  \"symbol\": \"\",\n  \"price\": 0,\n  \"volume\": 0,\n  \"orderType\": \"\",\n  \"soPrice\": 0,\n  \"callbackPoint\": 0,\n  \"activationPrice\": 0,\n  \"refId\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Place order (derivative)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/order/place",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "order",
                "place"
              ]
            },
            "description": "Place a normal derivative order.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountId\": \"\",\n  \"subAccountId\": \"\",\n  \"side\": \"\",\n  \"symbol\": \"\",\n  \"price\": 0,\n  \"volume\": 0,\n  \"orderType\": \"\",\n  \"refId\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Closed positions (derivative)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/account/portfolio/position/close?accountId=&subAccountId=&symbol=&pageNo=&pageSize=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "account",
                "portfolio",
                "position",
                "close"
              ],
              "query": [
                {
                  "key": "accountId",
                  "value": "",
                  "description": "Custody account number."
                },
                {
                  "key": "subAccountId",
                  "value": "",
                  "description": "Derivative sub-account."
                },
                {
                  "key": "symbol",
                  "value": "",
                  "description": "Stock symbol (empty = all)."
                },
                {
                  "key": "pageNo",
                  "value": "",
                  "description": "Page number."
                },
                {
                  "key": "pageSize",
                  "value": "",
                  "description": "Page size."
                }
              ]
            },
            "description": "Query closed derivative positions."
          }
        },
        {
          "name": "Open positions (derivative)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/account/portfolio/status?accountId=&subAccountId=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "account",
                "portfolio",
                "status"
              ],
              "query": [
                {
                  "key": "accountId",
                  "value": "",
                  "description": "Custody account number."
                },
                {
                  "key": "subAccountId",
                  "value": "",
                  "description": "Derivative sub-account."
                }
              ]
            },
            "description": "Query open derivative positions."
          }
        },
        {
          "name": "Edit condition order (derivative)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v2/order/condition/change",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v2",
                "order",
                "condition",
                "change"
              ]
            },
            "description": "Edit a conditional derivative order.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountId\": \"\",\n  \"pkOrderNo\": \"\",\n  \"refId\": \"\",\n  \"soPrice\": 0,\n  \"type\": \"\",\n  \"cmd\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Edit normal order (derivative)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/order/change",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "order",
                "change"
              ]
            },
            "description": "Edit a normal derivative order.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountId\": \"\",\n  \"subAccountId\": \"\",\n  \"orderNo\": \"\",\n  \"refId\": \"\",\n  \"nvol\": 0,\n  \"nprice\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Price board (WSS, derivative) (contracts)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/api/v1/derivatives/contracts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "api",
                "v1",
                "derivatives",
                "contracts"
              ]
            },
            "description": "Real-time derivative price board over WebSocket."
          }
        },
        {
          "name": "Foreign room",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/tartarus/v1/tickerSnaps?index=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tartarus",
                "v1",
                "tickerSnaps"
              ],
              "query": [
                {
                  "key": "index",
                  "value": "",
                  "description": "Stock basket: 1 = HOSE, 2 = VN30, 3 = HNX, 4 = HNX30, 5 = Upcom, 10 = Midcap, 11 = VN100, 12 = VNAllshare, 13 = VNSmallcap, 14 = VNXAllshare, 15 = VN50, 16 = VNSI."
                }
              ]
            },
            "description": "Get foreign investor room and market snapshot information."
          }
        },
        {
          "name": "Symbol & price",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/tartarus/v1/tickerCommons?tickers=&index=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tartarus",
                "v1",
                "tickerCommons"
              ],
              "query": [
                {
                  "key": "tickers",
                  "value": "",
                  "description": "Comma-separated list of stock symbols. Do not combine with the index param."
                },
                {
                  "key": "index",
                  "value": "",
                  "description": "Stock basket: 1 = HOSE, 2 = VN30, 3 = HNX, 4 = HNX30, 5 = UPCOM, 10 = Midcap, 11 = VN100, 12 = VNAllShare, 13 = VNSmallCap, 14 = VNXAllShare, 15 = VN50, 16 = VNSI. Do not combine with the tickers param."
                }
              ]
            },
            "description": "Get symbol and price information (cash market)."
          }
        },
        {
          "name": "Put-through information",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/tartarus/v1/putThroughSnaps?floor=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "tartarus",
                "v1",
                "putThroughSnaps"
              ],
              "query": [
                {
                  "key": "floor",
                  "value": "",
                  "description": "Stock basket: 1 = HOSE, 2 = HNX, 3 = Upcom."
                }
              ]
            },
            "description": "Get put-through (deal/negotiated) trading information."
          }
        }
      ]
    },
    {
      "name": "Derivative — Market",
      "item": [
        {
          "name": "Order matching (WSS, derivative)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ws/nesoi",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ws",
                "nesoi"
              ]
            },
            "description": "[WebSocket] Real-time derivative order matching over WebSocket.\nURL: https://openapi.tcbs.com.vn/ws/nesoi"
          }
        },
        {
          "name": "Price board (WSS, derivative)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ws/thesis/v1/stream/derivative",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ws",
                "thesis",
                "v1",
                "stream",
                "derivative"
              ]
            },
            "description": "[WebSocket] Real-time derivative price board over WebSocket.\nURL: https://openapi.tcbs.com.vn/ws/thesis/v1/stream/derivative"
          }
        }
      ]
    },
    {
      "name": "Money",
      "item": [
        {
          "name": "Deposit margin",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/cash/deposit/update",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "cash",
                "deposit",
                "update"
              ]
            },
            "description": "Deposit margin into a derivative account.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountId\": \"\",\n  \"subAccountId\": \"\",\n  \"amount\": 0,\n  \"paymentContent\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Internal transfer",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/physis/v1/stock/transfer",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "physis",
                "v1",
                "stock",
                "transfer"
              ]
            },
            "description": "Transfer money between sub-accounts.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"sourceAccountNumber\": \"\",\n  \"destinationAccountNumber\": \"\",\n  \"amount\": 0,\n  \"description\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Withdraw margin",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/khronos/v1/cash/withdraw/update",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "khronos",
                "v1",
                "cash",
                "withdraw",
                "update"
              ]
            },
            "description": "Withdraw margin from a derivative account.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"accountId\": \"\",\n  \"subAccountId\": \"\",\n  \"amount\": 0,\n  \"paymentContent\": \"\"\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Account",
      "item": [
        {
          "name": "Stock asset",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/aion/v1/accounts/:accountNo/se",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "aion",
                "v1",
                "accounts",
                ":accountNo",
                "se"
              ]
            },
            "description": "Get stock asset by sub-account."
          }
        },
        {
          "name": "Cancel order",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/akhlys/v1/accounts/:accountNo/cancel-orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "akhlys",
                "v1",
                "accounts",
                ":accountNo",
                "cancel-orders"
              ]
            },
            "description": "Cancel normal stock orders.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"ordersList\": []\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Cash balance",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/aion/v1/accounts/:accountNo/cashInvestments",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "aion",
                "v1",
                "accounts",
                ":accountNo",
                "cashInvestments"
              ]
            },
            "description": "Get cash balance information for a sub-account."
          }
        },
        {
          "name": "Get order by ID",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/aion/v1/accounts/:accountNo/orders/:orderID",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "aion",
                "v1",
                "accounts",
                ":accountNo",
                "orders",
                ":orderID"
              ]
            },
            "description": "Get a single order by Order ID for a sub-account."
          }
        },
        {
          "name": "Get orders",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/aion/v1/accounts/:accountNo/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "aion",
                "v1",
                "accounts",
                ":accountNo",
                "orders"
              ]
            },
            "description": "Get the order book for a sub-account."
          }
        },
        {
          "name": "Margin quota",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/aion/v1/customers/:custodyId/accounts",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "aion",
                "v1",
                "customers",
                ":custodyId",
                "accounts"
              ]
            },
            "description": "Get margin quota information for a customer."
          }
        },
        {
          "name": "Matching details",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/aion/v1/accounts/:accountNo/matching-details",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "aion",
                "v1",
                "accounts",
                ":accountNo",
                "matching-details"
              ]
            },
            "description": "Get order matching information for a sub-account."
          }
        },
        {
          "name": "Place order",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/akhlys/v1/accounts/:accountNo/orders",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "akhlys",
                "v1",
                "accounts",
                ":accountNo",
                "orders"
              ]
            },
            "description": "Place a normal stock order.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"execType\": \"\",\n  \"symbol\": \"\",\n  \"priceType\": \"\",\n  \"price\": 0,\n  \"quantity\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        },
        {
          "name": "Margin pricing policy",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/hydros/v1/account/:accountNo/pricing-policy?productId=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "hydros",
                "v1",
                "account",
                ":accountNo",
                "pricing-policy"
              ],
              "query": [
                {
                  "key": "productId",
                  "value": "",
                  "description": "Product ID. If omitted, system resolves from account."
                }
              ]
            },
            "description": "Get available margin pricing policies for an account."
          }
        },
        {
          "name": "Purchasing power by symbol & price",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/aion/v1/accounts/:accountNo/ppse/:symbol/:price",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "aion",
                "v1",
                "accounts",
                ":accountNo",
                "ppse",
                ":symbol",
                ":price"
              ]
            },
            "description": "Get purchasing power for a specific stock symbol and price."
          }
        },
        {
          "name": "Purchasing power by symbol",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/aion/v1/accounts/:accountNo/ppse/:symbol",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "aion",
                "v1",
                "accounts",
                ":accountNo",
                "ppse",
                ":symbol"
              ]
            },
            "description": "Get purchasing power for a specific stock symbol."
          }
        },
        {
          "name": "Purchasing power",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/aion/v1/accounts/:accountNo/ppse",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "aion",
                "v1",
                "accounts",
                ":accountNo",
                "ppse"
              ]
            },
            "description": "Get purchasing power for a sub-account."
          }
        },
        {
          "name": "Risk & margin ratios",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/hydros/v1/account/:accountNo/risk",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "hydros",
                "v1",
                "account",
                ":accountNo",
                "risk"
              ]
            },
            "description": "Get principal debt, interest debt, Rtt, margin ratios for a margin account."
          }
        },
        {
          "name": "Update order",
          "request": {
            "method": "PUT",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/akhlys/v1/accounts/:accountNo/orders/:orderId",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "akhlys",
                "v1",
                "accounts",
                ":accountNo",
                "orders",
                ":orderId"
              ]
            },
            "description": "Modify a normal stock order.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"price\": 0,\n  \"quantity\": 0\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          }
        }
      ]
    },
    {
      "name": "Stock — Market Data",
      "item": [
        {
          "name": "Securities information",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ananke/v1/securities?fields=&filter=",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ananke",
                "v1",
                "securities"
              ],
              "query": [
                {
                  "key": "fields",
                  "value": "",
                  "description": "Fields to include in response. Default: all."
                },
                {
                  "key": "filter",
                  "value": "",
                  "description": "Filter expression in field=value format, e.g. symbol=TCB."
                }
              ]
            },
            "description": "Get detailed securities information (stock, bond, derivative listing data)."
          }
        },
        {
          "name": "History & supply/demand (WSS)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ws/ouranos/v1/stream",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ws",
                "ouranos",
                "v1",
                "stream"
              ]
            },
            "description": "[WebSocket] Real-time price matching history and supply/demand over WebSocket.\nURL: https://openapi.tcbs.com.vn/ws/ouranos/v1/stream"
          }
        },
        {
          "name": "Order matching (WSS)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ws/aither",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ws",
                "aither"
              ]
            },
            "description": "[WebSocket] Real-time order matching updates over WebSocket.\nURL: https://openapi.tcbs.com.vn/ws/aither"
          }
        },
        {
          "name": "Price board (WSS)",
          "request": {
            "method": "GET",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{baseUrl}}/ws/thesis/v1/stream/normal",
              "host": [
                "{{baseUrl}}"
              ],
              "path": [
                "ws",
                "thesis",
                "v1",
                "stream",
                "normal"
              ]
            },
            "description": "[WebSocket] Real-time cash market price board over WebSocket.\nURL: https://openapi.tcbs.com.vn/ws/thesis/v1/stream/normal"
          }
        }
      ]
    }
  ]
}