NodeJS

Tổng quan

Tổng quan về SSI FastConnect Node.js SDK — REST API và WebSocket streaming

Node.js SDK cho nền tảng giao dịch chứng khoán SSI. Hỗ trợ REST API và WebSocket streaming.

Yêu cầu: Node.js 18+

Mã nguồn: github.com/SSI-Securities-Inc/ssi-sdk-node

Cài đặt

npm install @ssi.developer/ssi-sdk

Kiến trúc Client

SDK sử dụng kiến trúc modular với 4 client chuyên biệt:

ClientMô tảYêu cầu
AuthXác thực & quản lý tokenConfig
DataDữ liệu thị trường (OHLC, chỉ số, chứng khoán)Auth (không cần OTP)
TradingGiao dịch + danh mục + tài khoảnAuth (cần OTP)
StreamStreaming realtime qua WebSocketAuth (cần OTP)

Luồng khởi tạo:

Config → Auth → authenticate(otp) → Data / Trading / Stream

Auth là client gốc — quản lý REST client và token. Data, Trading, và Stream đều nhận Auth làm tham số và dùng chung HTTP connection. Tất cả method API đều là async và trả về Promise.

Service của mỗi client:

ClientServiceTruy cậpMô tả
AuthTokenManagerauth (trực tiếp)Xác thực, OTP, làm mới token
DataMarketDataServicedata.marketDataOHLC, chỉ số, chứng khoán
TradingTradingServicetrading.tradingĐặt/sửa/huỷ lệnh, sức mua/bán, lệnh điều kiện (FCO)
TradingAccountServicetrading.accountThông tin tài khoản
TradingPortfolioServicetrading.portfolioSố dư, vị thế, sổ lệnh, PPMMR
StreamStreamingServicestream.streamingSubscribe/unsubscribe dữ liệu realtime

Bắt đầu nhanh

Chỉ lấy dữ liệu thị trường (không cần OTP)

import { Auth, Data, Config } from '@ssi.developer/ssi-sdk';

const config = new Config({
  clientId: 'YOUR_CLIENT_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
});

const auth = new Auth(config);
await auth.authenticate();

const data = new Data(auth);
const ohlc = await data.marketData.getOhlc1Minute('SSI');
console.log(ohlc);

Giao dịch (cần OTP)

import { Auth, Trading, Config, OrderSide } from '@ssi.developer/ssi-sdk';

const config = new Config({
  clientId: 'YOUR_CLIENT_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
  privateKey: 'YOUR_PRIVATE_KEY',
});

const auth = new Auth(config);
await auth.authenticate('222222');

const trading = new Trading(auth);

const accounts = await trading.account.getAccountInfo();
console.log(accounts);

const result = await trading.trading.placeLimitOrder(
  '1234561', 'SSI', OrderSide.BUY, 100, 66000,
);
console.log(result);

Streaming realtime (cần OTP)

import { Auth, Stream, Config } from '@ssi.developer/ssi-sdk';

const config = new Config({
  clientId: 'YOUR_CLIENT_ID',
  apiKey: 'YOUR_API_KEY',
  apiSecret: 'YOUR_API_SECRET',
  privateKey: 'YOUR_PRIVATE_KEY',
});

const auth = new Auth(config);
await auth.authenticate('222222');

const stream = new Stream(auth);

stream.streaming.onData = (msg) => {
  console.log('[DATA]', msg);
};

await stream.streaming.connect();
stream.streaming.subscribeSymbolTrade(['SSI']);
await stream.streaming.wait();

Trường hợp sử dụng

Trường hợpClientXác thực
Dữ liệu thị trường (OHLC, chỉ số, chứng khoán)DataKhông cần OTP
Đặt/sửa/huỷ lệnh, tài khoản, danh mụcTradingCần OTP
Streaming WebSocket realtimeStreamCần OTP

Điều hướng tài liệu

  • Cài đặt & Cấu hình: môi trường, packages, Config.
  • Client Classes: Auth, Data, Trading, Stream — khởi tạo và sử dụng.
  • API Services: chi tiết các method API.
  • Cấu hình: tham chiếu đầy đủ Config.
  • Xử lý lỗi: các loại error và cách xử lý.
  • Enums: hằng số như OrderSide, OrderType, Board, ...
  • Models: các interface TypeScript và message streaming.

Trên trang này