Barcode Scanner SDK

Barcode Scanner SDK for Mobile, Web & Enterprise Applications

Add barcode scanning to Android, iOS, web, desktop and cross-platform apps with one scanning engine. barKoder reads 1D and 2D barcodes on the device, including damaged, blurry and direct part marked codes.

  • 7 native, web & desktop SDKs
  • 6 cross-platform frameworks
  • Scans on device; periodic license check; offline licenses available
One engine · pick your platform
Android Barcode Scanner SDK

Kotlin and Java, Android 8.0 (API 26) and above.

Add the barKoder Android library from the installation guide
Same decoders, same modes, same settings. Android guide →
iOS Barcode Scanner SDK

Swift and Objective-C.

Add the barKoder framework from the installation guide
Same decoders, same modes, same settings. iOS guide →
Web Barcode Scanner SDK

JavaScript and WebAssembly, in the browser.

npm install barkoder-wasm
Same decoders, same modes, same settings. Web SDK guide →
Flutter Barcode Scanner SDK

The barkoder_flutter plugin on pub.dev.

flutter pub add barkoder_flutter
Same decoders, same modes, same settings. Flutter guide →
React Native Barcode Scanner SDK

The barkoder-react-native package on npm.

npm install barkoder-react-native
Same decoders, same modes, same settings. React Native guide →
.NET MAUI Barcode Scanner SDK

Plugin.Maui.Barkoder on NuGet.

dotnet add package Plugin.Maui.Barkoder
Same decoders, same modes, same settings. .NET MAUI guide →
Capacitor Barcode Scanner SDK

The barkoder-capacitor package on npm.

npm install barkoder-capacitor
Same decoders, same modes, same settings. Capacitor guide →
Windows, Linux, Python, C#, Cordova, NativeScript

Desktop and server SDKs, and two more frameworks, on the same engine.

See every platform and framework
Same decoders, same modes, same settings. All platforms →

Barcode Scanner SDK for Every Major Platform

barKoder is a barcode scanning SDK for developers who build on Android, iOS, WebAssembly, Windows, Linux, Python and C#, or with Flutter, React Native, .NET MAUI, Capacitor, Cordova and NativeScript. Each one is a barcode decoder SDK built on the same scanning engine. Pick your platform to see its requirements, installation and examples.

Scanning modes for difficult barcodes

Standard decoders read clean labels. barKoder adds modes for the codes that fail in the field: worn, curved, engraved, blurred or many in one frame. Turn on the ones your workflow needs.

Damaged and difficult codes

Worn, curved, engraved or blurred.

  1. 01 MatrixSight® Reads QR Code, Micro QR Code and Data Matrix when finder, timing or alignment patterns are missing. A data matrix scanner SDK for labels that are scratched or partly destroyed.
  2. 02 PDF417-LineSight® Decodes PDF417 and Micro PDF417 with missing Start and Stop patterns, row indicators or whole data columns, as found on worn driver's licenses and ID cards.
  3. 03 DPM Mode A DPM barcode scanner template for Data Matrix codes etched into metal, plastic and electronic components, often on curved or reflective surfaces.
  4. 04 DeBlur Reads EAN and UPC barcodes affected by lens, motion or focus blur, so retail scans don't stall when the camera can't focus.
  5. 05 Segment Decoding® Recognizes 1D barcodes deformed on curved or irregular surfaces such as test tubes and bottles.
Scanning flow

Many codes, live overlays, no stops.

  1. 06 Batch MultiScan Decodes multiple barcodes of any type or size in one camera view, for inventory counts, shipping labels and shelves.
  2. 07 AR Mode Draws bounding boxes and labels over each detected barcode in the live camera view, with tap-to-select. Available on Android, iOS and WASM.
  3. 08 Continuous scanning Read barcodes in quick succession without stopping the scanner, for checkout lanes, shelf audits and receiving docks.
Documents and special codes

Vehicles, IDs, DotCode and parsed data.

  1. 09 VIN scanning A template for Vehicle Identification Numbers encoded in Code 39, Code 128, QR Code and Data Matrix.
  2. 10 MRZ scanning An MRZ scanner SDK for passports, ID cards, visas and residence permits in TD1, TD2 and TD3 formats. Processing runs on the device.
  3. 11 DotCode A dedicated mode for DotCode, the dot-based 2D symbology printed at high speed on tobacco packaging, beverage production lines and shipping labels.
  4. 12 Data parsers Turn raw barcode data into labelled fields: AAMVA driver's licenses, South African driving licenses, MRZ documents and GS1 barcodes.

1D and 2D barcode formats

One barcode reader SDK covers retail, logistics, healthcare and identity codes. Enable only the decoders your app needs.

