Giới thiệu dự án

Thị trường chứng khoán Việt Nam ghi nhận sự bùng nổ mạnh mẽ về số lượng nhà đầu tư cá nhân tham gia. Theo số liệu từ Trung tâm Lưu ký Chứng khoán Việt Nam (VSD), tính đến ngày 30/04/2022, toàn thị trường đã ghi nhận 232.328 tài khoản mở mới chỉ trong một tháng, trong đó nhà đầu tư cá nhân chiếm tới 231.782 tài khoản. Tỷ lệ dân số tham gia đầu tư chứng khoán đạt mức 5,2%, vượt gấp 1,5 lần tổng số tài khoản mở mới của 4 năm trước đó cộng lại (tương đương 1,04 triệu tài khoản). Sự gia tăng đột biến này đặt ra thách thức công nghệ rất lớn cho các định chế tài chính, đặc biệt là hệ thống xử lý nghiệp vụ lõi (Core Securities System).

Tại Công ty TNHH Chứng khoán Ngân hàng TMCP Ngoại Thương Việt Nam (VCBS), quy trình mở tài khoản trước đây tồn tại nhiều điểm nghẽn (pain points):

  • Độ trễ vận hành lớn: Khách hàng đăng ký trực tuyến nhưng hệ thống yêu cầu xác thực hồ sơ giấy tờ vật lý thủ công qua các giao dịch CF0036 (Đổi trạng thái khách hàng tạm) và CF0037 (Mở tài khoản khách hàng tạm) trước khi cấp số lưu ký (CUSTODYCD). Quá trình này mất từ 24 đến 48 giờ.
  • Rủi ro gian lận định danh: Việc đối chiếu thủ công CMND/CCCD tiềm ẩn nguy cơ sai sót con người và khó phát hiện các loại giấy tờ giả mạo tinh vi.
  • Chi phí vận hành cao: Áp lực phân bổ nhân sự dịch vụ khách hàng (Maker/Checker) tại chi nhánh để xử lý hồ sơ giấy tờ, lưu trữ chứng từ truyền thống tốn kém tài nguyên.

Dự án "Phát triển module mở tài khoản trực tuyến eKYC tại Công ty TNHH Chứng khoán Ngân hàng VCBS trên hệ thống FLEX" được thực hiện nhằm tự động hóa hoàn toàn chu trình định danh và khởi tạo tài khoản.

graph TD
    A[Khách hàng đăng ký eKYC] -->|RESTful API| B(BDS & HOST Service)
    B --> C[(Oracle Database)]
    C --> D[Màn hình 111004: Tra cứu tự động]
    C --> E[Giao dịch 0401: Quản lý vòng đời]
    C --> F[Batch EOD: Xử lý chuyển trạng thái X, Y, Z]

Mục tiêu dự án

  1. Xây dựng API tiếp nhận dữ liệu định danh điện tử từ kênh VCB Digibank và Website vào hệ thống lõi FLEX.
  2. Tự động sinh số tài khoản lưu ký và kích hoạt tài khoản ngay tức thì theo thời gian thực (Real-time).
  3. Thiết kế mô hình quản lý vòng đời tài khoản 5 trạng thái với bộ tham số linh hoạt ($X, Y, Z$).
  4. Tích hợp hệ thống thông báo đa kênh (SMS/Email) và xây dựng hệ thống báo cáo kiểm toán tuân thủ (CF0102, CF0105).

Phạm vi và giới hạn

  • Phạm vi: Phân hệ Quản lý khách hàng (Customer Management) trên lõi phần mềm FLEX triển khai tại VCBS, phối hợp phát triển bởi Công ty Cổ phần Giải pháp Phần mềm Tài chính (FSS).
  • Giới hạn: Tập trung vào tầng nghiệp vụ lõi (Backend Host/Database/Client) tiếp nhận dữ liệu định danh đã được tiền xử lý từ hệ thống eKYC của bên thứ ba.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí so sánh Quy trình truyền thống tại quầy Quy trình Online bán tự động Quy trình eKYC tích hợp trên FLEX
