barKoder FAQ

Barcode Scanner SDK FAQ

Answers to the questions developers and technical buyers ask most about the barKoder Barcode Scanner SDK: the free trial, barcode SDK license terms, supported platforms and symbologies, offline scanning, ID document parsers and how to get support.

Question mark speech bubble icon

barKoder FAQ topics

Jump to a category, or open any question below. Each answer links to the page or documentation guide with the details.

Getting started and the free trial

What the SDK is, how to get a trial key and the steps to add scanning to your app.

What is the barKoder Barcode Scanner SDK?

The barKoder Barcode Scanner SDK adds barcode scanning to mobile, web, desktop and server applications. It reads 1D and 2D barcodes with the device camera or from images, and it also reads optical codes: the MRZ on passports and ID cards, and VIN text. Decoding runs on the device, and the same engine is available for native platforms and cross-platform frameworks.

How do I get a trial license key?

Go to the free trial page, choose Native + Cross Platform or Web, and enter your app ID or domain. You get a trial key and setup instructions. Each trial license can be generated once per app ID and is valid for 25 devices for 30 days. No credit card is required.

You can also register on the barKoder Developer Portal and generate a 30-day trial license with its self-service tool. A trial key sent from the quote form also lasts 30 days, and extending a trial requires a Developer Portal account. Use trial keys in development or staging environments only.

How do I integrate a barcode scanning SDK into my app?

The steps are the same on every platform. The barKoder documentation hub has an installation guide for each one.

  1. Get a trial license key.
  2. Install the SDK. For example, run npm install barkoder-wasm for the Web SDK, import the barkoder module in the Android SDK installation, or add the frameworks in the iOS SDK installation.
  3. Create the barKoder configuration with your license key.
  4. Enable the symbologies you want to read. Leaving a symbology disabled is a common reason a barcode doesn't scan.
  5. Start scanning and handle the results in the result callback.

Without a valid license the SDK still scans, but results come back marked (Unlicensed) and only partly readable.

Can I test barKoder without writing code?

Yes. Install the barKoder demo app from the App Store or Google Play, or open the barKoder Web Demo in your browser. The trial page also links an SDK data sheet and a printable testing sheet with 1D and 2D barcodes. To read a single barcode from your camera or from a photo, use the free online barcode scanner, which runs on the same barKoder engine. All barKoder demos and open-source sample apps are listed on the demo apps page.

Barcode SDK license and pricing

How devices are counted, what the SDK costs and what happens at the device limit or at renewal.

How does barKoder SDK licensing work?

The mobile SDK registers only devices that initialize it and successfully scan at least one barcode in your app. Uninstalling and reinstalling the app on the same device doesn't use another device license. If your app initializes the SDK without scanning, for example at app startup, the device takes a license only temporarily: devices with zero decodes are cleared every 24 hours. Initializing the SDK only when scanning is needed keeps your count accurate.

With a standard license, each device checks in with the licensing server when the app initializes the SDK, usually every 15 days. If it can't, it gets 15 more days. A device that hasn't reached the licensing server within 30 days returns results marked (Unlicensed), even if the license on the device hasn't expired. The check-in interval can be adjusted in custom agreements. Decode counts update when a device checks in, so they aren't always exact.

The Web SDK counts unique browser clients that decode at least one barcode. Opening your web app in two different browser types, such as Chrome and Firefox, counts twice. Several Chromium-based browsers on the same device, such as Chrome and Edge, count once. A production key works only with the app ID it was generated for. See how the barKoder license key works.

How much does the barKoder SDK cost?

The SDK is licensed as an annual, renewable subscription, with Enterprise and Consumer licensing packages depending on the type and audience of your app. Current plans and prices are on the barKoder SDK pricing page. If you need more devices, OEM or white-label use, redistribution inside another product, a consumer-facing app, or a desktop or server project, email sales@barkoder.com or request a quote.

What happens if I go over my device limit or my license expires?

With a trial license, the first 25 devices keep full results and each new device after that gets (Unlicensed) results. All results are marked (Unlicensed) once the 30-day trial ends.

