Batch MultiScan

Scan Multiple Barcodes at Once with Batch MultiScan

Batch MultiScan is the barKoder SDK feature that decodes several barcodes in one camera view or image, whatever their type or size, and keeps the session open for the next batch. Use it as a batch barcode scanning SDK on Android, iOS, the web, the cross-platform frameworks and Python.

Continuous Scanning Batch MultiScan feature icon

Batch barcode scanning SDK

With Batch MultiScan, a multi barcode scanner runs inside your own app. Users point a phone, tablet or rugged device at a shelf, a label or a rack of samples, and the SDK returns every barcode it decodes in a single session. Codes can be 1D or 2D, of different sizes, neatly lined up or scattered at random.

What Batch MultiScan does

  • Reads more than one barcode per frame, up to a maximum results count you set
  • Keeps the scanning session open after each result
  • Caches multi-code results for a set duration, 3,000 ms in the docs examples
  • Lets you tune the delay before the same code is reported again
  • Covers all common 1D and 2D symbologies, mixed in the same view
Get a trial license key

Where scanning multiple barcodes saves time

The count of barcodes in one image can range from a few to dozens. Typical jobs:

  • Inventory counts
  • Receiving and stock taking
  • Shipping labels
  • Shelf price tags
  • Specimen racks
  • Library shelves
  • Pharma cases
  • Last-mile delivery

For inventory apps, read Barcode scanner SDK for inventory management apps.

How to scan multiple barcodes simultaneously

Batch MultiScan is a configuration of the standard barKoder scanner, so you add it to an existing integration with a few settings.

  1. Enable decoders Turn on the barcode types your labels use, 1D and 2D together.
  2. Raise the result count Set the maximum results count above 1. That enables multi-code reading in one frame.
  3. Keep the session open Turn off close-session-on-result so scanning continues after the first codes.
  4. Handle results Turn on multi-code caching, set the duplicates delay, and store each decoded value in your app.
Settings used in the docs examples
Setting What it controls Example value
closeSessionOnResultEnabled Whether the scanner closes after a result false
maximumResultsCount How many barcodes can be returned. Above 1 enables multi-code 200 (Android, iOS, React Native), 20 (Web), 10 (Python)
multicodeCachingEnabled Caching of multi-code results true
multicodeCachingDuration How long multi-code results are cached, in milliseconds 3000
duplicatesDelayMs Delay before the same code is reported again 0
Decoding speed and resolution Recommended Normal for both; HD resolution in the iOS and Web examples Normal

If your app won't run on older devices, the docs suggest the Slow decoding speed: it gives more reliable results, and on modern phones the small loss of speed is negligible.

Add a multi barcode scanner to your app

These examples are copied from the barKoder docs.

Kotlin
            private fun setMultiScan() {
            //In order to perform scanning, config property need to be set before
            // If the license key is not valid, results are marked (Unlicensed) and only partly readable
            bkdView.config = BarkoderConfig(this, "LICENSE_KEY") {
            Log.i("Licensing SDK: ", it.message)
            }
            // Enabling MultiScan
            bkdView.config.isCloseSessionOnResultEnabled = false
            BarkoderConfig.SetMulticodeCachingEnabled(true)
            BarkoderConfig.SetMulticodeCachingDuration(3000)
            bkdView.config.decoderConfig.duplicatesDelayMs = 0
            bkdView.config.decoderConfig.maximumResultsCount = 200
            // For best result decoding speed should be normal, and barkoder resolution should be normal
            bkdView.config.decoderConfig.decodingSpeed = Barkoder.DecodingSpeed.Normal
            bkdView.config.barkoderResolution = BarkoderResolution.NORMAL
            }
          
JavaScript
            _barkoder.setCloseSessionOnResultEnabled(false);
            _barkoder.setMaximumResultsCount(200);
            _barkoder.setMulticodeCachingDuration(3000);
            _barkoder.setMulticodeCachingEnabled(true);
            // For best result decoding speed should be normal, and barkoder resolution should be normal
            _barkoder.setDecodingSpeed(Barkoder.DecodingSpeed.normal);
            _barkoder.setBarkoderResolution(Barkoder.BarkoderResolution.normal);
          

Flutter, Capacitor, .NET MAUI and NativeScript use equivalent methods. Cordova lists them in its Cordova API reference.

Batch MultiScan examples: Android, iOS, Web, Flutter, React Native, Capacitor, .NET MAUI, NativeScript and Python. Cordova supports it too; see the Cordova API reference.

Detect multiple barcodes in one image

Not every batch comes from a live camera. The Python Barcode Scanner SDK decodes barcodes from images, streams or files, for server-side processing and desktop automation.

The Python example enables QR, PDF417, Code 128, Data Matrix, Code 93 and Code 39, allows up to 10 barcodes in one go, uses the Slow decoding speed for accuracy and sets the region of interest to the whole frame.

To check a single picture in the browser, use the free barcode scanner for image files.