Thời gian cấp tài khoản 1 - 2 ngày làm việc 4 - 24 giờ làm việc Tức thì (< 30 giây)
Phương thức định danh Đối chiếu giấy tờ gốc tại quầy Kiểm tra ảnh chụp thủ công AI (OCR + Face Matching + Liveness)
Cơ chế cấp số lưu ký Thủ công bởi Maker/Checker Duyệt thủ công trên CF0037 Tự động sinh mã qua API
Rủi ro hồ sơ giả mạo Trung bình (phụ thuộc nhân viên) Cao (dễ làm giả ảnh tĩnh) Thấp (xác thực sinh trắc học đa tầng)
Khả năng mở rộng Bị giới hạn bởi địa điểm vật lý Giới hạn theo năng suất duyệt Không giới hạn (Auto-scaling backend)

Phân tích yêu cầu theo mô hình MoSCoW

  • Must Have (Bắt buộc):
    • Tích hợp API tiếp nhận gói tin eKYC và lưu vào bảng CFMAST_EKYC.
    • Tự động khởi tạo bản ghi trong bảng CFMAST, AFMAST, CIMAST với trạng thái Chờ kích hoạt.
    • Chức năng chuyển trạng thái tài khoản thủ công qua giao dịch 0401 và tự động qua Batch cuối ngày (End-of-Day - EOD).
  • Should Have (Nên có):
    • Tự động gửi SMS/Email OTP, thông tin đăng nhập và cảnh báo phong tỏa.
    • Màn hình quản trị tham số SYSVAR để cấu hình số ngày $X, Y, Z$.
  • Could Have (Có thể có):
    • Báo cáo phân tích động vòng đời tài khoản CF0102 và tình trạng hồ sơ CF0105.
  • Won't Have (Chưa thực hiện):
    • Tự động trích xuất dữ liệu sinh trắc học trực tiếp tại lõi FLEX (nhiệm vụ này giao cho Service eKYC chuyên trách phía Gateway).

Thiết kế hệ thống

Hệ thống chứng khoán FLEX áp dụng kiến trúc 4 tầng phân tán (4-Tier Architecture) nhằm đảm bảo tính toàn vẹn giao dịch và an toàn thông tin tài chính:

[ Client: Flex FO/Direct ] <---> [ BDS Service ] <---> [ HOST Service ] <---> [ Oracle Database ]
classDiagram
    class CFMAST {
        +VARCHAR2(20) CUSTID PK
        +VARCHAR2(20) CUSTODYCD
        +VARCHAR2(1000) FULLNAME
        +VARCHAR2(120) IDCODE
        +DATE OPNDATE
        +VARCHAR2(5) FILES
        +VARCHAR2(4) BRID FK
    }
    class CFMAST_EKYC {
        +VARCHAR2(20) REQID PK
        +VARCHAR2(20) CUSTID
        +VARCHAR2(20) CUSTODYCD
        +VARCHAR2(20) ACCTNO
        +VARCHAR2(50) STATUS_EKYC
        +CLOB IMG_IDCODE
        +CLOB IMG_IDCODE2
        +CLOB IMG_SIGN
        +TIMESTAMP CREATETIME
    }
    class CFMAST_EKYC_LOG {
        +NUMBER AUTOID PK
        +VARCHAR2(20) CUSTODYCD
        +VARCHAR2(100) FIELD
        +VARCHAR2(1000) FROM_VALUE
        +VARCHAR2(1000) TO_VALUE
        +VARCHAR2(4) MAKER_ID
        +VARCHAR2(4) APPROVE_ID
    }
    class SYSVAR {
        +VARCHAR2(10) GRNAME PK
        +VARCHAR2(30) VARNAME PK
        +VARCHAR2(100) VARVALUE
    }
    CFMAST "1" -- "1" CFMAST_EKYC : Associates
    CFMAST "1" -- "0..*" CFMAST_EKYC_LOG : Tracks

Ngăn xếp công nghệ (Technology Stack)

  • Hệ quản trị cơ sở dữ liệu: Oracle Database Enterprise Edition (11g/12c), tối ưu hóa xử lý giao dịch OLTP và lưu trữ dữ liệu lớn (CLOB cho ảnh định danh).
  • Tầng dịch vụ nền tảng (Service Layer): BDS (Business Distribution Service) & HOST Service xây dựng trên nền C++/Java, xử lý đồng thời hàng nghìn tiến trình giao dịch.
  • Tầng giao diện người dùng: FLEX Client Desktop Application dành cho bộ phận tác nghiệp nội bộ.
  • Giao thức truyền thông: RESTful API/JSON bảo mật qua kênh mã hóa TLS 1.3, xác thực token bảo mật.

