Bạn cần một mã QR chuyển khoản nhanh, rõ ràng, và không phụ thuộc vào một dịch vụ bên ngoài? VietQR Core là công cụ mình làm cho đúng nhu cầu đó.

Giao diện web VietQR Core

Vấn đề

Việc tạo mã QR chuyển khoản nghe thì đơn giản, nhưng thực tế lại hay vướng ở chỗ phụ thuộc: cần tạo nhanh cho khách chuyển tiền, hoặc tích hợp vào một hệ thống nhỏ, mà mọi thứ lại đi qua một dịch vụ bên ngoài. Khi dịch vụ đó thay đổi hoặc ngừng hoạt động, việc nhỏ lại thành việc phải làm lại.

Một mốc thời gian đáng lưu ý: dịch vụ VietQR API Generate sẽ ngừng hoạt động từ ngày 01/01/2027. Mình nêu mốc này không phải để gây hoang mang, mà để nói rõ lý do mình xây dựng một phương án tự host — khi công cụ chạy trên máy chủ của chính bạn, bạn sẽ chủ động hơn khi dịch vụ bên ngoài thay đổi.

Giải pháp: VietQR Core là gì?

VietQR Core là công cụ tự host để tạo mã QR chuyển khoản ngân hàng Việt Nam theo chuẩn EMVCo/NAPAS 247.

Đây là dự án cá nhân do mình phát triển, không liên kết với VietQR, NAPAS hay ngân hàng nào.

Dùng thử như thế nào?

Giao diện web tiếng Việt, các bước rất gọn:

  1. Chọn ngân hàng thụ hưởng.
  2. Nhập số tài khoản, chủ tài khoản, số tiền và nội dung.
  3. Xem trước mã QR.
  4. Tải PNG hoặc SVG, in, hoặc đổi màu thẻ.

Điểm chính

  • Hỗ trợ 63 ngân hàng, tìm theo mã, BIN, mã VietQR, tên viết tắt hoặc tên đầy đủ.
  • Giao diện web tiếng Việt, xem trước trước khi tải.
  • Tải PNG/SVG, in, đổi màu thẻ ngay trên giao diện.
  • API JSON đầy đủ cho lập trình viên muốn tích hợp.
  • Tự host, một binary duy nhất, không cần database.

Giới hạn cần biết

Hạng mụcGiới hạn
Số tài khoản4–19 ký tự
Số tiềnTối đa 999.999.999.999 VND
Nội dung chuyển khoảnTối đa 50 ký tự

API cho lập trình viên

Phương thứcEndpointDùng để
POST/api/qrTạo QR và trả về thông tin mã QR
GET/api/qr.pngLấy ảnh QR dạng PNG
GET/api/qr.svgLấy ảnh QR dạng SVG
GET/api/decodeGiải mã một payload VietQR
GET/api/banksLấy danh sách ngân hàng
GET/healthzKiểm tra trạng thái dịch vụ

Ví dụ tạo QR bằng curl:

curl -s https://vietqr.v4u.vn/api/qr \
  -H 'Content-Type: application/json' \
  -d '{"bank": "VIETCOMBANK", "account": "9876543210", "accountName": "NGUYEN VAN A", "amount": 100000, "message": "Thanh toan don hang"}'

Tự host: vì sao nên cân nhắc?

  • Viết bằng Go, chỉ một binary duy nhất.
  • Nhúng sẵn giao diện, font và logo, không cần database.
  • Khi tự host, công cụ không gọi API bên ngoài và không lưu giao dịch.
  • Phù hợp cho nhu cầu tạo QR nhanh, hoặc tích hợp nội bộ vào hệ thống của bạn.

Demo và mã nguồn

Đối tượng mình hướng tới là lập trình viên, chủ shop, kế toán và freelancer cần tạo QR chuyển khoản nhanh hoặc tích hợp vào hệ thống.

Góp ý

Nếu bạn dùng thử và thấy chỗ nào chưa hợp lý, cần thêm hay cần sửa, cứ góp ý giúp mình để mình hoàn thiện thêm. Mình đọc hết góp ý và ưu tiên những điểm thực sự giúp công cụ dễ dùng và đáng tin hơn trong công việc hàng ngày.

#VietQR #QRChuyenKhoan #Golang #TuHost #API