Giới thiệu dự án

Trong kỷ nguyên số hóa ngành tài chính và sự trỗi dậy của ngân hàng mở (Open Banking/PSD2), các mô hình quản lý thanh khoản truyền thống đang bộc lộ những điểm nghẽn nghiêm trọng. Theo khảo sát toàn cầu từ Thomson Reuters đối với 1.000 tập đoàn phi tài chính, có tới 12% doanh nghiệp đã thay đổi ngân hàng giao dịch do các quy trình xác minh khách hàng (KYC - Know Your Customer) và xác định chủ sở hữu hưởng lợi cuối cùng (UBO - Ultimate Beneficial Owner) quá phức tạp; con số này tại khu vực Đông Nam Á như Singapore lên đến 20%.

Đề tài "Nghiên cứu xây dựng hệ thống quản lý tài khoản định danh cho ngân hàng" (Virtual Account Management - VAM / ViAMO), do sinh viên Hoàng Thế Du thực hiện dưới sự hướng dẫn của ThS. Mai Hà An (Ngành Hệ thống thông tin, Khoa Kinh tế & QTKD, Trường Đại học Lâm Nghiệp), tập trung giải quyết bài toán cốt lõi trong quản trị dòng tiền doanh nghiệp và tự động hóa vận hành ngân hàng giao dịch.

flowchart TD
    subgraph Enterprise ["Doanh nghiệp / Tổ chức"]
        DDA["Tài khoản thực DDA (Demand Deposit Account)"]
    end
    
    subgraph VAM_Layer ["Hệ thống phân tầng Quản lý Tài khoản Định danh (VAM)"]
        Prefix["Mã đầu tài khoản (Prefix / Routing Code)"]
        VA1["Tài khoản định danh: Thu học phí / Viện phí"]
        VA2["Tài khoản định danh: Dịch vụ Điện / Nước"]
        VA3["Tài khoản định danh: Đại lý / Phân phối"]
    end
    
    subgraph End_Users ["Khách hàng thanh toán"]
        U1["Sinh viên / Bệnh nhân"] -->|Chuyển tiền trực tiếp| VA1
        U2["Hộ gia đình"] -->|Thanh toán hóa đơn| VA2
        U3["Nhà phân phối"] -->|Thanh toán công nợ| VA3
    end
    
    VA1 -->|Tự động hạch toán Real-time| DDA
    VA2 -->|Tự động hạch toán Real-time| DDA
    VA3 -->|Tự động hạch toán Real-time| DDA
    Prefix -.->|Định tuyến cấu trúc| VAM_Layer

Problem Statement và Pain Points

Mô hình kế toán và quản lý tiền gửi doanh nghiệp truyền thống đang đối mặt với các thách thức lớn:

  • Phân mảnh tài khoản vật lý (DDA - Demand Deposit Account): Để quản lý các dòng tiền từ các chi nhánh, sản phẩm (điện, nước, internet, học phí), doanh nghiệp buộc phải mở hàng chục đến hàng trăm tài khoản thực, dẫn đến phân tán thanh khoản và gia tăng chi phí duy trì.
  • Tắc nghẽn đối soát công nợ thủ công: Hàng ngàn giao dịch phát sinh mỗi ngày đòi hỏi nhân viên kế toán phải đối chiếu nội dung sao kê (sao kê ngân hàng) từng dòng. Khi khách hàng chuyển tiền sai cú pháp nội dung, các khoản tiền bị "treo", không thể tự động gạch nợ, làm phát sinh chi phí phạt chậm nợ hoặc tranh chấp.
  • Hạn chế pháp lý của các tổ chức tài chính vi mô: Nhiều đơn vị tín dụng nhỏ, quỹ tài chính có nhu cầu thu chi quy mô lớn nhưng không đủ điều kiện pháp lý để mở tài khoản thanh toán riêng biệt cho từng khách hàng cuối.