Thiết kế cấu trúc cơ sở dữ liệu (Database Schema)

Dữ liệu tiếp nhận từ eKYC được lưu trữ và kiểm toán qua các bảng vật lý cốt lõi:

-- Bảng lưu trữ thông tin đăng ký định danh điện tử
CREATE TABLE CFMAST_EKYC (
    REQID           VARCHAR2(20) NOT NULL,
    CUSTID          VARCHAR2(20) NOT NULL,
    CUSTODYCD       VARCHAR2(20) NOT NULL,
    ACCTNO          VARCHAR2(20) NOT NULL,
    FULLNAME        VARCHAR2(1000),
    IDCODE          VARCHAR2(120),
    IDDATE          DATE,
    IDPLACE         VARCHAR2(1000),
    IDEXPIRED       DATE,
    EMAIL           VARCHAR2(180),
    MOBILE          VARCHAR2(80),
    IMG_IDCODE      CLOB,
    IMG_IDCODE2     CLOB,
    IMG_SIGN        CLOB,
    STATUS_EKYC     VARCHAR2(50), -- Chờ kích hoạt, Đã kích hoạt, Hoạt động, Phong tỏa, Đã hủy
    STATUS          VARCHAR2(50),
    CREATETIME      TIMESTAMP(6) DEFAULT SYSTIMESTAMP,
    LAST_CHANGE     TIMESTAMP(6),
    CONSTRAINT PK_CFMAST_EKYC PRIMARY KEY (REQID)
);

-- Bảng lưu vết thay đổi trạng thái và thông tin (Audit Log)
CREATE TABLE CFMAST_EKYC_LOG (
    AUTOID          NUMBER GENERATED BY DEFAULT AS IDENTITY,
    TXDATE          DATE,
    TXNUM           VARCHAR2(20),
    TLTXCD          VARCHAR2(10), -- Mã giao dịch (VD: 0401)
    CUSTID          VARCHAR2(20),
    CUSTODYCD       VARCHAR2(20),
    FIELD           VARCHAR2(100),
    FROM_VALUE      VARCHAR2(1000),
    TO_VALUE        VARCHAR2(1000),
    MAKER_ID        VARCHAR2(4),
    MAKER_DT        TIMESTAMP(6),
    APPROVE_ID      VARCHAR2(4),
    APPROVE_DT      TIMESTAMP(6),
    CONSTRAINT PK_CFMAST_EKYC_LOG PRIMARY KEY (AUTOID)
);

Thiết kế luồng luân chuyển trạng thái (State Machine Engine)

Vòng đời tài khoản trực tuyến eKYC được chuẩn hóa qua 5 trạng thái:

  1. Chờ kích hoạt: Khởi tạo tức thì sau khi API tiếp nhận dữ liệu đăng ký hợp lệ.
  2. Đã kích hoạt: Khách hàng hoàn tất xác nhận thông tin với nhân viên hoặc phát sinh nộp tiền giao dịch ban đầu.
  3. Hoạt động: Hồ sơ gốc đạt chuẩn (chuyển trạng thái trường FILES từ NO sang YES).
  4. Phong tỏa: Tự động áp dụng khi:
    • Quá $X$ ngày ở trạng thái Đã kích hoạt mà chưa hoàn thiện hồ sơ.
    • Quá $Y$ ngày ở trạng thái Chờ kích hoạt, có bút toán nộp tiền nhưng chưa có hồ sơ.
  5. Đã hủy: Tự động áp dụng sau $Z$ ngày ở trạng thái Chờ kích hoạt mà không phát sinh nộp tiền và không bổ sung hồ sơ.
