Skip to main content

Changelog | Capacitor Barcode Scanner

tip

For additional details about the API, please refer to our API reference documentation.

Version 8.0.0 (12 Feb 2026)​

  • πŸŽ‰ New:
    • General:
      • The SDK now supports a new license key format, which does not contain special characters or line breaks.
      • Introduced the ScanbotImageProcessor object to encapsulate and manage all SDK functionalities related to image processing.
      • All of the API functions that accept an image file URI as an input, now accept both image file URI and ImageRef object.
      • Added a new property processingMode to all scanner configuration types to enhance processing flexibility.
      • Added a new property cameraLiveScannerResolution to CameraConfiguration for configuring live scanner resolution in all RTU-UI scanners.
      • ImageRef now supports HEIC images.
    • Barcode Scanner:
      • Introduced the ScanbotBarcode object to encapsulate and manage all SDK functionalities related to barcode scanning.
      • Added a new API parseDocument for parsing barcode documents from raw text values.
      • Added a new API scanFromPdf for scanning barcodes from PDF documents.
      • New supported document parser for British Columbia driver licenses PDF417 codes.
      • Introduced a new algorithm for recognizing 1D symbologies (except EAN and UPC), enhancing performance with blurred and distant barcodes. This feature is enabled by default but can be turned off using the enableOneDBlurScanner property in barcode format configurations on low-power devices if necessary.
      • Added a new barcode scanner engine mode called NEXT_GEN_MAX_DISTANCE, which is optimized for scanning from far distances on very high-power devices with a 4K video stream.
      • All 1D barcode formats can be configured with a new oneDConfirmationMode which is THOROUGH by default. Setting it to MINIMAL or NONE could lead to higher recall in difficult scenarios, but could also cause more false positives.
  • πŸš€ Improvements:
    • General:
      • All APIs can now return more complete errors with error messages.
      • The "Created TensorFlow Lite XNNPACK delegate for CPU." log is no longer an output in production builds.
      • When creating an ImageRef from a .png file containing an alpha channel, they are blended with a user specified canvas color instead of simply discarding the alpha channel. It is possible to select whether to use a WHITE or BLACK background in PathImageLoadOptions and BufferImageLoadOptions.
      • Android: Optimized memory usage of Scanbot Camera components.
      • Android: Improved RTU UI component padding behavior for finder view and action bars.
      • iOS: Camera sessions no longer show a black screen in case of license error. Instead, the camera runs but the detection fails with appropriate license error.
      • iOS: Implemented keepScreenOn property for all RTU-UI screens to prevent the system from going idle or entering the lockscreen while scanning.
    • Barcode Scanner:
      • Improved quiet zone checks for the barcode format PharmaCode to reduce the false positive rate.
      • Reduced the false positive rate of blurred barcodes in live mode when the barcode is only partially visible.
  • 🐞 Bug fixes:
    • General:
      • Android: Fixed issues related to edge-to-edge warnings in Google Play Store for RTU-UI screens.
      • Android: Fixed dependencies clash related to material icons in RTU-UI screens.
    • Barcode Scanner:
      • Android: Fixed an issue where the use case could not find UPC and EAN barcodes with extensions in RTU-UI screen.
      • iOS: Fixed a bug in Barcode RTU-UI Multiple Scanning Mode where the count of the sheet button was not updated properly.
  • ⚠️ Breaking changes:
    • General:
      • Renamed initializeSdk to initialize in ScanbotBarcodeSDK, updated its argument type to SdkConfiguration (from ScanbotBarcodeSdkConfiguration), and changed its return type to LicenseInfo (from LicenseInfoResult).
      • Removed the ScanbotBarcodeSdkConfiguration type. The initialize method now requires an instance of the SdkConfiguration class. Update your initialization code accordingly.
      • Removed LicenceInfoResult in favor of the new LicenseInfo class. Update your code to use the LicenseInfo class for license information retrieval.
      • Removed extractImagesFromPDF add associated types.
      • Renamed cleanup to cleanupStorage. cleanupStorage does not return any value now.
      • Renamed getImageData to readImageData and moved it to ScanbotImageProcessor.
      • Renamed property roi to cropRect in all image load options types for better clarity.
      • Renamed class Categories to Category.
      • Renamed class Languages to Language.
      • Replaced type literal IF_AVAILABLE with AUTO in EncryptionMode.
      • Removed clone() method from ImageRef.
    • Barcode Scanner:
      • Renamed startBarcodeScanner to startScanner and moved it to ScanbotBarcode.
      • Renamed detectBarcodesOnImage to scanFromImage and moved it to ScanbotBarcode.
      • Changed the type of the scannerConfiguration property in BarcodeScannerScreenConfiguration from CommonBarcodeScannerConfiguration to BarcodeScannerConfiguration.
      • The MICRO_QR_CODE barcode format has been removed from the list of common barcode formats.
  • πŸš™ Under the hood:
    • Upgraded the native Scanbot Android SDK to v8.0.1.
    • Upgraded the native Scanbot iOS SDK to v8.0.1.
    • Updated libzueci lib dependency to 1.0.1.
    • Added snowflake-arctic-embed-xs lib dependency to eadfba3b.
    • Android: The SDK Project has been switched to compileSdk = 36.
    • Android: The SDK Project has been switched to AGP 8.10.1.
    • Android: The SDK Project has been switched to Kotlin 2.1.21.
    • Android: Updated Dagger lib dependency to 2.56.2.
    • Android: Updated Kotlin Standard Library dependency to 2.1.21.
    • Android: libittnotify is no longer linked.