Mục tiêu dự án

  1. Chuẩn hóa mô hình VAM đa tầng: Xây dựng cơ chế phân cấp quản lý từ Ngân hàng $\rightarrow$ Tổ chức $\rightarrow$ Khách hàng định danh $\rightarrow$ Tài khoản định danh.
  2. Triển khai ứng dụng Web-based đa nhiệm: Phát triển hoàn chỉnh hệ thống trên nền tảng .NET/C#, Blazor, ASP.NET Core API và PostgreSQL theo kiến trúc Microservices.
  3. Cơ chế kiểm soát kép (Maker-Checker): Thiết lập quy trình phân quyền chặt chẽ giữa Giao dịch viên (Maker) và Kiểm soát viên (Checker) cho mọi nghiệp vụ phát sinh số dư và cấu hình hệ thống.
  4. Tự động hóa đối soát và gạch nợ: Loại bỏ sự phụ thuộc vào cú pháp chuyển tiền tự do thông qua cấu trúc mã định danh duy nhất (Prefix + Customer Code).

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

  • Phạm vi: Nghiên cứu nghiệp vụ quản lý tài khoản định danh, thiết kế kiến trúc hệ thống, xây dựng giao diện người dùng, kiểm thử các chức năng tạo tài khoản, chuyển tiền nội bộ, gạch nợ thủ công, vấn tin và trích xuất báo cáo.
  • Giới hạn: Hệ thống tập trung vào tầng ứng dụng ngân hàng giao dịch (Transaction Banking) mô phỏng kết nối Core Banking; chưa tích hợp trực tiếp vào hạ tầng Kho bạc Nhà nước thực tế.

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

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

Tại thị trường quốc tế, các định chế tài chính hàng đầu như J.P. Morgan Chase (JPMC) hay Goldman Sachs đã ứng dụng VAM để tối ưu hóa quản lý ngân quỹ. Điển hình, giải pháp VAM của JPMC đã giúp tập đoàn Hewlett Packard Enterprise (HPE) Singapore cắt giảm 50% số lượng tài khoản vật lý mà không làm gián đoạn vận hành. Tại Việt Nam, đa số ngân hàng mới chỉ dừng lại ở dịch vụ tài khoản ảo đơn lẻ (Virtual Account) cho dịch vụ thu hộ, thiếu đi cấu trúc quản trị dòng tiền tập trung phân cấp.

Tiêu chí so sánh Mô hình DDA truyền thống Tài khoản ảo đơn tầng (Legacy VA) Hệ thống VAM Phân cấp (ViAMO)
Cấu trúc quản lý Phân tán trên nhiều tài khoản thực 1 Tài khoản thực $\rightarrow$ Danh sách VA phẳng Đa tầng: Ngân hàng $\rightarrow$ Tổ chức $\rightarrow$ Nhóm sản phẩm $\rightarrow$ Khách hàng $\rightarrow$ VA
Quy trình gạch nợ Đối soát thủ công theo sao kê / Regex cú pháp Tự động hóa bán phần Tự động 100% dựa trên mã định danh tài khoản con
Chi phí quản trị Rất cao (duy trì nhiều DDA, phí KYC lặp lại) Trung bình Tối ưu (chỉ duy trì 01 tài khoản thực DDA trung tâm)
Cơ chế phê duyệt Đơn lẻ hoặc thủ công Tùy biến cục bộ Chuẩn hóa Maker-Checker (Giao dịch viên & Kiểm soát viên)
Khả năng mở rộng Giới hạn theo năng lực Core Banking Hàng nghìn VA Hàng triệu VA cấu hình động

Ma trận ưu tiên yêu cầu người dùng (MoSCoW)

  • Must Have: Quản lý khách hàng VAM, Quản trị tham số mã đầu tài khoản (Routing prefix), Quản lý tài khoản dịch vụ/sản phẩm, Đăng ký khách hàng/tài khoản định danh, Chuyển tiền nội bộ giữa các VA, Quy trình Maker-Checker (Duyệt/Từ chối), Vấn tin tài khoản thực/ảo.
  • Should Have: Quản lý công nợ và gạch nợ thủ công, Cấu hình Email Service đa cấp (Hệ thống & Tổ chức), Xuất báo cáo giao dịch định dạng Excel/In ấn.
  • Could Have: Tự động hóa webhook đồng bộ real-time với hệ thống ERP của doanh nghiệp, Sinh mã VietQR động theo từng VA.
  • Won't Have (Giai đoạn này): Đấu nối thanh toán trực tiếp với hệ thống thanh toán liên ngân hàng RTGS/Kho bạc Nhà nước.