With a production license, devices registered before you went over the limit keep full results. New devices get (Unlicensed) results after a 30-day grace period, unless you upgrade your subscription. If the annual subscription isn't renewed on time, you also get a 30-day grace period before service stops. The license key guide covers these cases.

Platforms and integration

Where the SDK runs, what devices and browsers it needs, and examples for web, React and Python projects.

Which platforms and frameworks are supported?

Native platforms:

Cross-platform frameworks:

What are the minimum technical requirements?
  • Android: Android 8.0 (API level 26) or later, for the native SDK and every framework plugin.
  • iOS: iOS 15 or later is required. Check the installation guide of your framework for its own minimum versions.
  • Camera: at least 1280×720 (HD). Devices with a camera of at least 8 megapixels and autofocus are recommended.
  • Architectures: arm64, armeabi, x86 and x86_64.

See the barKoder SDK FAQ in the documentation and the iOS Barcode Scanner SDK page.

Which browsers does the barKoder Web SDK support?

Any browser that supports WebAssembly and ResizeObserver:

  • Desktop: Chrome 67+, Firefox 69+, Edge 79+ and Safari 14+ on macOS.
  • Android: Chrome 67+, Firefox 79+, Samsung Internet 9.0+ and Opera 47+.
  • iOS: Safari 14+, plus Chrome, Firefox and Edge.

Serve your app over HTTPS with the correct MIME type for WASM files, and allow camera access if you use the live scanner. The Web SDK installation guide lists the requirements.

Can a browser-based barcode reader handle multiple symbologies?

Yes. The barKoder Web SDK runs in the browser through WebAssembly, with no native plugin. You choose which symbologies to read with setEnabledDecoders: 1D codes such as Code 128, Code 39, Code 93, Codabar, Code 11, MSI Plessey, EAN, UPC, the 2 of 5 family, Telepen and GS1 DataBar; 2D codes such as QR, Micro QR, Aztec, Aztec Compact, Data Matrix, PDF417, Micro PDF417, DotCode and MaxiCode; and postal codes. The Web SDK guide lists every decoder. For passports and ID cards, the barkoder-wasm-ocr package adds MRZ scanning. Try it in the barKoder Web Demo.

Is there a React web barcode scanner example?

Yes. The documentation has a React.js integration example that installs barkoder-wasm from npm, plus Next.js and Angular examples. You can see it running in the barKoder React WASM demo. For native mobile apps written in React Native, use the React Native Barcode Scanner SDK.

Is there a Python barcode scanner SDK?

Yes. The barKoder Python SDK adds barcode scanning to Python applications, scripts and automation pipelines, and decoding runs on your machine. It runs on 64-bit Linux, Windows 10 and 11, and macOS 11 or newer, with Python 3.11 or newer, and it works with OpenCV and NumPy. Download it from the Developer Portal repository or clone it from GitHub, then follow the install steps for your platform in the GitHub README or the Python library installation guide (Linux) and the Python SDK examples.

Symbologies and scanning features

Which barcodes the SDK reads and how it handles batches, damage, low light and VINs.

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.

Data parsers and ID documents

Reading MRZ, driver's licenses, South African documents and GS1 data as structured fields.

Can I capture data from documents with an MRZ instead of a barcode?

Yes. MRZ scanning reads the machine-readable zone on passports, ID cards, visas and residence permits. It is supported on all barKoder platforms and frameworks: Android, iOS, the Web SDK (through the barkoder-wasm-ocr package), Windows, Linux, C#, Python, Flutter, React Native, Capacitor, Cordova, .NET MAUI and NativeScript. You need a license key with MRZ enabled. Try it in the barKoder demo app for iOS and Android, or in the browser with the web MRZ demo. The Web MRZ example shows the setup.

Which data parsers does the SDK include?