Version 7.1.1 (5 Nov 2025)​

  • πŸŽ‰ New:
    • Barcode Scanner:
      • Barcode configurations for 1D barcode types have a new field minimumNumberOfRequiredFramesWithEqualRecognitionResult that requires this number of frames on which the barcode has to be detected.
  • 🐞 Bug fixes:
    • General:
      • Android: Fixed 16 kb page size support for TFLite native library.
  • ⚠️ Breaking changes:
    • Barcode Scanner:
      • The field minConfirmationsStandaloneEAN in BarcodeAccumulationConfiguration was moved and renamed to the field minimumNumberOfRequiredFramesWithEqualRecognitionResultExtensionless in BarcodeFormatUpcEanConfiguration.
  • πŸš™ Under the hood:
    • Upgraded the native Scanbot iOS SDK to v7.1.4.
    • Upgraded the native Scanbot Android SDK to v7.1.2.

Version 7.1.0 (18 Aug 2025):​

  • πŸŽ‰ New:
    • Barcode Scanner:
      • BarcodeItem has new properties:
      • BarcodeScannerUiResult has a new property selectedZoomFactor to retrieve the zoom factor used for the barcode scanning.
      • BarcodeScannerConfiguration has a new property accumulationConfig that allows the accumulation of barcodes over multiple frames in live mode.
      • CameraConfiguration has new properties:
        • fpsLimit to limit the rate of detections per second in normal performance mode.
        • iOS: hardwareButtonsEnabled to enable zooming using the camera control button (iPhone 16 series).
    • General SDK:
      • Added a new API mockCamera that allows injecting an image to simulate a video stream to the scanner camera session for UI testing. See this example.
      • Android: ScanbotBarcodeSdkConfiguration has a new property performanceHintApi which significantly improves multithreading performance on devices that support the Hint Session (e.g. Pixel 9 Pro and Samsung S24 Ultra).
  • πŸš€ Improvements:
    • Barcode Scanner:
      • All Barcode AR overlays are now based on extendedQuads.
      • Boarding pass document parser now supports up to version 8 of the IATA-BCBP standard.
      • Improved vCard document parser.
    • General:
      • Android: Improved the algorithm of high performance cores computation as the old one didn't work correctly on some devices (e.g. Pixel 9 Pro).
      • Android: Integrated Android Performance Hint Session for faster multithreading on supported devices (e.g. Pixel 9 Pro, Samsung S24 Ultra).
  • 🐞 Bug Fixes:
    • Barcode Scanner:
    • The carrier identifier for MaxiCode mode 3 might be encoded by using different codewords. Now all possible codewords are checked that encode the carrier identifier.
    • vCard document parser now correctly processes the FN key as FormattedName.
    • Android: Fixed handling of the back actions for modal dialogs in the RTU-UI screens.
    • PDF Image Extractor:
      • iOS: Fixes wrong orientation of extracted images when the PDF page has a transform applied.
    • Storage Crypting:
      • iOS: Fixed data corruption issues in AES encryption/decryption that could result in corrupted or partially corrupted files.
  • ⚠️ Breaking Changes:
    • General:
      • Android: Removed useCameraX property from ScanbotBarcodeSdkConfiguration.
  • πŸš™ Under the Hood:
    • Upgraded the native Scanbot Android SDK to v7.1.0.
    • Upgraded the native Scanbot iOS SDK to v7.1.0.
    • Added flatbuffers 2.0.6.