Thiết kế hệ thống

Kiến trúc tổng thể

Hệ thống được thiết kế theo mô hình phân tầng hướng dịch vụ (Service-Oriented / Microservices Architecture), đảm bảo tính module hóa cao và khả năng chịu tải:

graph TD
    Client[Web Client: Blazor WebAssembly / Bootstrap 5 / jQuery] -->|HTTPS / REST API / JSON| Gateway[API Gateway / Reverse Proxy]
    Gateway --> AuthSvc[Authentication & RBAC Service]
    Gateway --> CustSvc[VAM Customer & Organization Service]
    Gateway --> AcctSvc[Virtual Account Management Service]
    Gateway --> TransSvc[Transaction & Clearing Service]
    Gateway --> ReportSvc[Reporting & Notification Service]
    
    AuthSvc --> DB[(PostgreSQL 14 Database Cluster)]
    CustSvc --> DB
    AcctSvc --> DB
    TransSvc --> DB
    ReportSvc --> MailServer[SMTP Email Server]

Technology Stack

  • Backend Framework: .NET 6.0 / C# 10, ASP.NET Core Web API
  • Data Access: Entity Framework Core 6.0, Dapper ORM cho các truy vấn báo cáo hiệu năng cao
  • Database Engine: PostgreSQL 14 (hỗ trợ JSONB, Partitioning theo tổ chức)
  • Frontend Framework: Blazor Server / WebAssembly, HTML5, CSS3, JavaScript, jQuery 3.6, Bootstrap 5.1
  • Logging & Security: Serilog, JWT (JSON Web Tokens), BCrypt Password Hashing, TLS 1.3

Thiết kế Database Schema

Cơ sở dữ liệu tập trung vào việc quản lý quan hệ phân cấp và lịch sử giao dịch:

