Tạo mã VietQR thanh toán với SePay

Tạo mã VietQR động cho thanh toán chuyển khoản ngân hàng SePay: URL ảnh QR động kèm số tài khoản, số tiền, nội dung; nhúng QR vào website.

||

QR code VietQR là gì?

  • Ảnh QR Code chứa toàn bộ thông tin về ngân hàng, số tài khoản thụ hưởng, số tiền chuyển khoản, nội dung chuyển khoản.

  • Khi khách hàng dùng App ngân hàng để quét mã, ứng dụng sẽ tự điền toàn bộ thông tin chuyển khoản, rất tiện lợi.

  • Như vậy khi tích hợp QR Code, khách hàng sẽ không cần phải điền bằng tay các thông tin chuyển khoản. Trải nghiệm khách hàng sẽ tốt hơn, việc chuyển khoản thanh toán cũng nhanh hơn.

  • SePay cung cấp công cụ để giúp bạn tạo ảnh QR Code động tại qr.sepay.vn


LINK
https://qr.sepay.vn/img?acc=SO_TAI_KHOAN&bank=NGAN_HANG&amount=SO_TIEN&des=NOI_DUNG&template=TEMPLATE&download=DOWNLOAD&showinfo=SHOWINFO&fullacc=FULLACC&holder=CHU_TAI_KHOAN&store=CUA_HANG

Giải thích tham số

accstringrequired
Số tài khoản ngân hàng (hoặc số VA, tùy quy tắc của ngân hàng — xem mục dưới)
bankstringrequired
Ngân hàng — dùng giá trị short_name, alias, code hoặc bin trong danh sách tại banks.json (ví dụ Vietcombank; LPBank là alias của LienVietPostBank).
amountinteger
Số tiền chuyển khoản (VND). Bỏ trống để khách tự nhập khi quét.
desstring
Nội dung chuyển khoản. Một số ngân hàng yêu cầu chuỗi cố định trong des — xem mục Quy tắc bên dưới.
templatestring
Kiểu hiển thị ảnh QR. Để trống = ảnh QR chuẩn kèm logo VietQR; compact = bố cục gọn kèm logo NAPAS/VietQR, logo ngân hàng và logo SePay; qronly = chỉ ảnh QR, không kèm khung và logo; standee = bố cục standee in tại quầy điểm bán.
downloadboolean
Đặt download=true để trình duyệt tải ảnh QR về máy thay vì hiển thị inline.
showinfoboolean
Đặt true để hiển thị thông tin tài khoản kèm ảnh QR. Không áp dụng cho template=standee vì kiểu standee đã hiển thị sẵn thông tin.
fullaccboolean
Đặt true để hiển thị đầy đủ số tài khoản trên ảnh. Chỉ có tác dụng khi showinfo=true.
holderstring
Tên chủ tài khoản hiển thị trên ảnh (viết không dấu).
storestring
Tên cửa hàng hoặc doanh nghiệp hiển thị trên ảnh.

Bạn có thể xem thông tin các ngân hàng tại banks.json


Chọn kiểu hiển thị qua tham số template

Tham số template quyết định bố cục ảnh QR khi bạn nhúng vào website hoặc in tại điểm bán. Trang qr.sepay.vn cũng hiển thị các kiểu này để bạn xem trước và sao chép link nhanh.

Giá trịKiểu hiển thị
(bỏ trống)Ảnh QR chuẩn kèm logo VietQR.
compactBố cục gọn kèm logo NAPAS/VietQR, logo ngân hàng và logo SePay, phù hợp nhúng vào trang thanh toán.
qronlyChỉ ảnh QR, không kèm khung và logo.
standeeBố cục dành cho standee, in tại quầy điểm bán.

Các tham số showinfo, fullacc, holderstore giúp bạn hiển thị thêm thông tin chủ tài khoản và cửa hàng ngay trên ảnh QR. fullacc chỉ có tác dụng khi showinfo=true; riêng kiểu standee đã hiển thị sẵn thông tin nên không cần truyền showinfo. Tham số download buộc trình duyệt tải ảnh về máy thay vì mở trực tiếp.

Ví dụ link QR kiểu gọn hiển thị tên chủ tài khoản:

https://qr.sepay.vn/img?acc=1234567890&bank=Vietcombank&amount=100000&des=thanh%20toan%20DH001&template=compact&showinfo=true&holder=TIEM%20SACH%20HOAI%20NIEM

Quy tắc tạo VietQR theo ngân hàng mà SePay hỗ trợ

Quy tắc khác nhau giữa các ngân hàng: yêu cầu tài khoản ảo (VA), chuỗi bắt buộc trong nội dung chuyển khoản, và cách điền acc / des theo loại VA.

Yêu cầu tài khoản ảo (VA)

Một số ngân hàng bắt buộc dùng tài khoản ảo (VA) để khớp giao dịch tự động. Các ngân hàng còn lại có thể dùng VA hoặc tài khoản gốc tùy nhu cầu.