Version 7.0.0 (30 May 2025):​

  • πŸŽ‰ New:
    • Added support of new barcode formats that are used in the pharmaceutical industry: PHARMA_CODE, PHARMA_CODE_TWO_TRACK, PZN8 (Pharmazentralnummer) and PZN7.
    • Added support of a new barcode document format HIBC.
    • Added an advanced configuration of Barcode Scanner for RTU-UI screens and for still image recognition. See more here BarcodeScannerScreenConfiguration and here BarcodeScannerConfiguration.
    • Added the ability to configure the Barcode Scanner using the common barcode configuration, see BarcodeFormatCommonConfiguration.
    • Added an option to ignore barcodes that do not decode to one of the accepted document formats for BarcodeScannerConfiguration. See more here: BarcodeScannerConfiguration.onlyAcceptDocuments.
    • Added lists of predefined subsets (1D, 2D, Postal, Pharma, etc.) of barcode formats. Old predefined sets of barcode formats were removed. See more here: BarcodeFormats.
    • Introduced a new barcode item object to better represent barcode results. See more here: BarcodeItem.
    • Added the ability to return the barcode image in the result using the new returnBarcodeImage property. See more here: BarcodeScannerConfiguration.returnBarcodeImage.
    • Images returned in scanner results are now represented as image references. They can be converted to base64 or saved in a provided path. See more here: ImageRef.
    • Introduced a boolean strictMode for certain barcode configurations. If this mode is disabled, it should allow for a higher detection rate in difficult scenarios, but with the possibility that false positive results may occur. Currently, we support strictMode for QR_CODE, MICRO_QR_CODE, RMQR_CODE, PDF_417, MICRO_PDF417 and GS1_COMPOSITE.
    • Android: Added an option to the RTU-UI v2 Barcode Scanner screen for keeping the screen on. Use BarcodeScannerScreenConfiguration.keepScreenOn to control this function.
  • πŸš€ Improvements:
    • Improved quiet zone checks for the barcode formats ITF, CODE_11, MSI_PLESSEY, IATA_2_OF_5, INDUSTRIAL_2_OF_5 and CODE_25.
    • Improved the false positive rate for ITF.
    • Improved our Barcode Scanner with a significant speed-up in live mode on very large input resolutions.
    • Improved the recognition of PDF417 barcodes in the Barcode Scanner.
    • Improved the Barcode Scanner to better recognize QR codes if the top left finder pattern is corrupted (up to QR code version size 20).
    • By default, Code93 now includes check digits in the result. To disable this and restore the previous behavior, set stripCheckDigits = true.
    • More robust QR code recognition, more tolerance for destroyed or missing timing patterns and alignment patterns and a better performance on artistic QR codes.
    • QR codes with non-square finder patterns and QR codes embedded in adversarial backgrounds (flow codes and more generally) can now be recognized.
    • Improved barcode detection for various barcode types.
    • Improved the performance when scanning four state postal barcodes (i.e. AUSTRALIA_POST, JAPAN_POST, ROYAL_MAIL, ROYAL_TNT_POST, USPS_INTELLIGENT_MAIL).
  • 🐞 Bug fixes:
    • Fixed checksum for CODE_39 barcode format.
    • Fixed the returned results for all types of UpcEanExtensionBehavior.
    • Fixed an issue when scanning Code93 barcodes with stripCheckDigits = false (default) and the check digit was an extension character.
    • iOS: Fixed processing of still images of indexed color space model in the Barcode Scanner.
    • iOS: Fixed a bug in the AR Barcode Scan and Count where the scanner would be stuck if there was no barcode detected.
    • iOS: RTU-UI v2: Fixed a bug in the Barcode Scanner RTU-UI where the flip camera button was not resetting the widest camera available if chosen.
    • iOS: RTU-UI v2: Fixed a UI bug in the Barcode Scanner RTU-UI where the sheet button overlapped with the action bar.
    • Android: Fixed an overflow when decoding a MICRO_QR_CODE barcode format with wrong bits in numeric mode.
    • Android: Fixed minimumTextLength for ITF barcode format. Before, we used it to check the number of symbols instead of the true text length.
    • Android: Fixed sorting of quad points for four-state/postal barcode types.
    • Android: Fixed quad when flag BarcodeFormatConfigurationBase.addAdditionalQuietZone is enabled.
    • Android: RTU-UI v2: The modal dialog no longer appears below the status bar.
    • Android: RTU-UI v2: Fixed an issue where FindAndPickScanningMode.sheetContent.barcodeItemImageVisible was not properly applied.
    • Android: RTU-UI v2: fixed accessibility content for action buttons.
  • ⚠️ Breaking Changes:
    • No need for specific import from capacitor-plugin-scanbot-barcode-scanner-sdk/ui_v2. Everything should be imported from the default capacitor-plugin-scanbot-barcode-scanner-sdk path.
    • Removed startBarcodeScanner, closeBarcodeScanner, startBatchBarcodeScanner and closeBatchBarcodeScanner deprecated APIs along with all related types.
    • startBarcodeScanner API is part of ScanbotBarcodeSDK object. The input configuration and result objects are changed. See more here: ScanbotBarcodeSDK.startBarcodeScanner.
    • initializeSdk API now returns a result of type LicenceInfoResult instead of a status.
    • The input parameters and result objects for detectBarcodesOnImage API were changed. See more here: ScanbotBarcodeSDK.detectBarcodesOnImage.
    • Only the results from the RTU-UI APIs are wrapped with ResultWrapper, all other results are sent directly without being wrapped with ResultWrapper.
    • Type literals for UpcEanExtensionBehavior, BarcodeScannerEngineMode and FieldValidationStatus have been modified.
    • Replaced BarcodeType with BarcodeFormat.
    • Renamed type BarcodeScannerConfiguration to BarcodeScannerScreenConfiguration.
    • Renamed types BarcodeMappedData.barcodeImageKey to BarcodeMappedData.BARCODE_IMAGE_KEY and ExpectedBarcode.barcodeImageKey to ExpectedBarcode.BARCODE_IMAGE_KEY.
    • Renamed types MSIPlesseyChecksumAlgorithm to MsiPlesseyChecksumAlgorithm, EngineMode to BarcodeScannerEngineMode, Gs1HandlingMode to Gs1Handling, ValidationStatus to FieldValidationStatus and BarcodesExtensionFilter to UpcEanExtensionBehavior.
  • πŸš™ Under the hood:
    • Upgraded the native Scanbot Android SDK to v7.0.2.
    • Upgraded the native Scanbot iOS SDK to v7.0.2.
    • Upgraded nlohmann::json to 3.11.3
    • Upgraded xsimd to 13.2
    • Upgraded xtl to 0.8
    • Upgraded xtensor to 0.26-scanbot
    • Upgraded yaml-cpp to 0.8
    • Upgraded Boost to 1.88
    • Upgraded spdlog to 1.15.2
    • iOS: Upgraded CLI11 to 2.5
    • iOS: The regex filters are applied for substrings instead of the entire output string.
    • Android: Upgrade OpenCV to 4.10
    • Android: Updated Compile Sdk to 35
    • Android: Android Jetpack Compose updated to 1.7.8

