Chuyển tới nội dung chính

Tạo mã QRPay/QRGlobal

Quy trình​

  • MERCHANT gọi API Tạo mã QRPay/QRGlobal tới hệ thống Baokim.
  • Baokim xác thực yêu cầu (JWT, chữ ký số), tra cứu thông tin SUB MERCHANT để lấy các thông tin định danh điểm chấp nhận thanh toán (card_acceptor_id, mã MCC...).
  • Hệ thống Baokim sinh chuỗi QR theo chuẩn VietQR/EMVCo và khởi tạo đơn hàng.
  • Baokim trả kết quả (qr_string, qr_url) cho MERCHANT để hiển thị cho người thanh toán.
  • Cùng một mã QR chấp nhận cả thanh toán nội địa (QRPay) và thanh toán xuyên biên giới (QRGlobal); loại giao dịch được phân biệt qua trường qr_type trong Webhook thông báo giao dịch.

Thông tin API​

Method: POST

URL: /b2b/core/api/ext/mm/qr/create

Bảo mật: Bearer JWT (Authorization header)

Request​

Bảng tham số chính​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1request_idString(100)✅ID duy nhất ứng với mỗi Request từ MERCHANT sang Baokim
2request_timeString(20)✅Thời gian gửi Request. Format: YYYY-MM-DD H:i:s
3master_merchant_codeString(50)✅Mã định danh duy nhất cho MASTER MERCHANT
4sub_merchant_codeString(50)✅Mã định danh duy nhất cho SUB MERCHANT
5mrc_order_idString(50)✅Mã đơn hàng của Merchant, duy nhất theo từng SUB MERCHANT. Với QR tĩnh (acc_type = 2): đóng vai trò mã định danh của mã QR
6acc_typeInteger✅Loại mã QR: 1 = Động, 2 = Tĩnh
7amountInteger⚠️Số tiền thanh toán (VND, số nguyên).
Bắt buộc khi acc_type = 1 (QR động), cố định theo đơn hàng.
QR tĩnh: không truyền (NULL), người thanh toán tự nhập số tiền khi quét
8memoString(25)✅Nội dung thanh toán hiển thị khi quét QR (tối đa 25 ký tự, không dấu)
9post_codeString(10)✅Mã bưu điện của điểm chấp nhận thanh toán
10store_codeString❌Mã cửa hàng
11branch_codeString❌Mã chi nhánh
12staff_codeString❌Mã nhân viên

Ví dụ Request​

{
"request_id": "MERCHANT050015588QR001",
"request_time": "2026-06-10 14:41:00",
"master_merchant_code": "MASTERMERCHANT",
"sub_merchant_code": "SUBMERCHANT",
"mrc_order_id": "ORD_123456789",
"acc_type": 1,
"amount": 200000,
"memo": "Thanh toan don hang",
"post_code": "100000",
"store_code": null,
"branch_code": null,
"staff_code": null
}

Response​

Bảng tham số chính​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1codeNumber(3)✅Mã lỗi của Baokim
2messageString(200)✅Thông báo mã lỗi của Baokim
3dataObject✅Dữ liệu Baokim trả về

Thông tin data​

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1order_idInteger✅Mã đơn hàng của Baokim
2mrc_order_idString✅Mã đơn hàng Merchant
3acc_typeInteger✅Loại mã QR: 1 = Động, 2 = Tĩnh
4amountInteger❌Số tiền thanh toán. NULL với QR tĩnh
5qr_stringText✅Chuỗi QR theo chuẩn EMVCo, Merchant dùng để tự sinh ảnh QR hiển thị
6qr_urlString✅Đường dẫn ảnh mã QR
7created_atDatetime✅Thời gian tạo đơn hàng
8updated_atDatetime✅Thời gian cập nhật đơn hàng

Ví dụ Response​

{
"code": 100,
"message": "Thành công",
"data": {
"order_id": 1870436,
"mrc_order_id": "ORD_123456789",
"acc_type": 1,
"amount": 200000,
"qr_string": "00020101021238550010A0000007270123000697040300000000000020386304C3A4",
"qr_url": "https://sandbox.baokim.vn/qr/BK1234567890.png",
"created_at": "2026-06-10 14:41:05",
"updated_at": "2026-06-10 14:41:05"
}
}

Bảng mã lỗi​

Mã lỗiMô tả
100Thành công
11Thất bại
101Lỗi hệ thống Baokim
103Lỗi xác thực chữ ký
104Lỗi xác thực JWT
422Dữ liệu không hợp lệ (sai định dạng, thiếu trường bắt buộc)
504Timeout
707Mã Order ID đã tồn tại
709Master Merchant không thể tự tạo giao dịch
710Sub Merchant không tồn tại
711Master Merchant không tồn tại
712Sub Merchant đang không hoạt động
713Master Merchant đang không hoạt động
714Sub Merchant không thuộc Master Merchant
717Mã dịch vụ không tồn tại
718Mã dịch vụ không hoạt động
720Token không hợp lệ
724Không tìm thấy cấu hình phí