Changelog for the Kotlin Multiplatform Document Scanner SDK
tip
For additional details about the API, please refer to our API reference documentation.
Version 9.0.0 (8 Jul 2026)
- 📖 Release notes:
- Explore the release highlights and key improvements here.
- 🎉 New:
- General:
- Added property
hibernationDirectorytoSdkConfigurationto specify a custom directory for storing image reference hibernation data. - ImageRef:
optimizeproperty added toSaveImageOptionsandEncodeImageOptionsforsaveImageandencodeImagemethods. When set totrue, the encoder spends additional time to improve JPEG output quality. - Android: Added property
cameraPreviewAspectRatiotoCameraConfigurationto support different preview aspect ratios inFIT_INmode in RTU UI screens.
- Added property
- Document Scanner:
- Added
ScanbotDocumentEnhancerAPI with astraightenImagemethod that removes crinkles, creases, folds, and curl from document photos. It is enabled by default in the RTU UI and automatically applied in auto-cropping flows. See the Document Enhancer documentation for details. - Added parameter
straighteningParametersto theDocumentScannerOutputSettingsto configure the behavior of the Document Enhancer in the RTU UI Document Scanner. - Added parameter
straighteningParameterstoModifyPageOptions,AddPageOptions, andCreateDocumentOptionsto allow post processing of pages using the Document Enhancer. - Support for recognizing cropped documents.
DocumentScannerParametersnow includesalreadyCroppedScoreThreshold, andDocumentDetectionScoresnow includesalreadyCroppedScore. In single-shot mode, if no document is detected and the score exceeds this threshold, a newDocumentDetectionStatusvalueOK_BUT_ALREADY_CROPPEDis returned, along with a quad (points) corresponding to the image corners. - Added
backgroundproperty toTextButtonModeandTextWithBadgeButtonModeto configure the background style for the preview button in the RTU UI Document Scanner. - Added
straighteningParameterstoPageDatato allow storing Document Enhancer configuration in the Page. - iOS: Added
accessibilityDescriptionDocumentImagePreviewproperty toReviewScreenConfigurationto configure the accessibility description of the document image preview.
- Added
- Image Processing:
- New
ColorDocumentShadowRemovalFiltercapable of removing shadows from documents without damaging text, barcodes, or images.
- New
- Document Quality Analyzer:
- A new Document Quality Analyzer algorithm was introduced. The result object's
qualityproperty can now beACCEPTABLE,UNACCEPTABLE, orUNCERTAIN, indicating whether a user-provided document image meets the required quality standard. Advanced configuration is available using thequalityAnalysisModelparameter, which allows the Document Quality Analyzer to be fine-tuned for specific use cases using an external script. This capability is currently in closed beta. To request access and obtain the script, sign up here. - Added the
inputScalesproperty to run the model at multiple resolutions and automatically select the best result. - Added the threshold property
qualityAcceptableUncertainThresholdfor categorizing documents into three classes:ACCEPTABLE,UNACCEPTABLE, andUNCERTAIN. - Added the
inputScaleThresholdToProcessEntireImageproperty to run the Document Quality Analyzer on the entire image, even whenminProcessedFractionandmaxProcessedFractionare not equal to 1 for small input scales. - The resulting
bestInputScaleis now included in theDocumentQualityAnalyzerResultoutput. - Added
compatibilityModeproperty toDocumentQualityAnalyzerConfigurationto allow running the legacy (v8) document quality analysis engine.
- A new Document Quality Analyzer algorithm was introduced. The result object's
- Barcode Scanner:
- Added
accessibilityStateandactiveAccessibilityStateproperties for flash and flip camera buttons in the RTU UI Barcode Scanner screen. - Added a
TwoDDecodingModeto the barcode configuration. It defaults toHIGH_EFFORTand can be set toLOW_EFFORTfor very low-power devices requiring higher frame rates. - BarcodeScannerCustomUI:
- Added property
touchToFocusEnabledthat allows users to focus the camera on a specific area by tapping on the screen.
- Added property
- Added
- General:
- 🚀 Improvements:
- General:
- Improved memory usage when extracting and processing PDF pages.
- iOS: The
touchToFocusEnabledproperty in RTU UI scanner configurations, previously supported on Android only, is now supported on iOS. - iOS: Optimized still image capturing by switching to the 420YCbCr format internally.
- Document Scanner:
- Updated document detector models with improved accuracy.
- Partially visible documents are now supported in all processing modes. Auto and single-shot modes now return the
ERROR_PARTIALLY_VISIBLEdocument status when only 1–3 document corners are visible in the input image and the scanner is configured withallowPartiallyVisibleDocuments = true. - Android: Improved the behavior when the page limit was reached in the RTU UI single-page mode.
- Android: Improved the behavior of the Acknowledge Screen for more precise error hints control.
- Cropping Screen:
- Android: Added support for navigation on polygon corners with keyboard.
- Document Quality Analyzer:
- Increased the default threshold for
minRequiredOrientationConfidenceto 0.9, reducing false positives in orientation estimation. - Orientation detection now considers text at any angle, not just within ±10° of 0°, 90°, 180°, or 270°. For orientation estimation, text at any angle is rounded to the nearest multiple of 90° — for example, a 30° angle yields a predicted orientation of 0°.
- Improved performance on very bright or very dark images.
- Increased the default threshold for
- OCR Engine:
- New model with better performance for German diacritics and ß/ẞ recognition.
- Added support for Turkish, Polish, Italian, and Romanian alphabets.
- Increased accuracy without increasing inference time.
- Barcode Scanner:
- Enhanced accessibility of the zoom button in the RTU UI Barcode Scanner screen.
- Clean barcodes (QR Code, DataMatrix, and all 1D formats) are detected faster in single-shot mode and can be detected without a quiet zone.
- Significantly improved decoding performance for truncated PDF417 barcodes.
- Reduced the false positive rate for barcode formats EAN-8, EAN-13, and UPC-A when
enableOneDBlurScanneris enabled (now the default). - Improved recall and precision for barcode formats EAN-8, EAN-13, UPC-A, and UPC-E when ink spread is present.
- Data Matrix codes can now be scanned under harsher conditions. With
HIGH_EFFORTenabled, scanning works even on curved surfaces or when the code is partially occluded. - Reduced the number of false-positive Codabar barcodes when scanning in live mode and the barcode is only partially visible.
- General:
- 🐞 Bug fixes:
- General:
- Android: Fixed a crash with
saveofImageRefwhen default Android encryption was enabled. - Android: Fixed RTU UI top bars behavior with hidden back buttons.
- Android: Fixed incorrect viewfinder aspect ratio calculations when
cameraPreviewModewas set toFIT_IN.
- Android: Fixed a crash with
- Document Scanner:
- Android: Fixed a bug with incorrect page number badge behavior in the RTU UI Document Scanner.
- Android: Fixed
SnapButtonclick in TalkBack mode in RTU UI scanner screen. - Android: Fixed reduced preview image quality when zoomed in on the Review Screen.
- iOS: Fixed an iPad layout issue with the RTU UI Acknowledge Screen.
- iOS: Fixed an issue where the auto-rotation feature would incorrectly rotate certain kinds of images by 180 degrees.
- iOS: Fixed an issue in the RTU UI Document Scanner where the user could become stuck on the camera screen when the
pageCountLimitwas set to 1.
- PDF & TIFF Generation:
- iOS: Fixed an issue where JPEG compression was applied twice to images being rendered to a PDF.
- Document Quality Analyzer:
- Fixed
ProcessByTileConfiguration.enabledbeing ignored regardless of its value.
- Fixed
- Barcode Scanner:
- Fixed an arithmetic exception occurring when processing images with very small heights (lower than 5 px) in single-shot mode.
- Fixed the orientation of quads for barcode formats DataBar and DataBar Expanded with multiple stacks.
- Fixed a rare issue with the DataBar barcode format, which could lead to a crash.
- iOS: Fixed a crash on iPhone SE when switching to the front camera.
- iOS: Fixed an issue in the RTU UI Barcode Scanner screen where the confirmation alert would reappear upon tapping the submit button while in Find & Pick mode.
- BarcodeScannerCustomUI:
- iOS: Fixed an issue where the Barcode Scanner stopped scanning when a modal view controller was presented on top of it.
- General:
- ⚠️ Breaking changes:
- General:
- All APIs that receive or return normalized coordinates of points assume that normalization is performed by dividing image coordinates by (width - 1, height - 1) instead of
(width, height). This ensures that rotation operations that are performed on the normalized coordinates are mathematically correct. Callers that call functions that receive normalized coordinates or process results with normalized points and perform conversion on their own should adjust their implementations.
- All APIs that receive or return normalized coordinates of points assume that normalization is performed by dividing image coordinates by (width - 1, height - 1) instead of
- Document Scanner:
- Removed
AcknowledgementScreenConfiguration.minimumQualityparameter. Use DoQA configuration to change document acceptance levels. - Updated the Acknowledge Screen logic in the RTU UI Document Scanner to properly handle document quality scenarios. The
unacceptableQualityacknowledgment mode now shows the Acknowledge Screen for "document not found" cases whendocumentNotFoundWarning.visibleis configured totrue. This may change the behavior for applications relying on the previous logic where "document not found" cases were always bypassed inunacceptableQualitymode. - Improved the button visibility logic on the Acknowledge Screen. The proceed anyway button visibility now correctly considers both the specific button configuration and the global
proceedAnywayButton.visiblesetting. This may affect existing configurations that rely on the previous behavior. By default, when the image is unacceptable, the proceed anyway button is no longer shown unless explicitly configured to be visible (seescreens.camera.acknowledgement.bottomBar.proceedAnywayButton.unacceptableQuality). - Removed
AcknowledgementScreenConfiguration.badImageHintparameter. UsedocumentNotFoundWarning,uncertainQualityWarning, andunacceptableQualityWarningparameters to control the hints shown in the Acknowledge Screen. - Strings were introduced for the Acknowledge Screen in the RTU UI Document Scanner to support the new document quality scenarios. Update custom translations for the Acknowledge Screen to include these strings:
proceedAnywayButtonDocumentNotFound,proceedAnywayButtonUnacceptableQuality,proceedAnywayButtonUncertainQuality,acknowledgementWarningDocumentNotFound,acknowledgementWarningUnacceptableQuality, andacknowledgementWarningUncertainQuality. - Renamed the
stylefield totitleinTextWithBadgeButtonModeand thetextfield totitleinTextButtonMode.
- Removed
- PDF & TIFF Generation:
- When adding a PNG file to a PDF, the image is now always re-encoded as JPEG. Previously, this occurred only in specific situations.
- Document Quality Analyzer:
- The configuration properties
qualityThresholdsandqualityIndiceshave been renamed toqualityLevelThresholdsandqualityLevelIndices. The renamed properties are now deprecated; use the newqualityAnalysisModelproperty instead. - The
detectOrientationoption has been removed. Orientation detection now always runs. - The
inspectSmallTextoption has been removed.
- The configuration properties
- General:
- ⚠️ Deprecations:
- Document Quality Analyzer:
- The
DocumentQualityenum and result object property are deprecated; useDocumentQualityAssessmentinstead. - The
DocumentQualityAnalyzerResult.documentFoundproperty is now deprecated. This deprecated property indicates if too few characters are detected. The newDocumentQualityAssessmentwill be reported asUNCERTAINin this situation. If this is not suitable for your use case, consider using the Document Scanner instead to determine if an image contains a document. In the RTU UI Document Scanner, thedocumentNotFoundWarningcase is now based on the Document Scanner output. qualityLevelThresholdsandqualityLevelIndicesare deprecated (see Breaking changes).
- The
- Document Quality Analyzer:
- 🚙 Under the hood:
- Upgraded the native Scanbot Android SDK to v9.0.1.
- Upgraded the native Scanbot iOS SDK to v9.0.1.
- Updated
magic_enumto version 0.9.7. - Added a new barcode decoding model, increasing SDK size by approximately 650 KB.
- Android: Updated the CameraX library to version 1.6.0 for improved camera performance and compatibility. Update to this version to prevent potential crashes on Android 17 devices.
- Android: Added
org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.7.3dependency (a stub library for resolving the CameraX dependency with Guava). - Android: Improved lifecycle handling with
ScanbotCameraX. - Android: Removed
androidx.legacy:legacy-support-v4andandroidx.fragment:fragment-ktxfrom the Scanbot SDK dependencies. - Android: Document Scanner RTU UI now includes an additional asset dependency
io.scanbot:sdk-document-enhancer-assetsby default.
Version 8.0.0 (18 May 2026)
- Initial release of the Kotlin Multiplatform Document Scanner SDK.
- Runs fully offline.
- Supports Android and iOS platforms.
- Supports integration with both Kotlin Multiplatform and Compose Multiplatform applications.
- 🚙 Under the hood:
- Uses Scanbot SDK for Android v8.0.1.
- Uses Scanbot SDK for iOS v8.0.6.
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
