Sinh mã thanh toán, tạo deeplink tự điền, giải mã ảnh QR và phân tích chuỗi TLV. Tất cả trong một playground.
Thông tin thanh toán
Xem trước mã QR
…
Điều hướng ứng dụng ngân hàng (Bank Deeplink)
Tạo liên kết mở trực tiếp ứng dụng ngân hàng di động, tự động điền sẵn số tài khoản, số tiền và nội dung chuyển khoản theo chuẩn VietQR.
Cấu hình tham số kiểm thử
Kết quả điều hướng
Quét mã QR bằng camera điện thoại để kiểm thử mở ứng dụng ngân hàng.
Liên kết sẽ tự động kích hoạt ứng dụng ngân hàng nếu mở trên thiết bị di động, hoặc hiển thị trang thanh toán nếu mở trên máy tính.
Danh sách Ứng dụng hỗ trợ Deeplink
Toàn bộ 44+ ngân hàng & ví điện tử đều có Deeplink mở trực tiếp ứng dụng trên iOS & Android.
7 Ứng dụng hỗ trợ TỰ ĐỘNG ĐIỀN (Autofill STK + Tiền + Nội dung)
Xem 37+ Ứng dụng ngân hàng khác (Hỗ trợ Deeplink mở trực tiếp ứng dụng) ▼
Tất cả các ngân hàng dưới đây đều hỗ trợ Deeplink. Khi người dùng bấm liên kết, hệ thống sẽ tự động kích hoạt mở app ngân hàng trên điện thoại (dẫn vào ứng dụng hoặc màn hình quét QR/chuyển tiền). Bạn có thể truyền bất kỳ mã appCode nào dưới đây khi gọi API:
ICB
VCB
TCB
ACB
VPB
VIB
VBA
STB
SHB
HDB
LPB
MSB
SEAB
EIB
ABB
PVCB
VIETBANK
VCCB
NAB
NCB
SHBVN
WVN
KLB
BVB
VNPAY
Cài đặt gói NuGet chính thức
Official .NETCài đặt 2 gói thư viện chuẩn vào dự án của bạn để xử lý sinh mã VietQR và khởi tạo liên kết Deeplink
Khởi tạo dữ liệu EMVCo, tính CRC16 và render hình ảnh thẻ thanh toán.
Client SDK tạo phiên điều hướng trực tiếp vào ứng dụng ngân hàng di động.
dotnet add package VietQR.Deeplink.Client
Sử dụng C# (.NET SDK) trong Controller / Service
Tích hợp chỉ với 3 bước đơn giản thông qua cơ chế Dependency Injection và Fluent API của VietQR.Core
Gọi builder.Services.AddVietQrDeeplink() trong file Program.cs.
Khởi tạo đối tượng new VietQr() và cấu hình số tài khoản, số tiền, nội dung.
Gọi extension method qr.ToDeeplinkUrlAsync(...) và trả về URL cho ứng dụng.
// 1. Đăng ký dịch vụ trong Program.cs: builder.Services.AddVietQrDeeplink(); // 2. Tiêm IVietQrDeeplinkClient vào Controller hoặc Service: using VietQR.Core; using VietQR.Deeplink.Client; public class CheckoutController : ControllerBase { private readonly IVietQrDeeplinkClient _deeplinkClient; public CheckoutController(IVietQrDeeplinkClient deeplinkClient) { _deeplinkClient = deeplinkClient; } [HttpPost("create-payment")] public async Task<IActionResult> CreatePayment() { // Tạo mã VietQR chuẩn NAPAS247 bằng VietQR.Core (NuGet) var qr = new VietQr() .SetBeneficiaryOrganization("970418", "1241678900", VietQrServiceType.Account) .SetTransactionAmount("50000") .SetAdditionalData(purpose: "cam on ban"); // Tạo link Deeplink mở ứng dụng MBBank (hoặc OCB, BIDV, TPB, MOMO, ZALOPAY...) var intent = await qr.ToDeeplinkUrlAsync(_deeplinkClient, "MB"); if (intent is null) return BadRequest("Không tạo được liên kết điều hướng."); return Ok(new { url = intent.Url, expiresIn = intent.ExpiresInSeconds }); } }
API Lấy danh sách ứng dụng & kiểm tra Autofill
Endpoint lấy toàn bộ danh mục 44+ ứng dụng ngân hàng / ví điện tử được hỗ trợ, kèm mã appCode, logo, và cờ supportsAutofill. Dùng để render dropdown chọn ngân hàng hoặc lọc các app tự điền STK.
Gọi bằng cURL:
curl -X GET "https://vietqr.hoangtuan.net/api/v1/vietqr-core/deeplink/apps"
| Trường dữ liệu | Kiểu | Mô tả |
|---|---|---|
| appCode | string | Mã định danh app ngân hàng/ví (VD: MB, BIDV, OCB...). |
| bin | string? | Mã BIN 6 chữ số chuẩn NAPAS (null đối với ví điện tử như VNPAY, ShopeePay). |
| shortName | string | Tên viết tắt của ngân hàng/ví (VD: MBBank, BIDV, Vietcombank). |
| appName | string | Tên hiển thị đầy đủ của ứng dụng trên App Store / CH Play. |
| logo | string | Đường dẫn logo ứng dụng (PNG). |
| supportsAutofill | boolean | true: Deeplink mở app + Tự động điền STK, Số tiền và Nội dung; false: Deeplink mở trực tiếp app ngân hàng trên điện thoại (dẫn vào app hoặc màn hình quét QR). |
| supportsIos | boolean | true nếu ứng dụng hỗ trợ điều hướng trên thiết bị iOS (iPhone/iPad). |
| supportsAndroid | boolean | true nếu ứng dụng hỗ trợ điều hướng trên thiết bị Android. |
{
"code": "00",
"desc": "success",
"data": [
{
"appCode": "MB",
"bin": "970418",
"shortName": "MBBank",
"appName": "MB Bank",
"logo": "https://vietqr.hoangtuan.net/icons/mb.png",
"supportsAutofill": true,
"supportsIos": true,
"supportsAndroid": true
},
{
"appCode": "BIDV",
"bin": "970418",
"shortName": "BIDV",
"appName": "BIDV SmartBanking",
"logo": "https://vietqr.hoangtuan.net/icons/bidv.png",
"supportsAutofill": true,
"supportsIos": true,
"supportsAndroid": true
},
{
"appCode": "VCB",
"bin": "970436",
"shortName": "Vietcombank",
"appName": "VCB Digibank",
"logo": "https://vietqr.hoangtuan.net/icons/vcb.png",
"supportsAutofill": false,
"supportsIos": true,
"supportsAndroid": true
}
]
}
item.supportsAutofill === true.
API Khởi tạo phiên điều hướng Deeplink
Áp dụng cho mọi ứng dụng không dùng .NET (Node.js, Python, PHP, Java, Go, Ruby...) hoặc các frontend SPA/Mobile gọi trực tiếp API.
| Trường dữ liệu | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
| appCode | string | Có | Mã app ngân hàng ưu tiên mở: MB, BIDV, OCB, TPB, CAKE, MOMO, ZALOPAY, VCB... (Lấy từ API /deeplink/apps ở trên). |
| qrCode | string | Có | Chuỗi dữ liệu VietQR EMVCo đầy đủ với mã kiểm tra CRC16 hợp lệ (bắt đầu bằng 000201...). |
{
"code": "00",
"desc": "Thành công",
"data": {
"url": "https://vietqr.hoangtuan.net/p/8f1e2d3c",
"expiresInSeconds": 300
}
}
Mã nguồn mẫu gọi API đa ngôn ngữ
Chọn ngôn ngữ bạn đang dùng để xem cú pháp gọi API tạo intent:
curl -X POST "https://vietqr.hoangtuan.net/api/v1/vietqr-core/deeplink/intents" \ -H "Content-Type: application/json" \ -d '{ "appCode": "BIDV", "qrCode": "00020101021238540010A00000072701240006970418011012416789000208QRIBFTTA53037045405500005802VN5914HOANG TUAN ANH62140810cam on ban6304065F" }'
Giải mã mã QR từ hình ảnh
Tải lên tệp ảnh, kéo thả hoặc dán ảnh chụp màn hình (Ctrl/Cmd + V) để bóc tách dữ liệu.
Kéo thả ảnh vào khu vực này, hoặc bấm để chọn file
Định dạng hỗ trợ: PNG, JPEG, WebP, BMP
Phân tích chuỗi EMVCo TLV
Dán chuỗi thanh toán VietQR bắt đầu bằng mã 000201... để phân tách cấu trúc các Tag dữ liệu.
Danh mục API Endpoints
Các endpoint chuẩn RESTful phục vụ sinh mã, kết xuất đồ họa và phân giải Deeplink tại đường dẫn gốc /api/v1/vietqr-core.
| Method | Endpoint | Chức năng | Kiểu trả về |
|---|---|---|---|
| GET | /generate | Sinh chuỗi EMVCo và chuỗi Base64 Data URL | JSON |
| POST | /generate | Như GET, truyền qua request body (hỗ trợ logo tùy biến) | JSON |
| GET | /image | Trả về trực tiếp luồng binary hình ảnh (PNG, WebP, SVG) | Binary |
| POST | /deeplink/intents | Khởi tạo liên kết mở ứng dụng ngân hàng có thời hạn | JSON |
| GET | /deeplink/apps | Lấy danh mục các ứng dụng hỗ trợ điều hướng Deeplink | JSON |
| POST | /decode | Giải mã thông tin giao dịch từ file ảnh tải lên | JSON |
| POST | /parse | Phân tách cấu trúc các Tag dữ liệu từ chuỗi EMVCo | JSON |
| GET | /banks | Danh mục 76+ ngân hàng thành viên NAPAS247 | JSON |
| GET | /banks/{binOrCode} | Tra cứu 1 ngân hàng theo BIN hoặc mã Code (VD: 970418, MB) | JSON |
Quy ước mã phản hồi: 00 Thành công · 01 Thiếu tham số · 02 Số tiền không hợp lệ · 03 Số tài khoản / BIN không đúng · 04 Không tìm thấy ngân hàng · 05 Sai template · 06 Lỗi đọc ảnh · 07 Sai chuẩn chuỗi / cổng lỗi · 99 Lỗi hệ thống.
Ví dụ nhanh
# 1. Sinh chuỗi và ảnh thẻ:
curl "https://vietqr.hoangtuan.net/api/v1/vietqr-core/generate?bankBin=970418&accountNo=1241678900&amount=50000&description=donate"
# 2. Tạo link Deeplink mở app ngân hàng tự điền:
curl -X POST "https://vietqr.hoangtuan.net/api/v1/vietqr-core/deeplink/intents" \
-H "Content-Type: application/json" \
-d '{"appCode":"BIDV","qrCode":"00020101021238540010A00000072701240006970418011012416789000208QRIBFTTA53037045405500005802VN5914HOANG TUAN ANH62140810cam on ban6304065F"}'
# 3. Nhúng ảnh trực tiếp vào trang web:
<img src="https://vietqr.hoangtuan.net/api/v1/vietqr-core/image?bankBin=970418&accountNo=1241678900&amount=50000&description=donate">