stateDiagram-v2
    [*] --> Chờ_kích_hoạt: Đăng ký eKYC thành công (API)
    Chờ_kích_hoạt --> Đã_kích_hoạt: Maker thực hiện Tx 0401 / Nộp tiền
    Chờ_kích_hoạt --> Phong_tỏa: Có nộp tiền & Quá Y ngày chưa nộp hồ sơ
    Chờ_kích_hoạt --> Đã_hủy: Không nộp tiền & Quá Z ngày chưa nộp hồ sơ
    Đã_kích_hoạt --> Hoạt_động: Cập nhật hồ sơ thành công (FILES = YES)
    Đã_kích_hoạt --> Phong_tỏa: Quá X ngày chưa nộp hồ sơ
    Phong_tỏa --> Hoạt_động: Bổ sung hồ sơ thành công (FILES = YES)
    Đã_hủy --> Chờ_kích_hoạt: Khách hàng nộp tiền / Kích hoạt lại
    Hoạt_động --> [*]

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển tích hợp Waterfall - Agile (Agile trong việc xây dựng module mở rộng, Waterfall trong việc tuân thủ các quy chuẩn nghiêm ngặt của Core Banking/Securities):

  • Đánh giá rủi ro (Risk Assessment):
    • Xung đột dữ liệu (Data Integrity): Khắc phục bằng cơ chế transaction lock và ràng buộc toàn vẹn khóa ngoại trên bảng CFMAST.
    • Tắc nghẽn xử lý cuối ngày (Batch Bottleneck): Thiết kế Store Procedure chạy ngầm tối ưu hóa bằng bulk collect và cursor phân trang.
  • Cơ chế kiểm soát phân quyền: Nghiêm ngặt tuân thủ mô hình Maker - Checker. Giao dịch thay đổi trạng thái bắt buộc phải qua 2 bước: Nhân viên nghiệp vụ tạo lệnh (Maker) và Kiểm soát viên duyệt (Checker) trên hệ thống giao dịch 0401.

Implementation và kết quả

Quy trình cài đặt và cấu trúc thuật toán

Hệ thống triển khai 14 hạng mục cấu hình và lập trình backend, tập trung vào các giải thuật tự động hóa:

1. Logic tiếp nhận và khởi tạo tài khoản qua API

Gói tin JSON từ Gateway eKYC được giải mã, thẩm định tính duy nhất của số CMND/CCCD (IDCODE). Nếu hợp lệ, hệ thống cấp phát số lưu ký định dạng 022Cxxxxxx và phân bổ tiểu khoản AFMAST, tài khoản tiền CIMAST.

2. Thuật toán quét và chuyển trạng thái tự động cuối ngày (Batch EOD Procedure)

CREATE OR REPLACE PROCEDURE PRC_AUTO_EKYC_EOD_PROCESS (
    p_err_code OUT VARCHAR2,
    p_err_message OUT VARCHAR2
) IS
    v_param_x NUMBER; -- Ngưỡng ngày Đã kích hoạt -> Phong tỏa
    v_param_y NUMBER; -- Ngưỡng ngày Chờ kích hoạt (có tiền) -> Phong tỏa
    v_param_z NUMBER; -- Ngưỡng ngày Chờ kích hoạt (không tiền) -> Hủy
    v_curr_date DATE;
BEGIN
    SELECT TO_DATE(VARVALUE, 'DD/MM/YYYY') INTO v_curr_date FROM SYSVAR WHERE VARNAME = 'CURRDATE';
    SELECT TO_NUMBER(VARVALUE) INTO v_param_x FROM SYSVAR WHERE VARNAME = 'EKYC_X_DAYS';
    SELECT TO_NUMBER(VARVALUE) INTO v_param_y FROM SYSVAR WHERE VARNAME = 'EKYC_Y_DAYS';
    SELECT TO_NUMBER(VARVALUE) INTO v_param_z FROM SYSVAR WHERE VARNAME = 'EKYC_Z_DAYS';

    -- 1. Chuyển Đã kích hoạt -> Phong tỏa nếu quá X ngày chưa có hồ sơ
    UPDATE CFMAST_EKYC e
    SET e.STATUS_EKYC = 'PHONGTOA', e.LAST_CHANGE = SYSTIMESTAMP
    WHERE e.STATUS_EKYC = 'DAKICHHOAT'
      AND EXISTS (SELECT 1 FROM CFMAST c WHERE c.CUSTID = e.CUSTID AND c.FILES = 'NO')
      AND (v_curr_date - TRUNC(e.EKYCTIME)) > v_param_x;

    -- 2. Chuyển Chờ kích hoạt -> Phong tỏa nếu có bút toán nộp tiền và quá Y ngày chưa có hồ sơ
    UPDATE CFMAST_EKYC e
    SET e.STATUS_EKYC = 'PHONGTOA', e.LAST_CHANGE = SYSTIMESTAMP
    WHERE e.STATUS_EKYC = 'CHOKICHHOAT'
      AND EXISTS (SELECT 1 FROM CIMAST ci WHERE ci.CUSTID = e.CUSTID AND (ci.BALANCE > 0 OR ci.CRAMT > 0))
      AND EXISTS (SELECT 1 FROM CFMAST c WHERE c.CUSTID = e.CUSTID AND c.FILES = 'NO')
      AND (v_curr_date - TRUNC(e.EKYCTIME)) > v_param_y;

    -- 3. Chuyển Chờ kích hoạt -> Đã hủy nếu không có tiền và quá Z ngày chưa có hồ sơ
    UPDATE CFMAST_EKYC e
    SET e.STATUS_EKYC = 'DAHUY', e.LAST_CHANGE = SYSTIMESTAMP
    WHERE e.STATUS_EKYC = 'CHOKICHHOAT'
      AND NOT EXISTS (SELECT 1 FROM CIMAST ci WHERE ci.CUSTID = e.CUSTID AND (ci.BALANCE > 0 OR ci.CRAMT > 0))
      AND EXISTS (SELECT 1 FROM CFMAST c WHERE c.CUSTID = e.CUSTID AND c.FILES = 'NO')
      AND (v_curr_date - TRUNC(e.EKYCTIME)) > v_param_z;

    COMMIT;
    p_err_code := '0';
    p_err_message := 'SUCCESS';