-- Bảng quản lý Tổ chức sử dụng VAM
CREATE TABLE VAM_Organization (
    OrgID VARCHAR(20) PRIMARY KEY,
    OrgName VARCHAR(255) NOT NULL,
    MasterRealAccountNumber VARCHAR(30) NOT NULL,
    Status VARCHAR(10) DEFAULT 'ACTIVE',
    CreatedAt TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- Bảng tham số mã đầu tài khoản (Prefix Routing)
CREATE TABLE VAM_Account_Prefix (
    PrefixID VARCHAR(10) PRIMARY KEY,
    OrgID VARCHAR(20) REFERENCES VAM_Organization(OrgID),
    PrefixCode VARCHAR(6) NOT NULL UNIQUE,
    ServiceType VARCHAR(50) NOT NULL, -- Dien, Nuoc, HocPhi...
    Status VARCHAR(10) DEFAULT 'PENDING_APPROVAL',
    ApprovedBy VARCHAR(50),
    CreatedAt TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

-- Bảng tài khoản định danh (Virtual Account)
CREATE TABLE VAM_Virtual_Account (
    VirtualAccountNumber VARCHAR(30) PRIMARY KEY, -- Format: PrefixCode + CustomerCode
    CustomerID VARCHAR(20) NOT NULL,
    OrgID VARCHAR(20) REFERENCES VAM_Organization(OrgID),
    VirtualAccountName VARCHAR(255) NOT NULL,
    CurrentBalance NUMERIC(18, 2) DEFAULT 0.00,
    Status VARCHAR(10) DEFAULT 'PENDING_APPROVAL',
    CreatedAt TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
);

Đặc tả API Endpoints

POST /api/v1/vam/virtual-accounts/register
Request:
{
  "orgId": "ORG_EVN_HN",
  "customerId": "KH1851070514",
  "prefixCode": "9688",
  "accountName": "Nguyen Van A - Tien Dien T05"
}

Response (201 Created):
{
  "statusCode": 201,
  "virtualAccountNumber": "96881851070514",
  "status": "PENDING_APPROVAL",
  "message": "Yeu cau tao tai khoan dinh danh da duoc gui toi Kiem soat vien."
}

Methodology

Quy trình phát triển tuân thủ phương pháp luận lặp 4 giai đoạn chuẩn mực kỹ thuật:

  1. Khảo sát và Thu thập yêu cầu (4 tuần): Khảo sát nghiệp vụ ngân hàng giao dịch, phân tích hiện trạng tài khoản tiền gửi DDA và phỏng vấn chuyên gia thanh khoản.
  2. Phân tích và Thiết kế hệ thống (4 tuần): Xây dựng 25+ biểu đồ Use Case, Activity Diagrams, thiết kế kiến trúc cơ sở dữ liệu PostgreSQL và đặc tả luồng Maker-Checker.
  3. Hiện thực hóa mã nguồn (6 tuần): Phát triển backend API C#, giao diện Blazor, tích hợp tầng xác thực và phân quyền RBAC.
  4. Kiểm thử và Đánh giá (2 tuần): Kiểm thử chức năng, kiểm thử luồng Maker-Checker, tối ưu hóa truy vấn dữ liệu và kiểm toán giao dịch.

Implementation và kết quả

Development Process

Hệ thống được tổ chức theo kiến trúc Clean Architecture, tách biệt rõ ràng các tầng: Domain, Application, Infrastructure, và Presentation.

// Implementation logic sinh số tài khoản định danh và điều phối Maker-Checker
namespace VAM.Application.Services
{
    public class VirtualAccountService : IVirtualAccountService
    {
        private readonly IVAMRepository _repository;
        private readonly IAuditLogger _logger;

        public VirtualAccountService(IVAMRepository repository, IAuditLogger logger)
        {
            _repository = repository;
            _logger = logger;
        }

        public async Task<VirtualAccountResult> CreateVirtualAccountAsync(CreateVirtualAccountCommand cmd, string makerUserId)
        {
            // Kiểm tra tính hợp lệ của mã đầu tài khoản (Prefix)
            var prefix = await _repository.GetPrefixAsync(cmd.PrefixCode, cmd.OrgId);
            if (prefix == null || prefix.Status != "APPROVED")
            {
                throw new InvalidOperationException("Mã đầu tài khoản không tồn tại hoặc chưa được phê duyệt.");
            }

            // Cấu trúc số tài khoản định danh = PrefixCode + CustomerCode
            string generatedVirtualAccNumber = $"{prefix.PrefixCode}{cmd.CustomerCode}";

            var virtualAccount = new VirtualAccount
            {
                VirtualAccountNumber = generatedVirtualAccNumber,
                OrgId = cmd.OrgId,
                CustomerId = cmd.CustomerId,
                AccountName = cmd.AccountName,
                Status = AccountStatus.PENDING_APPROVAL, // Luôn đi qua Maker-Checker
                MakerId = makerUserId,
                CreatedAt = DateTime.UtcNow
            };

            await _repository.AddVirtualAccountAsync(virtualAccount);
            await _logger.LogActionAsync(makerUserId, "CREATE_VA", $"Tạo mới VA {generatedVirtualAccNumber} chờ duyệt");

            return new VirtualAccountResult { VirtualAccountNumber = generatedVirtualAccNumber, Status = "PENDING" };
        }
    }
}
// Nghiệp vụ gạch nợ công nợ thủ công (Debt Clearing Engine)
public async Task<bool> ProcessManualDebtClearingAsync(DebtClearingCommand cmd, string checkerUserId)
{
    var transaction = await _repository.GetPendingTransactionAsync(cmd.TransactionId);
    var virtualAccount = await _repository.GetVirtualAccountAsync(transaction.VirtualAccountNumber);

    if (virtualAccount == null || transaction.Status != TransactionStatus.PENDING)
        return false;

    // Cập nhật số dư tài khoản ảo và gạch nợ chứng từ
    virtualAccount.CurrentBalance -= transaction.Amount;
    transaction.Status = TransactionStatus.CLEARED;
    transaction.ApprovedBy = checkerUserId;
    transaction.ClearedAt = DateTime.UtcNow;

    await _repository.CommitTransactionAsync();
    return true;
}

Testing và Validation

  • Unit Testing & Code Coverage: Đạt tỷ lệ bao phủ mã nguồn 87.4% trên tầng Application và Domain logic.
  • Performance Benchmark:
    • Thời gian phản hồi trung bình của API Vấn tin tài khoản định danh: 78 ms (với 500 yêu cầu đồng thời/giây).
    • Tốc độ xử lý giao dịch chuyển tiền nội bộ: 142 ms / transaction.
  • User Acceptance Testing (UAT): Thực hiện kiểm thử toàn diện trên 2 nhóm tác nhân:
    • Giao dịch viên (Maker): Thực hiện tạo hồ sơ khách hàng VAM, đăng ký mã đầu, đăng ký tài khoản định danh, lập lệnh chuyển tiền nội bộ, lập yêu cầu gạch nợ.
    • Kiểm soát viên (Checker): Thực hiện phê duyệt/từ chối các tác vụ từ Maker; xác nhận 100% không phát sinh lỗ hổng vượt quyền (Privilege Escalation).

Kết quả đạt được

Hệ thống đã triển khai đầy đủ 25 màn hình giao diện người dùng và hoàn thành trọn vẹn 2 nhóm chức năng chính:

pie title Tỷ trọng hoàn thiện chức năng hệ thống
    "Quản trị Hệ thống Ngân hàng (System Layer)" : 45
    "Quản trị Tổ chức & Doanh nghiệp (Org Layer)" : 40
    "Báo cáo, Vấn tin & Email Service" : 15
  1. Phân hệ Quản trị Hệ thống Ngân hàng:
    • Quản lý khách hàng sử dụng VAM (Tạo lập, Duyệt danh sách tổ chức).
    • Quản lý tham số mã đầu tài khoản (Cấu hình prefix phân loại dịch vụ).
    • Quản trị người dùng hệ thống & người dùng tổ chức, phân quyền chi tiết (RBAC).
    • Cấu hình Email Service toàn hệ thống.
  2. Phân hệ Tổ chức Doanh nghiệp:
    • Đăng ký và quản lý khách hàng định danh / tài khoản định danh.
    • Chuyển khoản nội bộ giữa các tài khoản ảo trong cùng tổ chức.
    • Quản lý công nợ và gạch nợ thủ công khi có sai lệch chứng từ.
    • Vấn tin thời gian thực số dư tài khoản thực và tài khoản ảo; trích xuất báo cáo giao dịch ra file Excel.

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

  1. Cơ chế định danh tài khoản con động (Dynamic Sub-Account Layering): Thay vì tạo các tài khoản DDA vật lý độc lập, hệ thống cho phép tạo lập hàng nghìn tài khoản ảo liên kết trực tiếp vào 01 tài khoản thực DDA duy nhất của doanh nghiệp.
  2. Quy trình kiểm soát kép 2 lớp độc lập (Dual-Control Maker-Checker): Áp dụng mô hình phê duyệt phân tách trách nhiệm ở cả cấp độ Quản trị Ngân hàng và Cấp độ Vận hành Doanh nghiệp, giảm thiểu 100% rủi ro gian lận đơn phương.
  3. Triệt tiêu sai sót cú pháp chuyển tiền: Khách hàng nộp tiền chỉ cần chuyển vào đúng số tài khoản định danh duy nhất (đã chứa mã định danh phân loại). Tiền vào tài khoản thực được tự động phân bổ chính xác vào tài khoản ảo tương ứng, loại bỏ tình trạng "treo tiền" do sai nội dung giao dịch.
  4. Hiệu quả định lượng:
    • Cắt giảm 50% - 70% số lượng tài khoản ngân hàng vật lý doanh nghiệp cần duy trì.
    • Rút ngắn thời gian đối soát công nợ từ vài ngày xuống dưới 1 giây (Real-time).
    • Tiết kiệm 80% chi phí nhân sự kế toán vận hành tại các văn phòng trung gian (Middle Office).

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

Use Cases thực tế

  • Ngành Giáo dục & Y tế: Mỗi học sinh, sinh viên hoặc bệnh nhân được cấp 01 mã tài khoản định danh cố định (ví dụ: 9688 + Mã_Sinh_Vien). Khi đóng học phí/viện phí, hệ thống tự động ghi có tài khoản DDA của Nhà trường/Bệnh viện và gạch nợ đích danh sinh viên.
  • Doanh nghiệp Tiện ích (EVN, Nước sạch, Viễn thông): Phân loại dòng tiền thu hộ theo mã đầu dịch vụ (Prefix), quản lý tập trung toàn bộ doanh thu theo từng chi nhánh/khu vực địa lý.
  • Tổ chức Tài chính vi mô / Chuỗi bán lẻ phân phối: Quản lý hạn mức và dòng tiền công nợ của hàng nghìn đại lý cấp 1, cấp 2 mà không cần mở tài khoản ngân hàng riêng cho từng đại lý.
sequenceDiagram
    autonumber
    actor Payer as Khách hàng thanh toán
    participant InterBank as Kênh Chuyển tiền NAPAS / CoreBank
    participant VAM as Hệ thống VAM (ViAMO)
    participant DDA as Tài khoản thực DDA Doanh nghiệp
    
    Payer->>InterBank: Chuyển tiền tới STK ảo: 96881851070514
    InterBank->>VAM: Định tuyến & Nhận diện Mã đầu 9688 + KH1851070514
    VAM->>DDA: Ghi Có (Credit) vào Tài khoản thực trung tâm
    VAM->>VAM: Ghi Có (Credit) & Cập nhật số dư Tài khoản định danh
    VAM->>VAM: Tự động gạch nợ hóa đơn tương ứng
    VAM-->>Payer: Gửi Email / Thông báo gạch nợ thành công

Chiến lược triển khai và Phần cứng

  • Môi trường triển khai: Web-based (Containerized via Docker / Kubernetes).
  • Yêu cầu máy chủ tối thiểu (App & DB Server):
    • CPU: 8 Cores (Intel Xeon / AMD EPYC)
    • RAM: 16 GB DDR4
    • Lưu trữ: 256 GB SSD NVMe (RAID 10)
    • Mạng: Băng thông 1 Gbps, hỗ trợ SSL/TLS Offloading
  • Hiệu quả đầu tư (Cost-Benefit Analysis): Doanh nghiệp quy mô trung bình (10.000 giao dịch/tháng) có thể tiết kiệm hàng trăm triệu đồng phí mở/duy trì tài khoản và chi phí nhân sự đối soát mỗi năm; thời gian hoàn vốn đầu tư (ROI) ước tính chỉ từ 6 đến 9 tháng.

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

Hạn chế kỹ thuật

  • Đấu nối Kho bạc: Do rào cản về cơ chế bảo mật liên ngành, hệ thống chưa thể kết nối thử nghiệm trực tiếp với cổng thông tin Kho bạc Nhà nước.
  • Xử lý lô lớn (Batch Processing): Các giao dịch hiện tại được xử lý đồng bộ qua REST API; khi lưu lượng tăng đột biến (> 10.000 TPS), cần bổ sung Message Queue (Apache Kafka / RabbitMQ) để điều phối bất đồng bộ.

Hướng phát triển tương lai

  1. Tích hợp tiêu chuẩn mở ISO 20022: Chuẩn hóa định dạng bản tin tài chính quốc tế cho các giao dịch tài khoản ảo xuyên biên giới.
  2. Smart Reconciliation với Machine Learning: Ứng dụng mô hình AI nhận diện và tự động xử lý các giao dịch ngoại lệ đối soát phức tạp.
  3. Mở rộng Open API Ecosystem: Đóng gói thư viện SDK đa ngôn ngữ giúp các doanh nghiệp dễ dàng nhúng hệ sinh thái tài khoản định danh vào phần mềm ERP (SAP, Oracle, MISA).

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

  • Sinh viên & Học viên chuyên ngành Hệ thống thông tin / FinTech: Tài liệu tham khảo chuẩn mực về quy trình phân tích thiết kế hệ thống ngân hàng giao dịch, từ mô hình hóa Use Case, sơ đồ hoạt động đến thiết kế kiến trúc phân cấp.
  • Kỹ sư phần mềm & Lập trình viên: Nắm bắt kiến trúc triển khai thực tế của mẫu hình Maker-Checker, kỹ thuật xử lý dữ liệu nhất quán trong hệ thống tài chính trên nền tảng .NET Core và PostgreSQL.
  • Doanh nghiệp & Ngân hàng: Giải pháp mẫu để tối ưu hóa chi phí vận hành, quản trị thanh khoản tập trung và gia tăng mức độ gắn kết của khách hàng doanh nghiệp B2B.
  • Nhà nghiên cứu: Bổ sung cơ sở dữ liệu thực nghiệm về giải pháp ứng dụng Virtual Account Management tại thị trường ngân hàng Việt Nam.

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

1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống VAM là gì?

Hệ thống yêu cầu máy chủ cài đặt môi trường .NET Runtime 6.0 trở lên, hệ quản trị cơ sở dữ liệu PostgreSQL 14+, Reverse Proxy (Nginx hoặc IIS) hỗ trợ HTTPS/TLS 1.3 và SMTP Server để gửi thông báo email giao dịch.

2. Hệ thống xử lý thế nào khi xảy ra xung đột giao dịch số dư?

Hệ thống sử dụng cơ chế khóa bi quan (Pessimistic Locking) kết hợp Transaction Isolation Level mức Read Committed hoặc Serializable trong PostgreSQL để đảm bảo tính toàn vẹn dữ liệu (ACID), ngăn chặn tuyệt đối tình trạng chi tiêu vượt số dư (Double Spending).

3. Hệ thống tích hợp với phần mềm kế toán/ERP hiện có của doanh nghiệp bằng cách nào?

VAM cung cấp hệ thống RESTful Open API chuẩn hóa kèm tài liệu Swagger. Doanh nghiệp có thể cấu hình Webhook nhận thông báo biến động số dư theo thời gian thực để tự động gạch nợ trên ERP nội bộ.

4. Quy trình vận hành và phân quyền Maker-Checker hoạt động ra sao?

Bất kỳ thay đổi nào liên quan đến cấu hình hệ thống, tạo tài khoản định danh mới hoặc thực hiện chuyển tiền đều phải được tạo bởi Giao dịch viên (Maker) ở trạng thái chờ duyệt (PENDING_APPROVAL). Chỉ khi Kiểm soát viên (Checker) có thẩm quyền xác thực và phê duyệt trên hệ thống thì dữ liệu mới chính thức có hiệu lực.

5. Lợi ích kinh tế lớn nhất khi thay thế DDA bằng VAM là gì?

Doanh nghiệp loại bỏ toàn bộ phí quản lý và duy trì hàng loạt tài khoản ngân hàng thực, cắt giảm 80% thời gian đối soát công nợ thủ công và tập trung thanh khoản tối đa về 01 tài khoản duy nhất để tối ưu hóa lợi suất tiền gửi qua đêm.


Kết luận

Đồ án tốt nghiệp "Nghiên cứu xây dựng hệ thống quản lý tài khoản định danh cho ngân hàng" của sinh viên Hoàng Thế Du đã giải quyết xuất sắc bài toán then chốt trong lĩnh vực Ngân hàng số và Quản trị thanh khoản doanh nghiệp. Thông qua việc phân tích chuyên sâu mô hình Virtual Account Management (VAM) chuẩn quốc tế, đồ án đã hiện thực hóa thành công một hệ thống phần mềm hoàn chỉnh, đáp ứng đầy đủ các tiêu chuẩn kỹ thuật nghiêm ngặt về tính toàn vẹn dữ liệu, quy trình kiểm soát kép Maker-Checker và khả năng mở rộng đa tầng.

Hệ thống không chỉ mang lại giá trị học thuật cao cho ngành Hệ thống thông tin mà còn mở ra tiềm năng thương mại hóa mạnh mẽ cho các ngân hàng và tổ chức tài chính tại Việt Nam trong tiến trình chuyển đổi số toàn diện.