Đọc mã QR API
Đọc mã QR trong ảnh PNG hoặc JPEG; mã VietQR được giải mã thành ngân hàng, số tài khoản, số tiền và nội dung chuyển khoản.
API đọc QR tìm và giải mã mã QR trong ảnh tải lên (PNG hoặc JPEG, gửi qua multipart file, body thô hoặc file_base64). API xử lý được ảnh chụp, ảnh màn hình, mã đảo màu và nền trong suốt, trả về nội dung, loại mã (URL, Wi-Fi, vCard, email, số điện thoại, OTP, mã thanh toán EMVCo hay văn bản), phiên bản QR và vị trí mã trong ảnh.
Mã QR thanh toán Việt Nam được giải mã thêm: mã VietQR / NAPAS 247 cho biết ngân hàng (tên, mã, BIN), số tài khoản hoặc số thẻ, số tiền, nội dung chuyển khoản và mã CRC có hợp lệ không, giúp kiểm tra mã thanh toán trước khi hiển thị hay chuyển tiền. Mã Wi-Fi cho biết tên mạng, kiểu bảo mật và mật khẩu.
Ảnh lớn được thu nhỏ để xử lý nhanh và đọc lại ở kích thước gốc khi cần. Ảnh chỉ được xử lý trong bộ nhớ, không lưu lại.
Tham số
| Tên | Vị trí | Kiểu | Bắt buộc | Mặc định | |
|---|---|---|---|---|---|
file | body | file | có | Ảnh PNG hoặc JPEG (multipart, body thô hoặc file_base64). |
Ví dụ
curl -X POST "https://apibox.io.vn/v1/qr-decode" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "0=@./my-file"const form = new FormData();
form.append('0', fileInput.files[0]);
const res = await fetch('https://apibox.io.vn/v1/qr-decode', {
method: 'POST',
headers: { Authorization: 'Bearer YOUR_API_KEY' },
body: form,
});
console.log(await res.json());import requests
res = requests.post(
"https://apibox.io.vn/v1/qr-decode",
headers={"Authorization": "Bearer YOUR_API_KEY"},
files={"0": open("my-file", "rb")},
timeout=30,
)
print(res.json())<?php
$ch = curl_init('https://apibox.io.vn/v1/qr-decode');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
CURLOPT_POSTFIELDS => ['0' => new CURLFile('my-file')],
]);
$response = curl_exec($ch);
print_r(json_decode($response, true));Kết quả trả về
{
"found": true,
"data": "00020101021238540010A00000072701240006970436011001234567890208QRIBFTTA530370454061500005802VN62260822Thanh toan don ABX12346304FFCC",
"type": "vietqr",
"version": 5,
"image": {
"format": "png",
"width": 360,
"height": 360
},
"vietqr": {
"valid": true,
"crc_valid": true,
"bank": {
"code": "VCB",
"bin": "970436",
"short_name": "Vietcombank",
"name": "Ngân hàng TMCP Ngoại thương Việt Nam"
},
"account": "0123456789",
"amount": 150000,
"content": "Thanh toan don ABX1234",
"…": "…"
}
}
Ứng dụng
- Đọc mã VietQR người bán tải lên và kiểm tra thông tin ngân hàng
- Nhập mã QR Wi-Fi, danh thiếp vào ứng dụng
- Kiểm duyệt ảnh có chứa mã QR (liên kết)
- Kiểm thử mã QR được sinh ra trong CI
Hỏi đáp
Ảnh có nhiều mã QR thì sao?
API trả về mã rõ nhất. Hãy cắt ảnh để đọc một mã cụ thể.
Vì sao không tìm thấy mã QR?
Mã quá nhỏ, mờ hoặc bị cắt. Dùng ảnh nét, mã chiếm phần lớn khung hình và còn viền trắng xung quanh.
Hỗ trợ định dạng nào?
PNG và JPEG trong giới hạn dung lượng tệp của gói. Hãy chuyển HEIC, WebP sang trước.
API liên quan
Tạo mã QR
Tạo mã QR dạng PNG hoặc SVG chỉ với một request GET: link, văn bản, WiFi, danh thiếp vCard, e-mail, SMS, số điện thoại, toạ độ. Tuỳ chỉnh màu, kích thước.
|||Tạo mã vạch
Tạo mã vạch Code 128 cho tem nhãn, mã SKU, vận đơn chỉ với một request. Xuất SVG kèm dòng chữ hoặc PNG, tuỳ chỉnh chiều cao, độ rộng và màu sắc.
▭Ảnh placeholder
Lấy ảnh giữ chỗ đúng kích thước cho mockup và test: /v1/placeholder/600x400.png. Xuất SVG với chữ và màu tuỳ chỉnh, hoặc PNG một màu.