EXCEPTION
    WHEN OTHERS THEN
        ROLLBACK;
        p_err_code := SQLCODE;
        p_err_message := SQLERRM;
END PRC_AUTO_EKYC_EOD_PROCESS;
/

Kiểm thử và đánh giá hiệu năng

gantt
    title Kế hoạch triển khai module eKYC trên hệ thống FLEX
    dateFormat  YYYY-MM-DD
    section Phân tích & Thiết kế
    Khảo sát quy trình & Lập SRS       :done, des1, 2022-01-05, 2022-01-20
    Thiết kế Database & UI/UX Core    :done, des2, 2022-01-21, 2022-02-15
    section Phát triển & Cài đặt
    Xây dựng API & Giao dịch 0401     :done, dev1, 2022-02-16, 2022-03-20
    Cài đặt Procedure Batch EOD       :done, dev2, 2022-03-21, 2022-04-05
    section Kiểm thử & Bàn giao
    Kiểm thử chức năng UAT            :done, test1, 2022-04-06, 2022-04-25
    Kiểm tra tải & Đưa vào vận hành  :done, test2, 2022-04-26, 2022-05-15

Quá trình kiểm thử chấp nhận người dùng (User Acceptance Testing - UAT) được thực hiện trên môi trường Staging với các kịch bản kiểm thử toàn diện:

  • Kiểm thử chức năng (Functional Testing):
    • Đăng ký eKYC qua API thành công $\rightarrow$ Cấp số tự động $\rightarrow$ Trạng thái Chờ kích hoạt: Tỷ lệ thành công 100% (500/500 test cases).
    • Phê duyệt Maker-Checker trên màn hình 111004 và giao dịch 0401: Chặn 100% các thao tác duyệt chéo tài khoản không hợp lệ hoặc cố tình xóa giao dịch đã duyệt.
  • Kiểm thử hiệu năng xử lý (Performance Benchmarks):
    • Thời gian phản hồi API mở tài khoản: $\le 1,2$ giây/yêu cầu.
    • Thời gian chạy Batch EOD cho 100.000 tài khoản eKYC: $< 45$ giây, không gây khóa bảng (table locking) trên các bảng giao dịch CFMASTCIMAST.
    • Tự động gửi Email/SMS thông báo trạng thái: Độ trễ hàng đợi $< 3$ giây.

Đổi mới và đóng góp

  1. Cơ chế quản lý vòng đời tài khoản động: Thay vì chỉ áp dụng trạng thái nhị phân (Đóng/Mở), hệ thống triển khai cỗ máy trạng thái 5 nấc với các biến thời gian cấu hình linh hoạt ($X, Y, Z$) trực tiếp qua bảng SYSVAR mà không cần biên dịch lại mã nguồn (Zero-downtime reconfiguration).
  2. Kiểm soát rủi ro tuân thủ tự động: Tài khoản được cấp ngay để nộp tiền và theo dõi thị trường, nhưng bị phong tỏa tự động theo điều kiện logic nghiêm ngặt nếu khách hàng không gửi hợp đồng giấy tờ gốc đúng hạn, đảm bảo 100% tuân thủ quy định của Ủy ban Chứng khoán Nhà nước (UBCKNN).
  3. Minh bạch kiểm toán (Audit Trail): Toàn bộ các thao tác chỉnh sửa, thay đổi trạng thái từ tự động hay thủ công đều được ghi vết chi tiết vào bảng CFMAST_EKYC_LOG, cho phép truy vết chính xác danh tính Maker, Checker và thời điểm (TIMESTAMP(6)).

