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
forceCloseScannerto all RTU UI scanner APIs (barcode,document,mrz,check,creditCard,vin,textPattern), plusScanbotSDK.document.forceCloseCroppingScreenandScanbotSDK.documentDataExtractor.forceCloseExtractorScreen, to programmatically close a visible screen. TheonCanceledcallback is invoked when a screen is force-closed. - Added
ScanbotSDK.mockCamerato replace the camera preview with a static image for testing. Android: PassrequestPermission = trueto 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 isUNKNOWN, where the SDK guesses the encoding, as in previous versions. - Added the
selectionConfigfield toBarcodeScannerConfiguration. ItsselectionMethoddetermines whether all detected barcodes are returned (ALL), only the barcode closest to the center (CENTER_CLOSEST), or only the barcode touching the center (CENTER). ForCENTER_CLOSESTandCENTER, the center point can be configured with the normalized valuescenterCoordXandcenterCoordY(default:0.5,0.5). ForCENTER, acenterDistanceTolerancecan also be configured. - Added
ScanbotSDK.barcode.scanFromPdfto scan barcodes from all pages of a PDF file. - Added the
barcodeDefectProfilefield (GENERIC,GENERIC_AND_THERMAL, orDEGRADED_THERMAL; defaultGENERIC_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.
- 2D barcode configurations have a new field
- Check Scanner:
- Added the
ScanbotSDK.checkAPI with an RTU UI screen viaScanbotSDK.check.startScannerand scanning from still images viaScanbotSDK.check.scanFromImage. See the Check Scanner documentation for details.
- Added the
- Credit Card Scanner:
- Added the
ScanbotSDK.creditCardAPI with an RTU UI screen viaScanbotSDK.creditCard.startScannerand scanning from still images viaScanbotSDK.creditCard.scanFromImage. See the Credit Card Scanner documentation for details.
- Added the
- Document Data Extractor:
- Added the
ScanbotSDK.documentDataExtractorAPI with an RTU UI screen viaScanbotSDK.documentDataExtractor.startExtractorScreenand extraction from still images viaScanbotSDK.documentDataExtractor.extractFromImage. See the Document Data Extractor documentation for details.
- Added the
- 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
cleanupAppliedboolean flag to thePageDataclass. - 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.startDocumentCleanupScreenwith aDocumentCleanupStandaloneConfiguration. - Added
ScanbotSDK.document.createDocumentFromPdfto 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
strokeWeightparameter. - Added the
documentCropOptimizationargument to theScanbotImageProcessor.cropmethod with a default ofOPTIMIZE_QUAD, which corresponds to the existing behavior (reduces the input quad by 0.5%). To turn it off, passNONE.
- The stroke weight (line thickness) of binarized images with anti-aliasing enabled can now be controlled with the
- MRZ Scanner:
- Added the
ScanbotSDK.mrzAPI with an RTU UI screen viaScanbotSDK.mrz.startScannerand scanning from still images viaScanbotSDK.mrz.scanFromImage. See the MRZ Scanner documentation for details.
- Added the
- PdfExtractor:
- Added
ScanbotSDK.pdfImageExtractor.extractImagesto extract the page images of a PDF file asImageRefobjects.
- Added
- Text Pattern Scanner:
- Added the
ScanbotSDK.textPatternAPI with an RTU UI screen viaScanbotSDK.textPattern.startScanner. See the Text Pattern Scanner documentation for details.
- Added the
- VIN Scanner:
- Added the
ScanbotSDK.vinAPI with an RTU UI screen viaScanbotSDK.vin.startScanner. See the VIN Scanner documentation for details.
- Added the
- General:
- 🚀 Improvements:
- General:
- Android: Added an outline to keyboard-focused elements for accessibility.
- Custom UI:
BarcodeScannerCustomUInow applies the completeBarcodeScannerConfiguration(including new fields such asselectionConfig).
- Barcode Scanner:
BarcodeFormatUpcEanConfigurationhas a new fieldconvertUpceToUpca, which converts the 6-digit UPC-E result into a 12-digit UPC-A result. It'sfalseby 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) andNEXT_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:
cameraZoomFactorinBarcodeScannerCustomUIis now applied relative to the configuredcameraZoomRangeinstead of always using the default range of (1, 12). Unsupported zoom ranges are reported throughonError.
- 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
ColorDocumentShadowRemovalFilteron documents with tables. - Binarized images with anti-aliasing enabled are more legible and have higher contrast.
- Improved behavior of the
- General:
- 🐞 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
ConcurrentModificationExceptioncrash occurring in the Custom UI components. - Android: Using the same value for both the visible label and
accessibilityDescriptioninButtonConfigurationdoes 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:
stripCheckDigitsnow 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
engineModeset toLEGACY. - 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
damagedBarcodeReconstructionwas 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
BarcodeItemMapperwas 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.sourcewouldn't update when an image was imported in the Document Scanner RTU UI.
- Image Processing:
- Fixed the chessboard artifacts produced by the
ColorDocumentShadowRemovalFilteron images smaller than 1 megapixel.
- Fixed the chessboard artifacts produced by the
- OCR Engine:
- Fixed an issue where the
allowedCharactersset was sometimes ignored. - Fixed an issue that could sometimes produce wrong bounding boxes.
- Fixed an issue where the
- General:
- ⚠️ Breaking changes:
- General:
- Android: Changed the accessibility announcements for buttons: TalkBack now announces only the
accessibilityDescriptionfromButtonConfiguration, or thetitleifaccessibilityDescriptionis empty. - Replaced the
BarButtonConfigurationandPopupMenuItemconfigs of adaptive toolbar items with a singleAdaptiveBarButtonConfigurationthat combines both classes. - RTU UI: Renamed
BottomBartoToolbarin all configuration classes and fields. - RTU UI:
preferredHeightwas replaced with themaxWidthandmaxHeightparameters in theViewFinderConfigurationandPermanentViewFinderConfiguration. - iOS: Raised the minimum iOS deployment target to iOS 15.0. Apps using the SDK must now target iOS 15.0 or later.
- Android: Changed the accessibility announcements for buttons: TalkBack now announces only the
- Barcode Scanner:
- The boolean
enableOneDBlurScannerwas replaced by theConfigStateenumblurryOneDScanner. - Renamed the field
checksumtouseCheckDigitsinBarcodeFormatCode11Configuration.
- The boolean
- Document Scanner:
- Renamed the
ReviewBottomBarConfigurationclass and thebottomBarfield toReviewToolbarConfigurationandtoolbar. - Moved most
PopupMenuItemconfigs fromReviewMorePopupMenutoAdaptiveBarButtonConfigurationitems inReviewToolbarConfiguration. - Renamed
DocumentEnhancerfeature and all related classes toDocumentStraightener. - RTU UI: Renamed
CroppingConfigurationtoCroppingStandaloneConfiguration.
- Renamed the
- Image Processing:
- Binarized images with anti-aliasing enabled now have higher contrast by default. To get the previous behavior, set
strokeWeight=0in theCustomBinarizationFilter's configuration. To get the previous behavior of theScanbotBinarizationFilter, useCustomBinarizationFilterwithPRESET_4andstrokeWeight=0.
- Binarized images with anti-aliasing enabled now have higher contrast by default. To get the previous behavior, set
- General:
- ⚠️ Deprecations:
- General:
- RTU UI:
TopBarMode.HIDDEN,TopBarMode.GRADIENT,ToolbarMode.HIDDEN, andToolbarMode.GRADIENTvalues are deprecated.
- RTU UI:
- Image Processing:
LegacyFilteris now marked as@Deprecated. It has no effect and returns the input image unchanged.
- General:
- 🚙 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
Pageobject from an image,documentDetectionStatusandsourceare nownullby default.
- Android: When you create a
- General:
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get free trial licenseScanbot SDK is part of the Apryse SDK product family
A mobile scan is just the start. With Apryse SDKs, you can expand mobile workflows into full cross‑platform document processing. Whether you need to edit PDFs, add secure digital signatures, or use a fast, customizable document viewer and editor, Apryse gives you the tools to build powerful features quickly.
Learn more
