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_typeIntegerLoạ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_codeStringMã cửa hàng
11branch_codeStringMã chi nhánh
12staff_codeStringMã 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
3dataObjectDữ liệu Baokim trả về

Thông tin data

STTTên trườngKiểu dữ liệuBắt buộcMô tả
1order_idIntegerMã đơn hàng của Baokim
2mrc_order_idStringMã đơn hàng Merchant
3acc_typeIntegerLoại mã QR: 1 = Động, 2 = Tĩnh
4amountIntegerSố tiền thanh toán. NULL với QR tĩnh
5qr_stringTextChuỗ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_atDatetimeThời gian tạo đơn hàng
8updated_atDatetimeThờ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í