Ứng dụng thực tế và triển khai

Tình huống sử dụng thực tế (Real-World Use Cases)

  • Trường hợp 1 (Nhà đầu tư F0 đăng ký ngoài giờ giao dịch): Khách hàng hoàn tất eKYC lúc 21h00 trên ứng dụng VCB Digibank. Hệ thống sinh số tài khoản tức thì và gửi SMS thông tin đăng nhập. Khách hàng có thể nộp tiền ngay trong đêm để chuẩn bị giao dịch phiên sáng hôm sau.
  • Trường hợp 2 (Khách hàng không bổ sung hồ sơ sau kích hoạt): Sau $X = 30$ ngày kích hoạt, nếu trạng thái FILES vẫn là NO, hệ thống tự động khóa chiều mua/rút tiền tại phiên xử lý EOD, gửi email cảnh báo rõ lý do cho nhà đầu tư.

Hiệu quả kinh tế và vận hành (Cost-Benefit Analysis)

  • Thời gian xử lý hồ sơ: Giảm 95% thời gian tác nghiệp của nhân viên chi nhánh (từ trung bình 15 phút/hồ sơ xuống dưới 45 giây kiểm tra xác nhận).
  • Năng lực tiếp nhận khách hàng: Tăng trưởng gấp 10 lần công suất mở tài khoản tại VCBS trong các giai đoạn thị trường tạo đỉnh thanh khoản mà không cần tuyển dụng thêm nhân sự vận hành.
  • Tối ưu chi phí: Tiết kiệm hàng trăm triệu đồng chi phí in ấn biểu mẫu, lưu trữ kho chứng từ vật lý hàng năm.

Hạn chế và hướng phát triển

  • Hạn chế kỹ thuật:
    • Module phụ thuộc vào tính sẵn sàng của kết nối mạng nội bộ giữa Core FLEX và Core Banking Vietcombank.
    • Hiện tại chưa tích hợp ký số điện tử từ xa (Remote Signing/PKI) trực tiếp trên Web/App nên vẫn cần quy trình hoàn thiện hồ sơ vật lý để chuyển sang trạng thái Hoạt động vĩnh viễn.
  • Hướng phát triển tương lai:
    • Tích hợp giải pháp Hợp đồng điện tử (e-Contract) ứng dụng công nghệ chữ ký số xác thực Căn cước công dân gắn chip (NFC), loại bỏ hoàn toàn yêu cầu gửi hợp đồng giấy tờ vật lý ($X, Y, Z = 0$).
    • Ứng dụng AI phát hiện bất thường trong hành vi nộp tiền của các tài khoản Chờ kích hoạt để chủ động phòng chống rửa tiền (Anti-Money Laundering - AML).

Đối tượng hưởng lợi

mindmap
  root((Hệ sinh thái hưởng lợi))
    Nhà đầu tư cá nhân
      Mở tài khoản 24/7 tức thì
      Giao dịch nhanh đón sóng thị trường
    Nhân viên vận hành VCBS
      Loại bỏ thao tác nhập liệu thủ công
      Maker-Checker an toàn, chống sai sót
    Công ty Chứng khoán VCBS
      Tiết kiệm 95% chi phí xử lý hồ sơ
      Tăng trưởng thị phần vượt bậc
    Kỹ sư phần mềm & Sinh viên
      Mẫu thiết kế State Machine chuẩn FinTech
      Khai thác kiến trúc 4-tier FLEX Core
  • Sinh viên chuyên ngành HTTT / Công nghệ thông tin: Tài liệu tham khảo thực tế về phân tích thiết kế hệ thống thông tin tài chính - ngân hàng, cách tổ chức cơ sở dữ liệu quan hệ và thiết kế kiến trúc phân tán 4 tầng của phần mềm lõi chứng khoán.
  • Kỹ sư phần mềm / Chuyên viên tích hợp hệ thống: Nắm bắt kỹ thuật thiết kế cỗ máy trạng thái (State Machine), cơ chế xử lý Batch EOD tối ưu hiệu năng trên cơ sở dữ liệu Oracle quy mô lớn.
  • Doanh nghiệp / Công ty chứng khoán: Mô hình tham chiếu chuẩn hóa để số hóa quy trình nghiệp vụ cũ sang mô hình định danh số (Digital Onboarding) tuân thủ khung pháp lý ngành chứng khoán Việt Nam.