Python
        #---------------configure the SDK--------------
        QR = BarkoderSDK.constants["Decoders"]["QR"];
        PDF417 = BarkoderSDK.constants["Decoders"]["PDF417"];
        Code128 = BarkoderSDK.constants["Decoders"]["Code128"];
        Datamatrix = BarkoderSDK.constants["Decoders"]["Datamatrix"];
        Code93 = BarkoderSDK.constants["Decoders"]["Code93"];
        Code39 = BarkoderSDK.constants["Decoders"]["Code39"];
        #set desired decoders
        decoders = [QR, PDF417, Code128, Datamatrix, Code93, Code39];
        total_decoders = len(decoders);
        BarkoderSDK.setEnabledDecoders(decoders, total_decoders);
        #set multicode limit (value higher than 1 enables multicode)
        BarkoderSDK.setMaximumResultsCount(10);
        #set desired decodingSpeed
        decodingSpeed = BarkoderSDK.constants["DecodingSpeed"]["Slow"];
        BarkoderSDK.setDecodingSpeed(decodingSpeed);
        #set desired ROI
        BarkoderSDK.setRegionOfInterest(0, 0, 100, 100);
      

Enterprise apps that scan multiple barcodes

Batch MultiScan runs on smartphones, tablets and industrial cameras, so the same feature serves the warehouse floor, the lab and the pharmacy.

Overhead view of a worker moving a boxed pallet with a pallet jack in a warehouse

Warehouse inventory management

Warehouses track inventory with phones and tablets, and also with automated guided vehicles, mobile robots and drones. Batch MultiScan is optimized for scanning dozens of codes at once to speed up counting.

Barcode scanning for warehousing →
Gloved hands handling barcode-labeled blood specimen tubes in a rack

Specimen traceability

Tubes, vials and specimen cassettes usually carry a QR Code or Data Matrix. Reading a whole rack at once speeds up registering samples in a database, from collection to storage or disposal.

Barcode scanning for healthcare →
Library bookshelf with rows of books for barcode-based shelf management

Library bookshelf management

Capture the barcodes on a row of books, then query the database in real time to check each book's correct position or confirm it is there.

Barcode scanning for education →
Medicine box with a GS1 Data Matrix showing GTIN, lot, expiry and serial for track and trace

Pharma track and trace

Data Matrix is the most used symbol for tracing medicines. Batch MultiScan helps meet track-and-trace requirements for packages, bundles and cases from manufacturer to wholesaler to pharmacy.

Parse GS1 data with the GS1 parser →

See every code in the batch with AR overlays

Combine Batch MultiScan with AR Mode to outline each detected barcode on the camera preview, label it and mark which codes are already decoded. Users see at a glance what the batch still misses, and Search & Find highlights one value among many.

Two barcodes on a Bike24 shipping label detected at once with AR highlights
Two barcodes on one shipping label Watch the shipping label video
QR code on a Thermal Grizzly authenticity card detected with an AR overlay
QR Code detected with an AR overlay Watch the QR Code video

Damaged, deformed and blurry codes in the same batch

Batch MultiScan reads barcodes from different angles and in different sizes, and works together with barKoder's decoding technologies, so one bad label doesn't stall the batch.

For one code after another instead of many at once, see continuous scanning.

Scan multiple barcodes on every major platform

Batch MultiScan is documented for native Android and iOS, the Web SDK, Flutter, React Native, Capacitor, .NET MAUI, NativeScript and Python. Cordova exposes the same settings in its API reference.

  • 7 native & desktop SDKs
  • 6 cross-platform integrations
  • One consistent scanning core

barKoder in logistics and warehouse apps

Teams that moved high-volume scanning from dedicated hardware and older libraries to barKoder.

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.

Multi barcode scanner questions

How do I scan multiple barcodes at once?

Enable Batch MultiScan in the barKoder SDK: turn off closing the session on result, set the maximum results count above 1, and turn on multi-code caching. Point the camera at the barcodes and the SDK returns each one it decodes. The Enable MultiScan example shows the full setup.

How many barcodes can Batch MultiScan read in one scan?

You set the limit with the maximum results count. The docs examples use 200 on Android, iOS and React Native, 20 on the web and 10 in Python. Real-world batches range from a few codes to dozens, and the feature is optimized for scanning dozens at once.

Can it read different barcode types in the same frame?

Yes. Batch MultiScan decodes multiple barcodes regardless of type or size in one pass, across all common 1D and 2D symbologies. Enable the decoders your labels use, for example Code 128, QR Code and Data Matrix together.

Can I detect multiple barcodes in an image instead of a live camera?

Yes. The Python multiscan example reads up to 10 barcodes from one image with the region of interest set to the whole frame. The Python SDK decodes barcodes from images, streams or files.

How do I avoid counting the same barcode twice?

Batch MultiScan caches multi-code results for a duration you set, and the duplicates delay controls when the same code can be reported again. In your app, keep a set of values already received. With AR Mode, users also see which codes have already been decoded.

What is the difference between Batch MultiScan and continuous scanning?

Both keep the scanner open after a result. Continuous scanning suits one code after another, with control over how soon the same code repeats. Batch MultiScan also reads many codes in the same frame and caches the results, which suits shelves, racks and multi-label boxes.

Does Batch MultiScan work in a web app?

Yes. The Web Barcode Scanner SDK supports it, and the Web MultiScan example shows the settings. To try it before you integrate, open the barKoder web demo and turn on MultiScan in its options.

How do I try the batch barcode scanning SDK?

Get a free trial license for 30 days and up to 25 devices from the trial page. For licensing across many devices, see barKoder pricing or request a quote.

Scan multiple barcodes at once in your app

Test Batch MultiScan on your own shelves, labels and racks with a free 30-day trial, or talk to an SDK expert about your batch scanning workflow.