Skip to main content
Version: 1.1.0 (Latest)

Luồng duyệt Maker/Checker

Luồng duyệt Maker/Checker áp dụng cho Ngân hàng BIDV yêu cầu quy trình bảo mật cao và duyệt lệnh nhiều cấp. Trong luồng này, lệnh chi hộ có thể được lưu nháp (INIT) hoặc đẩy duyệt trực tiếp (REQUEST_APPROVAL), sau đó bắt buộc phải thông qua bước xác thực mã SmartOTP trên thiết bị.

Đặc điểm của luồng

  • Lưu nháp (INIT): Giao dịch được lưu vào hệ thống, chưa đẩy sang ngân hàng. Lệnh ở trạng thái này có thể bị xóa bằng API Xóa lệnh chi hộ, hoặc có thể được duyệt sau đó bằng API Đẩy duyệt lệnh chi hộ đã lưu.
  • Đẩy duyệt (REQUEST_APPROVAL): Giao dịch được đẩy sang hệ thống ngân hàng ngay lập tức để lấy thông tin xác thực (mã QR/SmartOTP). Lệnh ở trạng thái này không thể xóa và phải được xác thực bằng API Xác thực lệnh chi.
  • Yêu cầu xác thực bảo mật 2 lớp qua mã SmartOTP.

Sơ đồ luồng (Sequence Diagram)

Dưới đây là sơ đồ mô tả cách xử lý lệnh chi theo mô hình Maker/Checker:

Luồng duyệt Maker/Checker
← Vuốt ngang để xem thêm →

Các API tham gia trong luồng

Để tích hợp hoàn chỉnh luồng Maker/Checker, bạn sẽ thao tác với các API sau:

  1. Lấy đường dẫn xác thực:
    • Dùng để lấy link đăng nhập tài khoản BIDV. Bắt buộc phải thực hiện bước này (cho cả Maker và Checker) trước khi có thể gọi các API tiếp theo.
  2. Khởi tạo lệnh chi hộ:
    • Dùng để Lưu nháp (action="INIT") hoặc đẩy duyệt ngay (action="REQUEST_APPROVAL").
  3. Xóa lệnh chi:
    • Chỉ dùng được đối với các giao dịch đang ở trạng thái lưu nháp (INIT).
  4. Đẩy duyệt lệnh chi hộ đã lưu:
    • Dùng để chuyển trạng thái lệnh nháp (INIT) sang trạng thái chờ duyệt (REQUEST_APPROVAL).
  5. Xác nhận đẩy duyệt lệnh chi:
    • Là bước cuối cùng để hoàn tất giao dịch. Bắt buộc phải truyền mã SmartOTP từ App Chi hộ BIDV vào tham số otp để duyệt lệnh.
  6. Duyệt lệnh chi hộ:
    • Dùng cho role Checker để khởi tạo quá trình phê duyệt lệnh chi. API sẽ trả về dữ liệu qrData để Checker quét bằng App Chi hộ BIDV và lấy mã OTP.
  7. Xác nhận duyệt lệnh chi hộ:
    • Dùng để Checker xác nhận phê duyệt, bắt buộc truyền mã OTP thu được từ bước trên để hoàn tất việc duyệt lệnh.
  8. Từ chối lệnh chi:
    • Dùng khi Checker muốn từ chối lệnh chi hộ. Lệnh sẽ bị hủy bỏ ngay lập tức và không yêu cầu xác thực OTP.
  9. Truy vấn giao dịch:
    • Dùng cho Maker/Checker để kiểm tra và theo dõi trạng thái các lệnh chi hộ (chờ duyệt, đã duyệt, đã hạch toán, bị từ chối...) hoặc lấy danh sách các giao dịch con trong Lô theo trạng thái hợp lệ hoặc không hợp lệ.

Các lưu ý đặc thù của luồng Maker/Checker

💡 Đặc thù xử lý theo Loại nghiệp vụ (actionType)

  • Đối với Thanh toán Lương (SALARY)Thanh toán Hóa đơn (BILL_PAYMENT): Lệnh chi hộ luôn được xử lý theo Lô (Batch) và chia sẻ chung một mã ID. Các thao tác khởi tạo, đẩy duyệt (của Maker) hay phê duyệt, từ chối (của Checker) sẽ tác động lên toàn bộ lô giao dịch.
  • Đối với Chuyển tiền trong nước (INTERNAL_TRANSFER): Lệnh chi hộ có thể xử lý dưới dạng Đơn hoặc Lô. Điểm đặc biệt của giao dịch Lô là các bản ghi bên trong hoạt động hoàn toàn độc lập với mã ID riêng biệt. Nhờ đó, hệ thống hỗ trợ cơ chế xử lý linh hoạt từng phần: Maker có thể chọn đẩy duyệt hoặc xóa một phần các giao dịch cụ thể; tương tự, Checker cũng có quyền phê duyệt hoặc từ chối một phần danh sách các giao dịch mà Maker đã đẩy lên thay vì phải xử lý toàn bộ lô.

💡 Đặc thù thời gian hạch toán theo Phương thức chuyển tiền

  • Chuyển tiền nhanh NAPAS 24/7: Ngay sau khi Checker thực hiện phê duyệt lệnh thành công, giao dịch sẽ được hệ thống ngân hàng BIDV hạch toán ngay lập tức.
  • Chuyển tiền Nội bộ BIDVChuyển tiền thường Liên ngân hàng: Sau khi Checker phê duyệt, giao dịch sẽ chuyển sang trạng thái chờ xử lý (Pending) và cần một khoảng thời gian nhất định để BIDV tiến hành hạch toán. Bạn cần chủ động gọi API Truy vấn giao dịch để cập nhật trạng thái cuối cùng.