Which barcode symbologies are supported?
1D: Codabar, Code 11, Code 25 (Standard and Industrial 2 of 5), Code 32 (Italian Pharmacode), Code 39 including Code 39 Extended, Code 93, Code 128, COOP 2 of 5, Datalogic 2 of 5, GS1 DataBar, GS1 Composite, EAN-8, EAN-13, UPC-A, UPC-E and UPC-E1, IATA 2 of 5, Interleaved 2 of 5, ITF-14, Matrix 2 of 5, MSI Plessey, postal barcodes and Telepen.
2D: Aztec Code, Aztec Compact, Data Matrix, DotCode, MaxiCode, PDF417, Micro PDF417, QR Code and Micro QR Code.
The SDK also reads VINs and, with OCR, the MRZ on passports and ID cards. See all supported barcode types.
Does barKoder support rare symbologies?
Yes. Beyond retail and logistics codes, the SDK reads DotCode, MaxiCode, Telepen, Code 11, Code 32, MSI Plessey, GS1 Composite, Micro QR, Micro PDF417, the IATA, Matrix, Datalogic and COOP 2 of 5 variants, and postal barcodes: Intelligent Mail, Postnet, Planet, Australia Post, Royal Mail, KIX and Japan Post. For engraved Data Matrix codes there is a DPM mode, and DotCode has its own best-performance setting.
Can I scan multiple barcodes at once?
Yes, with Batch MultiScan. It reads several barcodes of different types and sizes in one camera view and keeps scanning without closing the session after each result. You set how long scanned codes stay cached, the delay before a duplicate is reported again and the maximum number of results. Setup is documented for Android, iOS, Web, Flutter, React Native, Capacitor, .NET MAUI, NativeScript and Python. Start with the Android MultiScan example or the Web MultiScan example.
Can smartphones read damaged, blurry or deformed barcodes?
Yes. barKoder uses a separate algorithm for each kind of problem:
-
MatrixSight® reads damaged QR, Micro QR and Data Matrix codes.
-
Segment Decoding reads 1D barcodes that are crumpled, wrinkled or otherwise deformed. In the Python SDK you enable it with the misshaped barcodes setting.
-
DeBlur reads EAN and UPC barcodes affected by lens, motion or focus blur.
-
PDF417-LineSight® reads worn PDF417 barcodes that have lost their start and stop patterns, row indicators or whole data columns.
-
DPM mode reads Data Matrix codes engraved with direct part marking.
Does scanning work in low light?
Yes. The SDK can switch on the device flash (torch) for illumination. On Android, isFlashAvailable checks for a flash and setFlashEnabled turns it on, as described in the Android SDK API reference. The Web SDK shows a flash button on the camera preview. For VINs on mobile, if a barcode can't be decoded because of poor lighting, the SDK can fall back to OCR and read the printed VIN text.
How do I scan VIN barcodes on a mobile device?
Enable the VIN scanning mode. It turns on Code 39, Code 128, Data Matrix and QR, sets a region of interest, uses slow decoding speed and high resolution for better results, and can restrict Code 39 results to VINs. See the Android VIN example.
On mobile you can also add OCR VIN support: the SDK tries the barcode first and falls back to reading the printed VIN when the barcode can't be decoded. OCR VIN needs a license key with OCR enabled and is documented for Android, iOS, Flutter, React Native, Capacitor, Cordova, .NET MAUI and NativeScript. The Web SDK reads VIN barcodes with the same VIN mode, but OCR VIN isn't available in the Web SDK yet.
I can't scan my barcode. What should I check?
- The barcode's symbology must be enabled in the demo app or in your SDK configuration.
- The barcode shouldn't be too small or severely damaged.
- Your device must meet the minimum technical requirements.
- Your license key must be valid and pasted in full. Otherwise results come back marked (Unlicensed).
If it still doesn't scan, open a ticket in the barKoder Developer Portal or email support@barkoder.com.