The SDK includes built-in data parsers that turn raw barcode content into labeled fields:

  • AAMVA parser for the PDF417 barcode on U.S. and Canadian driver's licenses and ID cards.
  • SA DL parser for South African driving licenses, with options for the Smart ID card and the vehicle license disc.
  • MRZ parser for passports, ID cards and visas, with check digit validation.
  • GS1 parser for Application Identifiers such as GTIN, batch, expiry and serial number.
  • A boarding pass (BCBP) parser.

Set the formatting option, for example to Automatic, and read the parsed fields from formattedJSON or formattedText in the result, as described in the Web SDK API reference. MRZ results are the exception: they arrive in the result’s extra data, with the full JSON under the JSON key. Parsing runs on the device. It reads the data encoded in the barcode or MRZ, but it doesn't prove that a document is genuine or belongs to the person presenting it.

Industry use cases

Using phones instead of hardware scanners, and scanning in healthcare and the public sector.

How can my warehouse team scan without buying dedicated scanner hardware?

Build scanning into your own app with the SDK, and the smartphones and tablets your team already carries become barcode scanners. Batch MultiScan reads dozens of codes at once for inventory counts and works with smartphones, tablets and industrial cameras. DPM mode reads engraved Data Matrix codes that used to need specialized hardware scanners. To try a workflow before you build one, the free barKoder demo app can send each scan to your server with a webhook. See warehouse barcode scanning and how to evaluate a barcode scanner SDK for warehouse applications.

Can barKoder be used for healthcare and public sector scanning?

Yes. In healthcare, the GS1 parser reads pharma and healthcare data such as UDI, GSRN and serial numbers, and Batch MultiScan speeds up registering sample tubes and vials labeled with QR or Data Matrix codes and tracing medicine packages.

In the government and public sector, the SDK reads the PDF417 barcode on ID cards and driver's licenses and the MRZ on passports, with on-device processing and offline operation. WayMark Infotech used barKoder in a national voter registration platform for the Independent Electoral Commission, on Android and a React web portal, with offline scanning in remote areas.

Privacy, security and offline use

When the SDK needs a connection and what happens to scanned data.

Do I need an internet connection to scan barcodes?

Only for the license check. Scanning runs locally on the device. When the app initializes the SDK, it checks the license key with the barKoder licensing server, and with a standard license each device must reach the server at least once every 30 days to keep returning licensed results. On firewalled networks, allow outbound HTTPS to the barKoder licensing server. For devices on segregated networks that can never go online, barKoder can issue license keys that work without the licensing server, on custom terms; talk to an SDK expert. See how licensing works.

Does the app or the SDK store any personal information?

No. barKoder doesn't store any information read from a barcode or a document. Scanning and parsing run on the device. barKoder holds ISO/IEC 27001:2022 certification for information security management. Read the barKoder privacy policy for details.

Support

Where to get help with integration, testing and license keys.

How do I get technical support?

Support is free for integration and testing. Register on the barKoder Developer Portal and open a ticket, or email support@barkoder.com. If a license key doesn't work, first check that you pasted the whole key, then include the key and your app ID in the ticket. The documentation also lists common issues and fixes for Android, iOS and the Web SDK.

Try barKoder on your phone or in your browser

Install the free barKoder demo app, or open the web demo, and scan your own barcodes before you integrate the SDK.

iPhone and iPad

barKoder demo app for iOS

Scan with your camera, or point it at the QR code to open the App Store.

Download on the App Store
QR code linking to the barKoder demo app on the App Store

Android phones and tablets

barKoder demo app for Android

Scan with your camera, or point it at the QR code to open Google Play.

Get it on Google Play
QR code linking to the barKoder demo app on Google Play

Any modern browser

barKoder web demo

Runs the Web SDK in your browser, on desktop or mobile, with nothing to install.

Open the web demo
QR code linking to the barKoder web demo

Test with known samples. Print or display the testing sheet and scan each 1D and 2D barcode with the demo app. The data sheet summarizes the SDK for your team.

Test the barKoder SDK in your own app

Generate a free 30-day trial key for up to 25 devices, or talk to an SDK expert about licensing, platforms or your scanning workflow.