Câu hỏi thường gặp

1. Yêu cầu phần cứng và hệ thống tối thiểu để vận hành module là gì?

Máy chủ cơ sở dữ liệu chạy Oracle Database 11g Release 2 trở lên, tối thiểu 16 vCPU, 64GB RAM, ổ cứng SSD chuẩn Enterprise cấu hình RAID 10. Máy chủ ứng dụng BDS/HOST Service yêu cầu tối thiểu 8 vCPU, 32GB RAM trên nền tảng RedHat Enterprise Linux hoặc Windows Server.

2. Module xử lý tình huống mất kết nối API giữa Core eKYC và Core FLEX như thế nào?

Hệ thống sử dụng cơ chế hàng đợi bất đồng bộ (Message Queue) kết hợp Retry Pattern. Mọi gói tin gửi sang bị lỗi mạng sẽ được lưu tạm tại Staging Table với trạng thái PENDING_RETRY và tự động kích hoạt lại sau mỗi 60 giây, đảm bảo không thất thoát dữ liệu khách hàng.

3. Làm thế nào để điều chỉnh số ngày $X, Y, Z$ trong quản lý vòng đời tài khoản?

Kiểm soát viên hệ thống có thể truy cập trực tiếp màn hình 020019 (Thay đổi tham số hệ thống) để sửa đổi giá trị VARVALUE của các biến EKYC_X_DAYS, EKYC_Y_DAYS, EKYC_Z_DAYS trong bảng SYSVAR. Giá trị mới sẽ có hiệu lực ngay trong kỳ chạy Batch EOD tiếp theo.

4. Cơ chế Maker - Checker trên giao dịch 0401 được đảm bảo an toàn ra sao?

Người tạo giao dịch (Maker) nhập số tài khoản và chọn trạng thái mới trên form giao dịch 0401. Giao dịch lập tức chuyển sang hàng đợi chờ duyệt. Kiểm soát viên (Checker) sử dụng tài khoản có quyền hạn cao hơn để kiểm tra và duyệt trên màn hình Phê duyệt. Hệ thống tuyệt đối ngăn cấm tài khoản Maker tự phê duyệt giao dịch của chính mình.

5. Dữ liệu hình ảnh khuôn mặt và CMND/CCCD dung lượng lớn có làm chậm truy vấn cơ sở dữ liệu không?

Không. Các trường hình ảnh (IMG_IDCODE, IMG_IDCODE2, IMG_SIGN) được lưu dưới dạng kiểu dữ liệu CLOB (dữ liệu Base64) hoặc tham chiếu bảng ngoài trong bảng CFMAST_EKYC. Các truy vấn nghiệp vụ hàng ngày chỉ quét qua bảng dữ liệu giao dịch chính CFMASTAFMAST, hoàn toàn không tải trường CLOB trừ khi người dùng mở chi tiết hình ảnh trên view 111004.


Kết luận

Đề tài "Phát triển module mở tài khoản trực tuyến eKYC tại Công ty TNHH Chứng khoán Ngân hàng VCBS trên hệ thống FLEX" đã giải quyết triệt để điểm nghẽn trong quy trình mở tài khoản truyền thống tại VCBS. Bằng việc kết hợp giữa công nghệ định danh điện tử hiện đại và thiết kế cỗ máy trạng thái 5 nấc linh hoạt trên nền tảng cơ sở dữ liệu Oracle hiệu năng cao, đồ án không chỉ nâng cấp năng lực cạnh tranh số của doanh nghiệp mà còn cung cấp một mô hình kỹ thuật mẫu mực về chuyển đổi số hệ thống nghiệp vụ tài chính. Đây là bước đệm vững chắc hướng tới mục tiêu tự động hóa 100% trải nghiệm khách hàng trong kỷ nguyên FinTech.