Đọc mã vạch API

Đọc mọi mã vạch 1D / 2D trong ảnh PNG, JPEG: EAN-13 / 8, UPC, Code 128 / 39 / 93, ITF, QR, DataMatrix, PDF417, Aztec, kèm vị trí và quốc gia GS1.

POSThttps://apibox.io.vn/v1/barcode-read

Tải lên ảnh chụp hoặc ảnh quét, API trả về mọi mã vạch tìm thấy cùng định dạng, nội dung, toạ độ các góc và hướng xoay. Mã tuyến tính: EAN-13, EAN-8, UPC-A, UPC-E, ISBN, Code 128 (vận đơn), Code 39, Code 93, Codabar, ITF / ITF-14 và GS1 DataBar. Mã ma trận: QR, Micro QR, rMQR, DataMatrix (hộp thuốc, linh kiện), PDF417 (vé, giấy tờ), Aztec và MaxiCode. Mã bị xoay, lật gương hoặc in sáng trên nền tối đều được thử tự động; formats=ean13,code128 giới hạn loại mã cần tìm (nhanh hơn, ít nhận nhầm) và max giới hạn số mã.

Mã hàng hoá có kèm GTIN-14 và quốc gia theo tiền tố GS1 (893 = Việt Nam), cùng bảng với /v1/gtin-check. Mã QR được phân loại (URL, Wi-Fi, vCard…) và mã thanh toán VietQR được giải ra ngân hàng, số tài khoản, số tiền. Nội dung nhị phân trả về dạng base64.

Việc giải mã dùng zxing-cpp biên dịch sang WebAssembly (zxing-wasm, giấy phép MIT / Apache-2.0) chạy ngay trên máy chủ của chúng tôi: ảnh không gửi cho bên thứ ba và không được lưu. Ảnh lớn hơn 2400 px được thu nhỏ trước; tối đa 30 megapixel trong giới hạn dung lượng tệp của gói. Ảnh nét, đủ sáng, mỗi vạch rộng khoảng 2 px trở lên cho kết quả tốt nhất.

Tham số

TênVị tríKiểuBắt buộcMặc định
filebodyfilecóẢnh PNG hoặc JPEG (multipart, body thô hoặc file_base64).
formatsquery|bodystringkhôngCác loại mã cần tìm, cách nhau bởi dấu phẩy: ean13, ean8, upca, upce, code128, code39, code93, codabar, itf, databar, qr, microqr, datamatrix, pdf417, aztec, maxicode, hoặc linear, matrix, retail. Mặc định: tất cả.
maxquery|bodynumberkhông20Số mã tối đa trả về (1–50).
fastquery|bodybooleankhôngfalseBỏ bước dò kỹ (chậm hơn); hợp với ảnh mã vạch sạch do máy tạo.

Ví dụ

curl -X POST "https://apibox.io.vn/v1/barcode-read" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "0=@./my-file"

Kết quả trả về

{
  "found": true,
  "count": 1,
  "barcodes": [
    {
      "format": "EAN13",
      "symbology": "EANUPC",
      "text": "8934588012228",
      "content_type": "Text",
      "position": {
        "top_left": {
          "x": 33,
          "y": 0
        },
        "top_right": {
          "x": 317,
          "y": 0
        },
        "bottom_right": {
          "x": 317,
          "y": 149
        },
        "bottom_left": {
          "x": 33,
          "y": 149
        }
      },
      "orientation": 0,
      "is_mirrored": false,
      "is_inverted": false,
      "gtin": {
        "gtin14": "08934588012228",
        "gs1_prefix": {
          "prefix": "893",
          "name": "GS1 Vietnam",
          "country_code": "VN"
        }
      }
    }
  ],
  "image": {
    "format": "png",
    "width": 339,
    "height": 165
  },
  "decoder": "zxing-cpp (zxing-wasm)"
}

Ứng dụng

  • Đọc mã vạch sản phẩm từ ảnh trong app kho, kiểm giá
  • Đối soát vận đơn (Code 128) từ ảnh chụp kiện hàng
  • Đọc mã DataMatrix trên hộp thuốc
  • Quét mã PDF417, QR trên vé và giấy tờ người dùng tải lên

Hỏi đáp

Một ảnh có nhiều mã thì sao?

API đọc được tới 50 mã (mặc định 20), mỗi mã kèm toạ độ các góc theo pixel của ảnh gốc.

Vì sao mã UPC-A trả về dạng EAN-13?

Mã UPC-A chính là EAN-13 bắt đầu bằng số 0; API trả về dạng 13 số, cũng là GTIN hợp lệ.

Nhận những định dạng ảnh nào?

PNG và JPEG. Ảnh HEIC / WebP cần chuyển đổi trước (ví dụ bằng /v1/image-resize).

API liên quan

Bắt đầu với 1.000 request miễn phí mỗi tháng. Nhận API key miễn phí →