20 linear (1D) entries
9 2D entries
Browse every supported barcode type →
QR Code EAN-13 Data Matrix PDF417 Code 128 Aztec Code

Linear (1D) barcodes

  • Codabar
  • Code 11
  • Code 25
  • Code 39 and Code 39 Extended
  • Code 93
  • Code 128
  • COOP 2 of 5
  • Datalogic 2 of 5
  • GS1 DataBar
  • GS1 Composite
  • EAN-8 and EAN-13
  • IATA 2 of 5
  • Interleaved 2 of 5
  • Italian Pharmacode (Code 32)
  • ITF-14
  • Matrix 2 of 5
  • MSI Plessey
  • Postal barcodes
  • Telepen
  • UPC-A, UPC-E and UPC-E1

2D barcodes

  • Aztec Code
  • Aztec Compact
  • Data Matrix
  • DotCode
  • MaxiCode
  • PDF417
  • Micro PDF417
  • QR Code
  • Micro QR Code

Test the SDK on your own barcodes

The fastest way to judge a barcode scanner SDK is to run it on the labels, devices and lighting your users have.

  1. Get a trial key Register and generate a free trial license: 30 days, up to 25 devices, unlimited scans.
  2. Install the SDK Follow the installation guide for your platform or framework in the barKoder documentation.
  3. Configure decoders Enable the symbologies and modes you need, such as DPM, VIN or Batch MultiScan.
  4. Measure results Scan your hardest samples and the barKoder testing sheet, and record reads and failures.

Try it before you write code

Scan with your phone in the barKoder web demo, which runs in Chrome, Firefox, Safari, Opera and Microsoft Edge, or install the Barcode Scanner by barKoder app from the App Store or Google Play.

Start a 30-day free trial

Licensing for enterprise barcode scanner SDK projects

Licenses are annual subscriptions per app, with unlimited scans, all features, support and upgrades included. Plans scale by the number of devices. Server deployment, white-label use and redistribution are available on custom terms.

See SDK pricing

barKoder in production

Teams that replaced libraries and dedicated scanners with the barKoder SDK on mobile, web and .NET MAUI.

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.

Barcode scanner SDK questions

What is the difference between a barcode scanner SDK and a barcode scanner API?

A barcode scanner SDK is a library you embed in your own app. It opens the camera or takes an image, decodes the barcode on the device and returns the result to your code. With barKoder, your app calls the scanner's API directly and decoding runs locally on the device, without a remote decoding service.

Which platforms and frameworks does barKoder support?

The mobile barcode scanner SDK runs on Android and iOS. The web barcode scanner SDK runs in the browser with WebAssembly. Desktop and server SDKs cover Windows, Linux, Python and C#. For cross-platform apps there are integrations for Flutter, React Native, .NET MAUI, Capacitor, Cordova and NativeScript.

Is there a barcode SDK for Linux, Windows and server applications?

Yes. The SDK for Linux supports x86_64 and ARM64 through a C++ API and decodes from cameras, image files or pixel buffers. The Windows SDK offers C and C++ interfaces, the C# SDK targets .NET 6.0 or newer, and the Python SDK runs on Ubuntu 22.04 or newer. Server deployment is licensed on custom terms through a quote request.

Does barcode scanning work offline?

Yes. The SDK checks the license key with the licensing server when the app initializes it. All scanning runs locally on the device, and each device must reach the licensing server at least once every 30 days.

Is there a free version of the barKoder SDK?

The SDK has a free trial: a 30-day license for up to 25 devices with unlimited scans, generated from your barKoder account. Production use needs a paid license. To read a single barcode from an image without writing code, use the free online barcode scanner.

Can barKoder read damaged Data Matrix, QR and DPM codes?

Yes. MatrixSight reads QR Code, Micro QR Code and Data Matrix with missing finder or timing patterns, and DPM Mode reads Data Matrix codes engraved on parts. Test your own samples, because the type and amount of damage decide what any decoder can recover.

Can I scan passports and driver's licenses?

Yes. MRZ scanning reads the machine readable zone on passports, ID cards and visas. For driver's licenses, the SDK reads the PDF417 barcode and the AAMVA parser and SA DL parser return the fields as structured data.

How is the SDK licensed?

Licenses are annual subscriptions per app, covering mobile or web, with unlimited scans, all features, support and free upgrades. Enterprise plans differ by the number of devices. See SDK pricing for current plans, or request a quote for white-label, redistribution or larger deployments.

Add barcode scanning to your app

Test barKoder on your own barcodes and devices with a free 30-day trial, or talk to an SDK expert about your platform and project.