Ngân hàngCá nhânHộ kinh doanhDoanh nghiệp
OCBBắt buộcBắt buộcBắt buộc
KienLongBankBắt buộcBắt buộcBắt buộc
MSBBắt buộcBắt buộcBắt buộc
BIDVBắt buộcBắt buộcTùy chọn
Ngân hàng khácTùy chọnTùy chọnTùy chọn

Nội dung chuyển khoản

SEVQR — bắt buộc cho VietinBank

Với tài khoản VietinBank cá nhân và hộ kinh doanh, nội dung chuyển khoản (des) phải chứa chuỗi SEVQR. Thiếu chuỗi này, thông báo giao dịch không được đẩy về SePay.

TKP + mã VA — bắt buộc khi dùng VA theo nội dung chuyển khoản

Khi dùng VA theo nội dung chuyển khoản, nội dung phải chứa TKP + mã VA. Ví dụ: VA 001 thì nội dung phải có TKP001.

Mã thanh toán — tự động bóc tách

Thêm mã thanh toán vào nội dung để SePay tự động bóc tách giao dịch với đơn hàng của bạn. Cấu hình tiền tố mã thanh toán tại Cấu hình mã thanh toán.

Quy tắc tham số khởi tạo QR

Tham số accdes thay đổi tùy loại VA:

Loại VAaccdes
VA chính thứcSố VANội dung tùy ý
VA theo nội dung chuyển khoảnSố tài khoản gốcTKP + mã VA + nội dung
Không có VASố tài khoảnNội dung tùy ý

Ví dụ sử dụng

Dữ liệu mẫu

Mọi số tài khoản và số VA trong các ví dụ dưới đây là dữ liệu mẫu, không tồn tại thật. Thay bằng số tài khoản hoặc số VA thực của bạn khi triển khai.

Ví dụ 1: OCB cá nhân — VA chính thức bắt buộc

OCB bắt buộc dùng VA cho mọi loại tài khoản.

https://qr.sepay.vn/img?acc=VQRQ12345678&bank=OCB&amount=100000&des=DH001%20thanh%20toan
Tham sốGiá trịÝ nghĩa
accVQRQ12345678Số VA OCB (mẫu)
bankOCBNgân hàng OCB
amount100000100.000 VND
desDH001 thanh toanMã đơn hàng + nội dung

Ví dụ 2: VietinBank cá nhân — bắt buộc SEVQR trong nội dung

VietinBank cá nhân và hộ kinh doanh bắt buộc nội dung chứa chuỗi SEVQR.

https://qr.sepay.vn/img?acc=0123456789&bank=VietinBank&amount=100000&des=SEVQR%20DH001
Tham sốGiá trịÝ nghĩa
acc0123456789Số tài khoản VietinBank (mẫu)
bankVietinBankNgân hàng VietinBank
amount100000100.000 VND
desSEVQR DH001Chuỗi bắt buộc SEVQR + mã đơn hàng

Ví dụ 3: TPBank cá nhân — VA theo nội dung chuyển khoản (TKP + mã VA)

Khi dùng VA theo nội dung chuyển khoản, acc là số tài khoản gốc, des ghép TKP + mã VA + nội dung.

https://qr.sepay.vn/img?acc=0987654321&bank=TPBank&amount=200000&des=TKP001%20DH001
Tham sốGiá trịÝ nghĩa
acc0987654321Số tài khoản TPBank (mẫu)
bankTPBankNgân hàng TPBank
amount200000200.000 VND
desTKP001 DH001TKP + mã VA 001 + mã đơn hàng

Ví dụ 4: Vietcombank cá nhân — không bắt buộc VA, đầy đủ thông tin

Vietcombank không bắt buộc VA. Truyền đầy đủ amountdes để khách quét là thanh toán ngay.

https://qr.sepay.vn/img?acc=9988776655&bank=Vietcombank&amount=100000&des=thanh%20toan%20don%20hang
Tham sốGiá trịÝ nghĩa
acc9988776655Số tài khoản Vietcombank (mẫu)
bankVietcombankNgân hàng Vietcombank
amount100000100.000 VND
desthanh toan don hangNội dung tự do

Ví dụ 5: Vietcombank — chỉ có số tài khoản và ngân hàng

Bỏ qua amountdes để khách tự điền số tiền và nội dung khi quét.

https://qr.sepay.vn/img?acc=9988776655&bank=Vietcombank
Tham sốGiá trịÝ nghĩa
acc9988776655Số tài khoản Vietcombank (mẫu)
bankVietcombankNgân hàng Vietcombank

Nhúng mã QR Code vào website

Bạn nhúng ảnh QR động bằng thẻ <img>, dùng link QR ở mục Cấu trúc link nhúng. Mọi tham số trong bảng trên đều dùng được khi nhúng, ví dụ thêm template=compact để hiển thị gọn trên trang thanh toán:

HTML
1
<img src='https://qr.sepay.vn/img?acc=9988776655&bank=Vietcombank&amount=100000&des=thanh%20toan%20don%20hang&template=compact' alt='Mã QR thanh toán SePay' />