Changelog | Capacitor Barcode Scanner
tip
For additional details about the API, please refer to our API reference documentation.
Version 7.1.1 (5 Nov 2025)
- 🎉 New:
- Barcode Scanner:
- Barcode configurations for 1D barcode types have a new field
minimumNumberOfRequiredFramesWithEqualRecognitionResultthat requires this number of frames on which the barcode has to be detected.
- Barcode configurations for 1D barcode types have a new field
- Barcode Scanner:
- 🐞 Bug fixes:
- General:
- Android: Fixed 16 kb page size support for TFLite native library.
- General:
- ⚠️ Breaking changes:
- Barcode Scanner:
- The field
minConfirmationsStandaloneEANinBarcodeAccumulationConfigurationwas moved and renamed to the fieldminimumNumberOfRequiredFramesWithEqualRecognitionResultExtensionlessinBarcodeFormatUpcEanConfiguration.
- The field
- Barcode Scanner:
- 🚙 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:
BarcodeItemhas new properties:- extendedQuad and extendedQuadNormalized that represent extended quads for 1D barcodes.
- rawBytesEncodings that contains the precise character encoding information of
rawBytes. - structuredAppendInfo that contains the messages split across multiple barcodes.
- globalIndex to identify a barcode across multiple frames.
BarcodeScannerUiResulthas a new property selectedZoomFactor to retrieve the zoom factor used for the barcode scanning.BarcodeScannerConfigurationhas a new property accumulationConfig that allows the accumulation of barcodes over multiple frames in live mode.CameraConfigurationhas 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:
ScanbotBarcodeSdkConfigurationhas 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).
- Barcode Scanner:
- 🚀 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.
- All Barcode AR overlays are now based on
- 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).
- Barcode Scanner:
- 🐞 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
FNkey asFormattedName. - 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
useCameraXproperty fromScanbotBarcodeSdkConfiguration.
- Android: Removed
- General:
- 🚙 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) andPZN7. - 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
returnBarcodeImageproperty. 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
strictModefor 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 supportstrictModeforQR_CODE,MICRO_QR_CODE,RMQR_CODE,PDF_417,MICRO_PDF417andGS1_COMPOSITE. - Android: Added an option to the RTU-UI v2 Barcode Scanner screen for keeping the screen on. Use
BarcodeScannerScreenConfiguration.keepScreenOnto control this function.
- Added support of new barcode formats that are used in the pharmaceutical industry:
- 🚀 Improvements:
- Improved quiet zone checks for the barcode formats
ITF,CODE_11,MSI_PLESSEY,IATA_2_OF_5,INDUSTRIAL_2_OF_5andCODE_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
QRcode recognition, more tolerance for destroyed or missing timing patterns and alignment patterns and a better performance on artisticQRcodes. QRcodes with non-square finder patterns andQRcodes 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).
- Improved quiet zone checks for the barcode formats
- 🐞 Bug fixes:
- Fixed checksum for
CODE_39barcode 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_CODEbarcode format with wrong bits in numeric mode. - Android: Fixed
minimumTextLengthforITFbarcode 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.addAdditionalQuietZoneis 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.barcodeItemImageVisiblewas not properly applied. - Android: RTU-UI v2: fixed accessibility content for action buttons.
- Fixed checksum for
- ⚠️ Breaking Changes:
- No need for specific import from
capacitor-plugin-scanbot-barcode-scanner-sdk/ui_v2. Everything should be imported from the defaultcapacitor-plugin-scanbot-barcode-scanner-sdkpath. - Removed
startBarcodeScanner,closeBarcodeScanner,startBatchBarcodeScannerandcloseBatchBarcodeScannerdeprecated APIs along with all related types. startBarcodeScannerAPI is part ofScanbotBarcodeSDKobject. The input configuration and result objects are changed. See more here: ScanbotBarcodeSDK.startBarcodeScanner.initializeSdkAPI now returns a result of typeLicenceInfoResultinstead of a status.- The input parameters and result objects for
detectBarcodesOnImageAPI 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,BarcodeScannerEngineModeandFieldValidationStatushave been modified. - Replaced
BarcodeTypewithBarcodeFormat. - Renamed type
BarcodeScannerConfigurationtoBarcodeScannerScreenConfiguration. - Renamed types
BarcodeMappedData.barcodeImageKeytoBarcodeMappedData.BARCODE_IMAGE_KEYandExpectedBarcode.barcodeImageKeytoExpectedBarcode.BARCODE_IMAGE_KEY. - Renamed types
MSIPlesseyChecksumAlgorithmtoMsiPlesseyChecksumAlgorithm,EngineModetoBarcodeScannerEngineMode,Gs1HandlingModetoGs1Handling,ValidationStatustoFieldValidationStatusandBarcodesExtensionFiltertoUpcEanExtensionBehavior.
- No need for specific import from
- 🚙 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,
getImageDatathat 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
addAdditionalQuietZoneinDetectBarcodesOnImageArguments. The default value is false. - Added a new property
accessibilityDescriptioninRoundButtonandButtonConfiguration. - Added a new property
allowEmptySubmissioninMultipleScanningModeto allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2. - Added new optional properties
useIATA2OF5Checksum,useCode11ChecksumandaustraliaPostCustomerFormatinBarcodeScannerConfiguration,BatchBarcodeScannerConfiguration,BarcodeRecognizerConfigurationandDetectBarcodesOnImageArguments. - Added the ability to display the scanned barcode's image in the RTU-UI v2 Barcode Scanner
FindAndPickScanningModeUseCaseby specifyingExpectedBarcode.barcodeImageKeyfor the expected barcode's image property. - Added a new type literal
CONFIRMEDinValidationStatus. - Added a new type literal
NONEinCommonFieldType. - iOS: Added a new property
displayTextinGenericDocument.TypeandField.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
polygonInRootinField.
- Added a new API,
- 🚀 Improvements:
- Improved detection of
UPCandEANextensions. - Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec barcodes.
- For
CODE_128andITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- Improved detection of
- 🐞 Bug fixes:
- Fixed KANJI mode for QR codes.
- iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner
FindAndPickScanningModeUseCasethat never showed the expected barcodes title, but always the barcode value. - iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner
FindAndPickScanningModeUseCasein 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
SingleScanningModeUseCasewhere 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
minZoomandmaxZoominZoomRange. - 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
codeDensityfromBarcodeScannerConfiguration,BatchBarcodeScannerConfigurationandDetectBarcodesOnImageArguments. - Removed
DetectBarcodesOnImagesField,DetectBarcodesOnImageResultandExtractImagesFromPdfResultinterfaces. - Removed type literals
VALIDATEandDECODEand replaced them withVALIDATE_STRUCTURE,DECODE_STRUCTURE,VALIDATE_FULLandDECODE_FULLinGs1HandlingMode. - Changed the default values for properties
okButton,cancelButtonandactionButtoninScanbotAlertDialog. - Changed the default values for properties
enableCameraButtonandcloseButtoninCameraPermissionScreen. - Changed the default value for property
visibleinArOverlayFindAndPickConfigurationto true forFindAndPickScanningMode. - Replaced
standardandvalidationStatusfields withvalidationErrorsin theGS1.Elementclass. - Renamed
RootTypeNametoBarcodeDocumentModelRootTypeand also renamed the inherited document types. - Android: Changed
barcodesRegexFilterbehavior inBarcodeRecognizerConfigurationforBarcodeScannerConfigurationconfig 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
startBarcodeScannerfromcapacitor-plugin-scanbot-barcode-scanner-sdk/ui_v2to leverage the new UI. See our updated documentation for a full set of examples and use cases. - Added support for the
MICRO_PDF_417barcode format. - Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Import
- 🚀 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:
BarcodesExtensionFilternow 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_14toBarcodeFormat.DATABARandBarcodeFormat.RSS_EXPANDEDtoBarcodeFormat.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_25fromCOMMON_CODESlist. - 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):
- 🎉 First release of the Scanbot Capacitor Barcode Scanner SDK!
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get free trial license