Version 6.1.0 (6 December 2024):​

  • πŸŽ‰ New:
    • Added a new API, getImageData that returns a base 64 encoded representation of the image data.
    • Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32. Added literals that represent the new barcode types in BarcodeFormat.
    • Added a new optional property addAdditionalQuietZone in DetectBarcodesOnImageArguments. The default value is false.
    • Added a new property accessibilityDescription in RoundButton and ButtonConfiguration.
    • Added a new property allowEmptySubmission in MultipleScanningMode to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
    • Added new optional properties useIATA2OF5Checksum, useCode11Checksum and australiaPostCustomerFormat in BarcodeScannerConfiguration, BatchBarcodeScannerConfiguration, BarcodeRecognizerConfiguration and DetectBarcodesOnImageArguments.
    • Added the ability to display the scanned barcode's image in the RTU-UI v2 Barcode Scanner FindAndPickScanningModeUseCase by specifying ExpectedBarcode.barcodeImageKey for the expected barcode's image property.
    • Added a new type literal CONFIRMED in ValidationStatus.
    • Added a new type literal NONE in CommonFieldType.
    • iOS: Added a new property displayText in GenericDocument.Type and Field.Type.
    • iOS: Added new zoom control slider controlled by the new camera control button on all view controllers, available on all the new iPhone 16 models.
    • Android: Added support for 16KB page size (Android 15).
    • Android: Added a new property polygonInRoot in Field.
  • πŸš€ Improvements:
    • Improved detection of UPC and EAN extensions.
    • Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec barcodes.
    • For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
  • 🐞 Bug fixes:
    • Fixed KANJI mode for QR codes.
    • iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner FindAndPickScanningModeUseCase that never showed the expected barcodes title, but always the barcode value.
    • iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner FindAndPickScanningModeUseCase in button sheet mode where the counter badge was not visible.
    • iOS: Fixed a UI issue on the RTU-UI v2 Barcode Scanner's sheet screen where the subtitle label was being vertically cut off.
    • iOS: Fixed a UI issue on the RTU-UI v2 Barcode Scanner's confirmation sheet in the SingleScanningModeUseCase where the loading indicator was not centered when the loading message was hidden.
    • iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
    • iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner's finder where the background color overlapped with the line color.
    • iOS: Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
    • iOS: Fixed a bug that did not mirror the front camera as expected.
    • iOS: Fixed a crash in scanners when setting the same minZoom and maxZoom in ZoomRange.
    • Android: Fixed R8 obfuscation config for SDK logging classes.
    • Android: Minor fixes for appearance in RTU-UI v2 Barcode Scanner to make it consistent with its iOS counterpart.
    • Android: Fixed an issue with AR Overlay and barcode mapping in RTU-UI v2 Barcode Scanner, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.
  • ⚠️ Breaking Changes:
    • The application project must use Android Gradle Plugin version >= 8.4.0 or have the Kotlin plugin applied.
    • Removed property codeDensity from BarcodeScannerConfiguration, BatchBarcodeScannerConfiguration and DetectBarcodesOnImageArguments.
    • Removed DetectBarcodesOnImagesField, DetectBarcodesOnImageResult and ExtractImagesFromPdfResult interfaces.
    • Removed type literals VALIDATE and DECODE and replaced them with VALIDATE_STRUCTURE, DECODE_STRUCTURE, VALIDATE_FULL and DECODE_FULL in Gs1HandlingMode.
    • Changed the default values for properties okButton, cancelButton and actionButton in ScanbotAlertDialog.
    • Changed the default values for properties enableCameraButton and closeButton in CameraPermissionScreen.
    • Changed the default value for property visible in ArOverlayFindAndPickConfiguration to true for FindAndPickScanningMode.
    • Replaced standard and validationStatus fields with validationErrors in the GS1.Element class.
    • Renamed RootTypeName to BarcodeDocumentModelRootType and also renamed the inherited document types.
    • Android: Changed barcodesRegexFilter behavior in BarcodeRecognizerConfiguration for BarcodeScannerConfiguration config for RTU-UI v2 Barcode Scanner. Barcodes are accepted if the barcode data contains the part that matches the regex.
  • πŸš™ Under the hood:
    • Upgraded the native Scanbot Android SDK to v6.1.1.
    • Upgraded the native Scanbot iOS SDK to v6.1.1.
    • Added gs1-syntax-dictionary lib.

