Skip to main content

Changelog for the Kotlin Multiplatform Data Capture Modules

tip

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

Version 10.0.0 (28 Oct 2026)​

  • 📖 Release notes:
    • Explore the release highlights and key improvements here.
  • 🎉 New:
    • General:
      • Added landscape mode support for all RTU UI screens.
      • Added forceCloseScanner to all RTU UI scanner APIs (barcode, document, mrz, check, creditCard, vin, textPattern), plus ScanbotSDK.document.forceCloseCroppingScreen and ScanbotSDK.documentDataExtractor.forceCloseExtractorScreen, to programmatically close a visible screen. The onCanceled callback is invoked when a screen is force-closed.
      • Added ScanbotSDK.mockCamera to replace the camera preview with a static image for testing. Android: Pass requestPermission = true to request the camera permission anyway.
    • Barcode Scanner:
      • 2D barcode configurations have a new field fallbackEncoding, used when the barcode doesn't specify an encoding. The default is UNKNOWN, where the SDK guesses the encoding, as in previous versions.
      • Added the selectionConfig field to BarcodeScannerConfiguration. Its selectionMethod determines whether all detected barcodes are returned (ALL), only the barcode closest to the center (CENTER_CLOSEST), or only the barcode touching the center (CENTER). For CENTER_CLOSEST and CENTER, the center point can be configured with the normalized values centerCoordX and centerCoordY (default: 0.5, 0.5). For CENTER, a centerDistanceTolerance can also be configured.
      • Added ScanbotSDK.barcode.scanFromPdf to scan barcodes from all pages of a PDF file.
      • Added the barcodeDefectProfile field (GENERIC, GENERIC_AND_THERMAL, or DEGRADED_THERMAL; default GENERIC_AND_THERMAL) to the Code 128, ITF, UPC/EAN, and common 1D barcode format configurations. It tunes the decoder for the expected type of barcode damage.
    • Check Scanner:
      • Added the ScanbotSDK.check API with an RTU UI screen via ScanbotSDK.check.startScanner and scanning from still images via ScanbotSDK.check.scanFromImage. See the Check Scanner documentation for details.
    • Credit Card Scanner:
      • Added the ScanbotSDK.creditCard API with an RTU UI screen via ScanbotSDK.creditCard.startScanner and scanning from still images via ScanbotSDK.creditCard.scanFromImage. See the Credit Card Scanner documentation for details.
    • Document Data Extractor:
      • Added the ScanbotSDK.documentDataExtractor API with an RTU UI screen via ScanbotSDK.documentDataExtractor.startExtractorScreen and extraction from still images via ScanbotSDK.documentDataExtractor.extractFromImage. See the Document Data Extractor documentation for details.
    • Document Scanner:
      • The Document Cleanup feature lets the user remove artifacts from a document by drawing over them while preserving the text.
      • Document API: Added a cleanupApplied boolean flag to the PageData class.
      • RTU UI: Added a new Document Cleanup screen as part of the document scanning flow and as a standalone screen. Start the standalone screen via ScanbotSDK.documentEnhancer.startDocumentCleanupScreen with a DocumentCleanupStandaloneConfiguration.
      • Added ScanbotSDK.document.createDocumentFromPdf to create a document from the pages of a PDF file.
    • Image Processing:
      • The stroke weight (line thickness) of binarized images with anti-aliasing enabled can now be controlled with the strokeWeight parameter.
      • Added the documentCropOptimization argument to the ScanbotImageProcessor.crop method with a default of OPTIMIZE_QUAD, which corresponds to the existing behavior (reduces the input quad by 0.5%). To turn it off, pass NONE.
    • MRZ Scanner:
      • Added the ScanbotSDK.mrz API with an RTU UI screen via ScanbotSDK.mrz.startScanner and scanning from still images via ScanbotSDK.mrz.scanFromImage. See the MRZ Scanner documentation for details.
    • PdfExtractor:
      • Added ScanbotSDK.pdfImageExtractor.extractImages to extract the page images of a PDF file as ImageRef objects.
    • Text Pattern Scanner:
    • VIN Scanner:
      • Added the ScanbotSDK.vin API with an RTU UI screen via ScanbotSDK.vin.startScanner. See the VIN Scanner documentation for details.
  • 🚀 Improvements:
    • General:
      • Android: Added an outline to keyboard-focused elements for accessibility.
      • Custom UI: BarcodeScannerCustomUI now applies the complete BarcodeScannerConfiguration (including new fields such as selectionConfig).
    • Barcode Scanner:
      • BarcodeFormatUpcEanConfiguration has a new field convertUpceToUpca, which converts the 6-digit UPC-E result into a 12-digit UPC-A result. It's false by default.
      • The DataBar and DataBar Expanded barcode configurations now support minimum and maximum text lengths. For GS1 messages, both limits apply to the parsed text.
      • In single-shot mode, larger internal image sizes are allowed for the engine modes NEXT_GEN_FAR_DISTANCE (up to 4K for the barcode detector model) and NEXT_GEN_MAX_DISTANCE (unlimited input size for the barcode detector model). Use these modes with caution, because they can require substantial memory depending on the input resolution.
      • Improved recall for heavily damaged barcodes in the Code 128, Code 39, EAN-8, and EAN-13 formats, where every single scanline is corrupted, via a new field damagedBarcodeReconstruction (enabled by default) in the barcode configurations.
      • Android: Custom UI: cameraZoomFactor in BarcodeScannerCustomUI is now applied relative to the configured cameraZoomRange instead of always using the default range of (1, 12). Unsupported zoom ranges are reported through onError.
    • Document Scanner:
      • Android: Improved TalkBack accessibility for the Review Screen zoom button.
      • Android: Stopped the page feedback animation from playing when an image is imported instead of scanned.
      • Android: Accessibility improvements to hidden and empty elements on the Review Screen.
      • RTU UI: The Review Screen toolbar is adaptive. The Add, Retake, Crop, Rotate, Cleanup, Reorder, and Delete buttons automatically collapse into a "More" pop-up menu only when they don't fit in the toolbar. The toolbar is a bottom bar in portrait and a side bar in landscape.
      • Android: Improved memory handling when using the autosnapping mechanism in the Document Scanner.
      • Android: Improved performance of the zoomable image in the Review Screen during drag actions.
      • iOS: Improved manual cropping in the RTU UI: left and right edge handles now move horizontally, while top and bottom handles move vertically. Movement stops before the crop becomes invalid or leaves the image. Snapping preserves edge length when matching detected document edges or image borders, and is skipped if the resulting crop would be invalid.
    • Image Processing:
      • Improved behavior of the ColorDocumentShadowRemovalFilter on documents with tables.
      • Binarized images with anti-aliasing enabled are more legible and have higher contrast.
  • 🐞 Bug fixes:
    • General:
      • Android: Fixed an NPE crash on finder view calculation calls from non-UI threads in the Custom UI components.
      • Android: Fixed a ConcurrentModificationException crash occurring in the Custom UI components.
      • Android: Using the same value for both the visible label and accessibilityDescription in ButtonConfiguration does not cause duplicate accessibility announcements.
      • Android: Fixed an issue where the status bar state reset after device rotation on all RTU UI screens.
    • Barcode Scanner:
      • stripCheckDigits now applies correctly to UPC and EAN formats.
      • Fixed undefined behavior for some clean input scanlines in the HMM decoder.
      • Fixed a rare bug when scanning UPC and EAN barcodes with a 5-digit (EAN-5) extension while the scanner was configured to accept only barcodes with a 2-digit extension.
      • Fixed an issue where vCards containing a colon in their value were silently ignored.
      • Fixed the orientation of quads for DataBar and DataBar Expanded barcodes with multiple stacks.
      • Fixed some duplicated results for UPC and EAN barcodes with extensions.
      • Fixed crashes when scanning Data Matrix barcodes with engineMode set to LEGACY.
      • For the Micro QR Code and rMQR Code formats, the scanner now returns rawBytesEncodings.
      • Document parser: Fixed HIBC parsing to allow a trailing slash and an alphanumeric lot number.
      • Fixed an issue where EAN-8 barcodes were returned when the EAN-8 format was disabled and damagedBarcodeReconstruction was enabled.
      • Reduced the false positive rate for corrupted barcodes in strong light.
      • Android: Fixed a potential crash during "beep" sound playback.
      • Android: Fixed a bug where barcodes weren't mapped correctly when BarcodeItemMapper was initialized.
    • Document Scanner:
      • Android: Fixed a crash when returning to the Document Scanner RTU UI after it was killed in the background.
      • Android: Fixed a bug where PageData.source wouldn't update when an image was imported in the Document Scanner RTU UI.
    • Image Processing:
      • Fixed the chessboard artifacts produced by the ColorDocumentShadowRemovalFilter on images smaller than 1 megapixel.
    • OCR Engine:
      • Fixed an issue where the allowedCharacters set was sometimes ignored.
      • Fixed an issue that could sometimes produce wrong bounding boxes.
  • ⚠️ Breaking changes:
    • General:
      • Android: Changed the accessibility announcements for buttons: TalkBack now announces only the accessibilityDescription from ButtonConfiguration, or the title if accessibilityDescription is empty.
      • Replaced the BarButtonConfiguration and PopupMenuItem configs of adaptive toolbar items with a single AdaptiveBarButtonConfiguration that combines both classes.
      • RTU UI: Renamed BottomBar to Toolbar in all configuration classes and fields.
      • RTU UI: preferredHeight was replaced with the maxWidth and maxHeight parameters in the ViewFinderConfiguration and PermanentViewFinderConfiguration.
      • iOS: Raised the minimum iOS deployment target to iOS 15.0. Apps using the SDK must now target iOS 15.0 or later.
    • Barcode Scanner:
      • The boolean enableOneDBlurScanner was replaced by the ConfigState enum blurryOneDScanner.
      • Renamed the field checksum to useCheckDigits in BarcodeFormatCode11Configuration.
    • Document Scanner:
      • Renamed the ReviewBottomBarConfiguration class and the bottomBar field to ReviewToolbarConfiguration and toolbar.
      • Moved most PopupMenuItem configs from ReviewMorePopupMenu to AdaptiveBarButtonConfiguration items in ReviewToolbarConfiguration.
      • Renamed DocumentEnhancer feature and all related classes to DocumentStraightener.
      • RTU UI: Renamed CroppingConfiguration to CroppingStandaloneConfiguration.
    • Image Processing:
      • Binarized images with anti-aliasing enabled now have higher contrast by default. To get the previous behavior, set strokeWeight=0 in the CustomBinarizationFilter's configuration. To get the previous behavior of the ScanbotBinarizationFilter, use CustomBinarizationFilter with PRESET_4 and strokeWeight=0.
  • ⚠️ Deprecations:
    • General:
      • RTU UI: TopBarMode.HIDDEN, TopBarMode.GRADIENT, ToolbarMode.HIDDEN, and ToolbarMode.GRADIENT values are deprecated.
    • Image Processing:
      • LegacyFilter is now marked as @Deprecated. It has no effect and returns the input image unchanged.
  • 🚙 Under the hood:
    • General:
      • Updated gs1-json to version 1.2.
      • Upgraded the native Scanbot Android SDK to v10.0.0.
      • Upgraded the native Scanbot iOS SDK to v10.0.1.
    • Document Scanner:
      • Android: When you create a Page object from an image, documentDetectionStatus and source are now null by default.

Want to scan longer than one minute?

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

Get free trial license

On this page