Version 5.1.0 (24 July 2024):​

  • πŸŽ‰ New:
    • Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Import startBarcodeScanner from capacitor-plugin-scanbot-barcode-scanner-sdk/ui_v2 to leverage the new UI. See our updated documentation for a full set of examples and use cases.
    • Added support for the MICRO_PDF_417 barcode format.
    • Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
  • πŸš€ Improvements:
    • Optimized camera preview quality and processing speed for all scanners.
    • Improved detection of UPC/EAN barcode extensions in live mode.
    • The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
    • iOS: Added support of haptic feedback on capable devices.
    • iOS: Improved speed and image quality of still image capturing.
    • iOS: Important: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
    • Android: Changed the touch to focus square in the native camera view to a circle.
  • 🐞 Bug fixes:
    • Android: Fixed issue with misaligned barcode polygons on some devices with horizontal orientation.
    • Android: For BarcodeFormat.PDF_417, a single case to generate clusters was not covered, which led to a crash.
    • Android: BarcodesExtensionFilter now accepts EAN and UPC barcodes with extensions only and all other formats without extensions.
  • ⚠️ Breaking changes:
    • Our Ready to Use UI v1 barcode scanners are now deprecated and it is highly encouraged to use the new RTU UI v2 barcode scanner API.
    • The structure of barcode formatted results has been changed from record classes to using GenericDocument. See API reference for the new structure (https://api-docs.scanbot.io/barcode-scanner-sdk/capacitor/api-docs/). This change affects RTU UI v1, however, the same structures are used across RTU UI v1 and RTU UI v2.
    • Renamed BarcodeFormat.RSS_14 to BarcodeFormat.DATABAR and BarcodeFormat.RSS_EXPANDED to BarcodeFormat.DATABAR_EXPANDED.
    • iOS: IMPORTANT: Changed the default rear cameras on all scanners to the triple or dual camera. On some devices with triple camera this results in a different view port (more zoomed in). Please make sure to adapt your zoom ranges and factors.
    • Android: Removed BarcodeFormat.CODE_25 from COMMON_CODES list.
    • Android: ZoomRange can be created with any input values but will be limited under the hood by internal MIN_ZOOM (x0.2) and MAX_ZOOM (x100) values.
  • πŸš™ Under the hood:
    • Upgraded native Scanbot Android Barcode Scanner SDK to v5.1.2.
    • Upgraded native Scanbot iOS Barcode Scanner SDK to v5.1.3.
    • iOS: Added third-party library libzueci version 1.0.0.
    • Android: Updated 3rd-party libraries: libjpeg-turbo to 2.1.5.1, libpng to 1.6.40 and libtiff to 4.6.0.
    • Android: Added more rules for R8 shrinker to work adequately with AGP >= 8.
    • Android: Updated AGP to 7.4.2, TargetSDK to 33 and Kotlin to 1.8.22.

Version 4.2.0 (13 May 2024):​

Want to scan longer than one minute?

Generate a free trial license to test the Scanbot SDK thoroughly.

Get free trial license