Changelog for the Android Document Scanner SDK
tip
For additional details about the API, please refer to our API reference documentation.
Version 7.1.2 (15 Oct 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:
- 🚀 Improvements:
- Check Scanner:
- Improve handling of scanning result when
DetectionMode.DETECT_AND_CROPis set. - Now extracts the field after the account number on US checks. The name in the result is
CheckNumber. Note that this name is only based on common usage and not on any enforced standard. - Updated US check field documentation.
- Improve handling of scanning result when
- Check Scanner:
- 🐞 Bug fixes:
- Check Scanner:
- Fixed a bug in the implementation of the US check standard which lead to rejection of valid checks.
- Document Scanner:
- Fixed issue with empty
documentQualitywhenscreens.camera.acknowledgement.acknowledgementMode = AcknowledgementMode.BAD_QUALITY. - Fixed a bug where the usage guidance wouldn't show properly on screen startup.
- Fixed image size on review screen when screen is in horizontal layout.
- Fixed issue with empty
- General:
- Fixed 16 kb page size support for TFLite native library.
- Check Scanner:
- ⚠️ Breaking changes:
- Barcode Scanner:
- The field
minConfirmationsStandaloneEANinBarcodeAccumulationConfigurationwas moved and renamed to the fieldminimumNumberOfRequiredFramesWithEqualRecognitionResultExtensionlessinBarcodeFormatUpcEanConfiguration.
- The field
- Barcode Scanner:
Version 7.1.1 (27 Aug 2025)
- 🎉 New:
- General:
- Added setters for
UseCaseResolutionSizelimits for Preview and Analyzer use-cases inScanbotCameraXView. SeeScanbotCameraXView#setPreviewFrameResolutionLimit(limit: UseCaseResolutionSize)andScanbotCameraXView#setAnalyzerFrameResolutionLimit(limit: UseCaseResolutionSize).
- Added setters for
- General:
- 🚀 Improvements:
- Barcode Scanner:
- Improved handling of back action with multiple dialogs and bottom sheets.
- Document Scanner:
- Don't rotate images if they are initially detected as rotated by 180 degrees.
- General:
- Changed permission on mock camera to
android.permission.READ_EXTERNAL_STORAGE. - Optimized the selection of the resolution for the Preview use-case in
ScanbotCameraXView. Square resolution support is now an opt-in option. SeeIScanbotCameraView#setSquareFrameSizeEnabled(enabled: Boolean).
- Changed permission on mock camera to
- Barcode Scanner:
- 🐞 Bug fixes:
- MRZ Scanner:
- MRZ Scanner RTU UI v1: fixed kotlin compatibility issue.
- Document Scanner:
- Document Scanner RTU UI v2: fixed the screen behavior on multiple manual snaps in "single page" mode.
- Document Scanner RTU UI v2: fixed an issue where autofocus failed during the autosnap event.
- Barcode Scanner:
- Fixed an issue where the
extractedDocumentwas not being generated for GS1 HandlingDecodeStructureandDecodeFull. - Barcode Scanner RTU UI v2: fixed an issue where the back button navigation did not work.
- Fixed an issue where the
- Credit Card Scanner:
- Fixed an issue where an invalid status was not being returned when the frame accumulator confirmed an invalid field.
- General:
- Fixed an issue with the black preview in
ScanbotCameraXViewwhen the camera selected a square resolution on some Samsung and Xiaomi devices. - Prevent throwing exception when
/sys/devices/system/cpu/cpufreqdoesn't exist.
- Fixed an issue with the black preview in
- MRZ Scanner:
- 🚙 Under the hood:
- Added 3rd party PdfiumAndroid library.
Version 7.1.0 (24 Jul 2025)
- 🎉 New:
- Document Scanner:
- RTU-UI v2: Added parameter
DocumentScanningFlow.showReviewScreenOnStartthat allows showing the Review Screen immediately if the scanner is opened with an existent document ID. E.g. document edit mode. - RTU-UI v2: Added an option to automatically navigate to the Review Screen after each scan. Use
DocumentScanningFlow().screens.camera.openReviewAfterEachScan = true. - RTU-UI v2: Added an option to open either the first or the last page when the Review Screen is opened. Use
DocumentScanningFlow().screens.review.showLastPageWhenAdding = true.
- RTU-UI v2: Added parameter
- VIN Scanner:
- RTU-UI v2: Added a brand-new, redesigned VIN Scanner. Use
io.scanbot.sdk.ui_v2.vin.VinScannerActivity.
- RTU-UI v2: Added a brand-new, redesigned VIN Scanner. Use
- Document Data Extractor:
- RTU-UI v2: Added a brand-new, redesigned Document Data Extractor. Use
io.scanbot.sdk.ui_v2.documentdata.DocumentDataExtractorActivityto start the new scanner. - Introduced a Document Verification API including document semantics verification capabilities. Use the new
verifyDocument(documentParts: List<GenericDocument>)method. - Added support for multiple new document types:
- ID Cards from Brazil, Hong Kong, Macao, and China.
- Chinese Entry and Exit Permits.
- Returns the issuing series of German ID Cards as part of the returned document as the
Seriesfield. - Now supports the front side of many more EU driver's licenses.
- Partial support for parsing of German addresses. For respective ID cards, address parsing can be enabled via a new
DeAddressParserConfiguration. Parsed addresses are stored as child documents.
- RTU-UI v2: Added a brand-new, redesigned Document Data Extractor. Use
- Check Scanner:
- RTU-UI v2: Added a brand-new, redesigned Check Scanner. Use
io.scanbot.sdk.ui_v2.check.CheckScannerActivity.
- RTU-UI v2: Added a brand-new, redesigned Check Scanner. Use
- Barcode Scanner:
- Added
extendedQuadandextendedQuadNormalizedfields to theBarcodeItemclass to represent extended quads for 1D barcodes. BarcodeItemhas a new fieldrawBytesEncodingsthat contains the precise character encoding information ofrawBytes.BarcodeItemhas a new fieldstructuredAppendInfofor messages split across multiple barcodes.BarcodeScannerConfigurationhas a new fieldaccumulationConfigwhich allows the accumulation of barcodes over multiple frames in live mode.BarcodeItemhas a new fieldglobalIndexto identify a barcode across multiple frames.- RTU-UI v2: Added
selectedZoomFactor: Doublemetadata field inBarcodeScannerUiResultwith the value that the user used to scan the barcode.
- Added
- General:
- Added an analytics feature. You can now subscribe to events and redirect them to an external analytics system. Use
ScanbotSDK(context).analyticsManager. ImageRefin Java wrapper can now be efficiently created from ajava.io.InputStream.- Added
setImageCaptureEnabled(enabled: Boolean)method toScanbotCameraXViewto enable or disable image capture functionality. - Added more debug level logging to
ScanbotCameraXViewevents. - Added the possibility to inject an image to simulate a video stream and a captured image to any scanner's camera session for UI testing. See
ScanbotCameraViewConfigurationProvider. - Integrated Android Performance Hint Session. This significantly improves multithreading performance for different scanners on devices that support the Hint Session (e.g. Pixel 9 Pro and Samsung S24 Ultra). Use
ScanbotSDKInitializer.setPerformanceHintApiEnabled(false)to turn it off. - Added option for rtu-ui-v2
CameraConfigurationfor limit the detection fps inScanbotCameraXView. UseCameraConfiguration.fpsLimit = 4to limit the detection fps to less than 4 frames per second.
- Added an analytics feature. You can now subscribe to events and redirect them to an external analytics system. Use
- Document Scanner:
- 🚀 Improvements:
- Document Scanner:
- Increased performance for Document Scanner algorithms.
- Document Quality Analyzer:
- Speed improvements. Note: document quality scores may slightly change for the same input images when compared to the previous version of the DoQA.
- OCR Engine:
- Improved handling of special characters like umlauts when frame accumulation is used.
- MRZ Scanner:
- On US border crossing permits, the document number is now returned in the correct field.
- Dates in MRZ now also support
parsedDatacorrectly.
- Text Pattern Scanner:
- General speed improvements.
- Now supports XNNPACK for faster inference.
- Document Data Extractor:
- General speed improvements.
- Now detects whether a document is in focus and only starts the heavy recognition pipeline when image quality is suitable.
- Can now detect glare in images. Fields obstructed by glare will be returned with a validation status of
Obstructed. - Classification for documents with MRZ is more stable.
- Added normalization before date recognition.
- More consistent usage of common field types.
- Improved maiden name processing for DePassport and DeIdCard.
- Now also supports the new German ID card format issued starting 2024.
- Check Scanner:
- If image cropping is enabled and is successful, check recognition is performed on the crop instead of the original image.
- Credit Card Scanner:
- Support for credit cards with an expiry date above the card number.
- Support for credit cards with a name written on two lines.
- Medical Certificate Scanner:
- Date recognition in Medical Certificate forms is now based on the Scanbot OCR Engine and shows significant quality 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.
- vCard document parser was improved.
- All Barcode AR overlays are now based on
- Android: Improved
ScanbotCameraXViewpreview size selection strategy for the square screens. - 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. This significantly improves multithreading performance for some scanners (e.g. Credit Card Scanner and Barcode Scanner) on devices that support the Hint Session (e.g. Pixel 9 Pro and Samsung S24 Ultra).
- Document Scanner:
- 🐞 Bug Fixes:
- Document Scanner:
- RTU-UI v2: Fixed an issue where the last scanned page's preview would not update on a specific layout configuration.
- RTU-UI v2: Fixed an issue where the start of the activity without initializing the Scanbot SDK was leading to an application crash.
- RTU-UI v2: Auto-rotation is now applied only if the document was found in the snapped image.
- RTU-UI v1: Fixed insets for the shutter button when the app is built with
target_sdk >= 35. - Cropping View: Fixed an issue with a broken layout after screen rotation without recreating the view.
- MRZ Scanner:
- Fixed an issue causing
nullto be returned as a confidence of empty fields.
- Fixed an issue causing
- Document Data Extractor:
- When
IssuerNumberis excluded on European health insurance cards, this no longer leads to theIssuerNamebeing incorrectly excluded. - MRZ fallback now also works when no accepted document types are selected.
- When
- Credit Card Scanner:
- Setting the confirmation method to
INTERPOLATEwhen scanning credit cards no longer results in unsuccessful recognitions if all data was extracted and verified. - Returns the correct scanning status if no fields are recognized.
- Setting the confirmation method to
- Barcode Scanner:
- The carrier identifier for MaxiCode mode 3 might be encoded by using different codewords. Now, all possible codewords are checked.
- vCard document parser now correctly processes the "FN" key as FormattedName.
- General:
- Fixed a rare division by zero crash in Credit Card Scanner, Document Data Extractor, and MRZ Scanner.
- RTU-UI v2: Fixed handling of the back actions for modal dialogs.
- Fixed a bug when
CameraTakePictureCallback.onTakePictureRequested()wasn't called properly at the corresponding event.
- Document Scanner:
- ⚠️ Breaking changes:
- Document Data Extractor:
- Removed the legacy RTU-UI Document Data Extractor. Use RTU-UI v2 instead.
- By default, only German documents are now enabled for scanning. Previously, all supported documents were enabled.
DeDriverLicenseFrontandDeDriverLicenseBackare renamed toEuropeanDriverLicenseFrontandEuropeanDriverLicenseBackrespectively.
- Barcode Scanner:
BarcodePolygonsView.BarcodeItemViewBinder.bindView(): Added an additional property withtextViewStyle.
- Removed
ScanbotSdkInitializer.useCameraXRtuUi().
- Document Data Extractor:
- 🚙 Under the hood:
- Added flatbuffers 2.0.6.
Version 7.0.3 (3 Jun 2025)
- 🎉 New:
- Added an option to limit the analyzer FPS processing for
DocumentScannerView,BarcodeScannerViewandBarcodeScanAndCountView. See more hereICameraViewConfiguration#setAnalyzerFpsLimit(fps: Float).
- Added an option to limit the analyzer FPS processing for
- 🚀 Improvements:
- Updated custom
ScanbotCameraXConfigProviderlogic for Kiron devices.
- Updated custom
Version 7.0.2 (27 May 2025)
- 🎉 New:
- PDF & TIFF Generation:
- Added source OCR Page as an optional input parameter to PDF Generator.
- PDF & TIFF Generation:
- 🚀 Improvements:
- PDF & TIFF Generation:
- PDF Generator with OCR layer now handles non-ASCII characters correctly.
- Barcode Scanner:
- GS1 Composite codes are now processed faster in Scan from Image mode.
- RTU-UI v2: Added ability to force close opened scanner screens by local intent.
- PDF & TIFF Generation:
- 🐞 Bug Fixes:
- Document Scanner:
- RTU-UI v2: Removed accessibility container for user guidance image.
- MRZ Scanner:
- Scanning from still images now correctly returns
MrzScannerResult.successas true.
- Scanning from still images now correctly returns
- Barcode Scanner:
- Fixed a crash that occurred when parsing an HIBC document.
- RTU-UI v2: Fixed a crash with barcode launcher initialization when the SDK was not yet initialized.
- Fixed the camera preview size selection algorithm for
ScanbotCameraXViewwith a square aspect ratio.
- Document Scanner:
- ⚠️ Breaking changes:
- MRZ Scanner:
- Removed outdated
detectMrz: Booleanflag fromscanInArea()methods.
- Removed outdated
- MRZ Scanner:
- 🚙 Under the hood:
- Updated Boost C++ version to 1.88.0.
- Updated spdlog version to 1.15.2.
- Updated xsimd version to 13.2.0.
- Updated xtensor version to 0.26.0-scanbot.
- Updated xtl version to 0.8.0.
Version 7.0.0 (22 Apr 2025)
- 🎉 New:
- Document Scanner RTU-UI v2: added an auto-rotate document option. The document will now be automatically rotated based on the text orientation detected by the Document Quality Analyzer. See more here:
CameraScreenConfiguration.autoRotateImages. ContourDetectorfeature was renamed toDocumentScannerand has a more advanced configuration and scanning API. See more here:DocumentScanner.- Advanced configuration of Barcode Scanner. See more here:
BarcodeScannerConfiguration. - Simplified configuration of Barcode Scanner. See more here:
BarcodeScannerConfiguration.create(barcodeFormats: List<BarcodeFormat>, extractedDocumentFormats: List<BarcodeDocumentFormat>, onlyAcceptDocuments: Boolean). - Lists of predefined subsets (1D, 2D, Postal, Pharma, etc.) of barcode formats. Old predefined sets of barcode formats were removed. See more here:
BarcodeFormats. - Added an ability to filter out all unaccepted barcode document formats in
BarcodeDocumentParser. See more here:BarcodeDocumentParser.parseDocument(input: String, acceptedFormats: List<BarcodeDocumentFormat> = BarcodeDocumentFormats.all). - Advanced configuration of Document Quality Analyzer. See more here:
DocumentQualityAnalyzerConfiguration. - Advanced configuration of Health Insurance Card Scanner. See more here:
EuropeanHealthInsuranceCardRecognizerConfiguration. - Advanced configuration of MRZ Scanner. See more here:
MrzScannerConfiguration. - Generic Document Recognizer feature was renamed to Document Data Extractor and has a more advanced configuration and scanning API. See more here:
DocumentDataExtractor. - Generic Text Recognizer feature was renamed to Text Pattern Scanner and has a more advanced configuration and scanning API. See more here:
TextPatternScanner. - Introduced a new Text Patter Scanner RTU-UI v2 component. See more here:
TextPatternScannerActivity. - Introduced a new MRZ Scanner RTU-UI v2 component. See more here:
MrzScannerActivity. - Medical Certificate Recognizer feature was renamed to Medical Certificate Scanner and has a more advanced configuration and scanning API. See more here:
MedicalCertificateScanner. - Images are now represented as references by using the
ImageReffeature. - Image Processor can now be created with an
ImageRefobject. See more here:ImageProcessor(imageRef: ImageRef). - Check Recognizer feature was renamed to Check Scanner and has a more advanced configuration and scanning API. See more here:
CheckScanner. - Introduced a new feature: Credit Card Scanner, capable of detecting credit cards and extracting data from them. See more here:
CreditCardScanner. - Introduced a new Credit Card Scanner RTU-UI v2 component. See more here:
CreditCardScannerActivity. - Added an option to limit input image size for Document Quality Estimator. If it is bigger then the image will be resized.
- Added a new
BarcodeScannerEngineModecalledNEXT_GEN_FAR_DISTANCEwhich is optimized for scanning from far distances. - Introduced a new engine mode
NEXT_GEN_LOW_POWER_FAR_DISTANCEthat is optimized for scanning barcodes from far distances on low-power devices. - Added support for new barcode formats that are used in the pharmaceutical industry:
PHARMA_CODE,PHARMA_CODE_TWO_TRACK,PZN_8(Pharmazentralnummer) andPZN_7. - Added support for a new barcode document format
BarcodeDocumentFormat.HIBC. BarcodeItemhas a newsizeScorefield with a value between 0 and 1 that represents the relative size of the barcode compared to the size of the input image. All barcode configurations have a new floatminimumSizeScorethat is set to 0 by default. All barcodes withsizeScore < minimumSizeScoreare ignored. Note thatminimumSizeScorecan be configured differently for each barcode format.- Added a flag
addAdditionalQuietZonetoBarcodeFormatConfigurationBase. If this flag is enabled, we process the barcode scanning with an artificial quiet zone that we add to the input image. This flag should be used to scan sharp crops of a barcode. By default the flagaddAdditionalQuietZoneis disabled. - Expanded generic document field validation status. A field can now also be
INFERRED- means that the value was not OCR'd but was inferred from the document type or other fields, orIGNORED- means that the field is required by the schema, but was disabled in the recognizer. - Generic document fields can now have
parsedDataattributes. See more here:FieldParsedData. - Generic document dates are parsed into a
YYYY-MM-DDdate format according to ISO 8601. - Generic document countries are parsed as in the formats
ISO_COUNTRY_NAME,ISO_COUNTRY_ALPHA_2,ISO_COUNTRY_ALPHA_3andISO_COUNTRY_NUMERICaccording to ISO 3166-1. - Generic document gender fields are parsed as "Male" or "Female" if applicable.
- Added support for German driver qualification card.
- Document Data Extractor now extracts the MRZ on unknown documents.
- The
ResultAccumulationConfigurationnow supports a newconfirmationMethodfield. - Document Scanner: added
OK_TOO_DARKdetection status. - Document Quality Analyzer: can now also return the orientation of the document in steps of 90 degrees. Enabled by setting
DocumentQualityAnalyzerConfiguration.detectOrientationto true. - Document Data Extractor, Medical Certificate Scanner and Check Scanner now return document detection results.
- Check Scanner: added possibility of returning cropped document.
- Optionally return
QualityHeatmapas a part of theDocumentQualityAnalyzerResult. - Added support for non-ICAO conformant machine readable zones on US border crossing cards.
- Added properties to
MrzScannerConfigurationandCreditCardScannerConfigurationthat allow to set if crops should be returned. - Added a flag
keepScreenOnto configuration for all RTU-UI v2 scanner screens. Iftrue, as long as this window is visible, the device's screen will stay awake. - Introduced a boolean
strictModefor certain barcode configurators. 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_PDF417, andGS1_COMPOSITE. - RTU-UI v2: added support of
minimumSizeScoreproperty for Barcode Scanner configuration.
- Document Scanner RTU-UI v2: added an auto-rotate document option. The document will now be automatically rotated based on the text orientation detected by the Document Quality Analyzer. See more here:
- 🚀 Improvements:
- Added the option to ignore barcodes that do not decode to one of the accepted document formats for
BarcodeScannerConfigurationin RTU-UI v2 screen. See more here:BarcodeScannerConfiguration.onlyAcceptDocuments. - Significant speed improvements in live mode on very large input resolutions.
- Improved the false positive rate for
ITFbarcode format. - Improved quiet zone checks for the barcode formats
ITF,CODE_11,MSI_PLESSEY,IATA_2_OF_5,INDUSTRIAL_2_OF_5andCODE_25. - We additionally allow for checking
maximumTextLengthfor the barcode formatsCode11,Code39,Code93,Code128andCodabar. - Added the option to extract VIN data from barcodes for VIN Scanner RTU UI v1 screen. See more here:
VinScannerConfiguration.setExtractVINFromBarcode(enabled: Boolean) - Quantized TextLineDetection model. Now it works faster with the same quality.
- Image Processor: new preset -
BinarizationFilterPreset.PRESET_5, an improved version of PRESET_4, that also works well on documents with barcodes. - Higher accuracy for document classification.
- Document Scanner: exposed
acceptedAspectRatioScoreandaspectRatiosin the scanner configuration. - Document Scanner: added
OK_ORIENTATION_MISMATCHstatus - returned when screen and document orientations don't match. - Document Scanner:
OK_ORIENTATION_MISMATCHcan be disabled by settingignoreOrientationMismatchto true. - Validation of VINs implements full ISO 3779 standard reducing false positives.
- Digits are no longer recognized as part of given names or surnames in the Document Data Extractor.
- Guarantee the same document quality for 90 degree rotated images.
- Passports issued in Costa Rica before 2022 include both a Sequence Number and an ID Number. When used internationally, the ID Number functions as the equivalent of what other countries refer to as the Passport Number or Document Number. However, the pre-2022 Costa Rican passport does not encode the ID Number in the Document Number area of the MRZ, leading to confusion during international travel. To address this, we now return the ID Number as the
DocumentNumberin the MRZ field and the Sequence Number as thePersonalNumberfield. - Document Scanner RTU-UI v2: improved expandability of bad image quality hint on Acknowledgement Screen from 2 to 5 lines.
- Barcode Scanner: By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set
stripCheckDigits = true.
- Added the option to ignore barcodes that do not decode to one of the accepted document formats for
- 🐞 Bug fixes:
- Fixed screen insets for Android API 35 with forced edge-to-edge mode by opting it out for RTU-UI v1 screens.
- RTU-UI v2: fixed the modal dialog to no longer appear below the status bar.
- Clamped parametric filters radius to 127 to prevent asserts in openCV.
- Fixed an overflow when decoding a
MICRO_QR_CODEbarcode format with wrong bits in numeric mode. - Fixed
minimumTextLengthforITFbarcode format. Before, we used it to check the number of symbols instead of the true text length. - Fixed returned results for all types of
UpcEanExtensionBehavior. - Fixed checksum for
Code39barcode format. - For
Code11barcode format with exactly 10 data digits, enabled checksum and enabled flagstripCheckDigits, we now strip both check digits. - Fixed sorting of quad points for four-state/postal barcode types.
- Fixed quad when flag
BarcodeFormatConfigurationBase.addAdditionalQuietZoneis enabled. - RTU-UI v2: fixed issue where
FindAndPickScanningMode().sheetContent.barcodeItemImageVisiblewas not properly applied. - RTU-UI v2: fixed accessibility content for action buttons.
- Fixed Medical Certificate Scanner user guidance default background (was absent before).
- Fixed Check Scanner user guidance default background (was absent before).
- Fixed Document Scanner user guidance default background (was green, should be kept the same).
- Fixed Finder Document Scanner user guidance default background (was green, should be kept the same).
- Fixed Document Scanner fill polygon color (should not be filled by default - was yellow before).
- Fixed Finder Document Scanner fill polygon color (should not be filled by default - was yellow before).
- Fixed Document Scanner shutter button (should not have yellow color by default).
- Document Scanner RTU-UI v2: fixed bug where
screens.camera.captureFeedback.snapFeedbackMode = PageSnapFeedbackNone()resulted in not auto switching to review screen after reaching max pages limit (if set). - Cropping Screen RTU-UI v2: screen returned result instead of cancel if nothing was changed on the screen.
- PDF Generator properly handles no-schema URIs as an input.
- Fixed a bug in Document Data Extractor while determining validation status when fields are excluded.
- Fixed point sorting in Document Scanner.
- Resolved an issue with high peak memory consumption in Document Data Extractor.
- On some German ID cards, the
MaidenNameandSurnameresults were incorrectly merged in the result. - Document Quality Analyzer: fixed crash when maxImageSize was 0.
- Fixed a crash and simplified the logic in person-number extraction. Previously the alphabetical substrings were extracted from whitelisted texts, without considering the current length of the already filtered texts.
- Fixed incorrect handling of field validation for Driver License expiry date.
- Fixed incorrect output of Text Pattern Scanner for unicode symbols.
- Fixed a crash when MRZ fallback was enabled and no text on document was detected.
- Document Quality Analyzer: fixed patch size which is used when
minFraction= 1. - TIFF Generator: fixed JPEG/Deflate support.
- TIFF Generator properly handles URIs with schema as an input.
- Cropping Screen RTU-UI v2: fixed issue with status bar light/dark mode not applied correctly.
- Fixed
content://type uri handling forPdfGenerator,TiffGeneratorandOcrEngineby adding temporary local caching mechanism for the input uris. File copies would be deleted after processing. - Fixed a crash when adding/removing frameHandlers in
ScanbotCameraXin a concurrency race condition. - Fixed the resolution strategy for the square preview for
ScanbotCameraXView.
- ⚠️ Breaking Changes:
- Document Quality Analyzer: to use this feature, you now also need the following dependency:
io.scanbot:sdk-docqualityanalyzer-assets:X.X.X. Note that it’s also required for the Ready-to-Use UI Document Scanner feature. - RTU-UI v1: ll screens now expect
RGBAvalues for HEX string when parsing configuration from JSON. - RTU-UI v1: refactored the screen result structure for both single and batch scanning operations. See more here:
BarcodeScannerResult. - RTU-UI v1: removed the ability to set Barcode Image Generation type in the screen configuration.
- RTU-UI v2: changed the result API of the screen. See more here:
BarcodeScannerUiResult. - Removed old configuration API of Barcode Scanner. Please use the new configuration mechanisms instead.
- All Barcode Formats are represented by
io.scanbot.sdk.barcode.BarcodeFormatenum. All other barcode format enums were removed. - Replaced class
io.scanbot.barcodescanner.model.BarcodeTypewithio.scanbot.sdk.barcode.BarcodeFormat. - Renamed enum
MSIPlesseyChecksumAlgorithmtoMsiPlesseyChecksumAlgorithm. - Barcode Document Format is represented by
io.scanbot.sdk.barcode.BarcodeDocumentFormatenum. - Removed class
io.scanbot.sdk.ui_v2.common.mappers.AspectRatio, please useio.scanbot.sdk.common.AspectRatio. - RTU-UI v2: refactored
BarcodesExtensionFilterenum and synchronized withUpcEanExtensionBehaviorenum from Barcode Scanner Classic component API. - Replaced
acceptedDocumentFormatslist parameter inBarcodeScannerConfigurationwithextractedDocumentFormatslist of document formats andonlyAcceptDocumentsflag. - Changed Check Scanner result API. See more here:
CheckScanningResult. - Removed old configuration API of Check Scanner. Please use the new configuration mechanisms instead. See more here:
CheckScanner.setConfiguration(configuration: CheckScannerConfiguration). - Removed old configuration API of Document Quality Analyzer. Please use the new configuration mechanisms instead. See more here:
DocumentQualityAnalyzer.setConfiguration(configuration: DocumentQualityAnalyzerConfiguration). - Removed
NO_DOCUMENTstatus from theDocumentQualityenum in Document Quality Analyzer results. - Removed old configuration API of Health Insurance Card Scanner feature. Please use the new configuration mechanisms instead. See more here:
HealthInsuranceCardScanner.setConfiguration(configuration: EuropeanHealthInsuranceCardRecognizerConfiguration). - Changed Health Insurance Card Scanner result API. See more here:
EuropeanHealthInsuranceCardRecognitionResult. - Removed old configuration API of MRZ Scanner. Please use the new configuration mechanisms instead. See more here:
MrzScanner.setConfiguration(configuration: MrzScannerConfiguration). - Removed old configuration API of Document Data Extractor. Please use the new configuration mechanisms instead. See more here:
DocumentDataExtractor.setConfiguration(configuration: DocumentDataExtractorConfiguration). - Removed old configuration API of Text Pattern Scanner. Please use the new configuration mechanisms instead. See more here:
TextPatternScanner.setConfiguration(configuration: TextPatternScannerConfiguration). - Changed the interfaces of Text Pattern Validation and Clean callbacks. Please use new Custom Content Validator instead. See more here:
ContentValidator. - Changed Text Pattern Scanner result API. See more here:
TextPatternScannerResult. - Renamed
sdk-generictext-assetsassets library tosdk-textpattern-assets. - Removed
shouldRecognizeproperty from theextract*()methods in Document Data Extractor. Please use the newDocumentDataExtractionModeconfiguration instead. See more here:DocumentDataExtractionMode. - Renamed
sdk-genericdocument-assetsassets library tosdk-documentdata-assets. - Renamed class
MRZScannertoMrzScanner. - Changed MRZ Scanner result API. See more here:
MrzScannerResult. - Changed Medical Certificate Scanner result API. See more here:
MedicalCertificateScanningResult. - Removed old configuration API of Medical Certificate Scanner. Please use the new configuration mechanisms instead. See more here:
MedicalCertificateScanningParameters. - Removed old configuration API of VIN Scanner. Please use the new configuration mechanisms instead. See more here:
VinScanner.setConfiguration(configuration: VinScannerConfiguration). - Changed VIN Scanner result API. See more here:
VinScannerResult. - Changed Document Scanner result API. See more here:
DocumentDetectionResult. - Document Scanner was moved to the
io.scanbot.sdk.documentpackage. - Changed the engine mode API representation for Document Scanner. The engine modes now are respectively named
LEGACYforEDGE_BASEDandMLforML_BASED. See more here:DocumentScannerEngineMode. - Removed
context: Contextproperty fromDocumentScannerActivity.ResultContractconstructor. - Document Scanner RTU-UI v2:
screens.camera.cameraConfiguration.ignoreBadAspectRatioparameter renamed toignoreOrientationMistmatch. - Document Scanner RTU-UI v2: changed
acceptedSizeScoreandacceptedAngleScorerange of values from0..1to0..100. - Document Scanner RTU-UI v2: moved parameters related to the detection process (
requiredAspectRatios,ignoreOrientationMistmatch,acceptedBrightnessThreshold,acceptedSizeScore,acceptedAngleScoreandacceptedAspectRatioScore) fromscreens.camera.cameraConfigurationtoscreens.camera.scannerParameters. - Removed Result Repositories mechanism for most RTU UI screens. All results are returned directly from the scanner or RTU UI screens.
- Changes old configuration API of PDF Generator. Please use the new configuration mechanisms instead. See more here:
PdfConfiguration. - Moved all logic related to PDF with OCR from OCR Engine to PDF Generator. See more here:
PdfGenerator.generateWithOcr*() - For all classic components (scanners) all methods like
scan[recognize]WithFinderOverlay()are renamed toscan[recognize]InArea(). - For all classic components (scanners) all methods like
scan[recognize]From[input_type]()are renamed toscan[recognize]From[input_type](). - For Document Data Extractor classic component all
recognizemethods are renamed toextractFrom[input_type](). - For Document Quality Analyzer all methods
analyzeIn*()are renamed toanalyzeOn*(). - Removed class
ImageProcessor.ImageRotation. Please use the newio.scanbot.sdk.core.ImageRotationclass. - Removed class
io.scanbot.sdk.ui_v2.common.mappers.AspectRatio, please useio.scanbot.common.AspectRatio. - All detected lines in Document Scanner results are represented by new
LineSegmentFloatclass. - TIFF Writer feature was renamed to TIFF Generator and has an updated generation API. See more here:
TiffGenerator. - For TIFF Generator all methods
write*()are renamed togenerateFrom*(). - Removed deprecated License Plate Scanner feature.
- Removed deprecated Text Orientation Scanner. Use
DocumentQualityAnalyzerinstead. - Default MRZ Scanner result handling mode is
Reject. Result only gets counted assuccessif every field isValidorConfirmed. - VIN Scanner RTU-UI v1: changed
TextPatternScannerResultresult type toVinScannerResulttype.
- Document Quality Analyzer: to use this feature, you now also need the following dependency:
- ⚠️ Deprecations:
- Marked Document Scanner, Finder Document Scanner, MRZ Scanner and Text Pattern Scanner RTU UI v1 screens as deprecated. Please use the corresponding RTU UI v2 screens.
- 🚙 Under the hood:
- Updated Compile Sdk to 35
- Android Jetpack Compose updated to 1.7.8
- Upgraded nlohmann::json to 3.11.3
- Upgraded xsimd to 13.0
- Upgraded xtl to 0.7.7
- Upgraded xtensor to 0.25
- Upgraded yaml-cpp to 0.8
- Upgrade OpenCV to 4.10
Version 6.2.1 (18 Feb 2025)
- 🐞 Bug fixes:
- Fixed potential issue with
BarcodePolygonViewduringonDestroywhen the AR overlay is displayed. - Fixed nested views of
ScanbotCameraXViewwhen readjusting the parent view size. - Cropping RTU-UI v2: Now returns successfully when the crop has not been adjusted and the apply button is pressed.
- Document Scanner RTU-UI v2: The horizontal layout camera bar now has a fixed width.
- Fixed potential issue with
Version 6.2.0 (30 Jan 2025)
- 🎉 New:
- Add the ability to limit the detection fps in
ScanbotCameraX. - Implemented AES GCM encryption. Use
AesGcmEncryptedFileIoProcessorwhen setting encryption during SDK initialization. - Document Scanner RTU-UI v2:
- Added a configurable title for the acknowledge screen. Disabled by default.
- Added an option to suppress auto-cropping on manual snaps. Use
screens.camera.cameraConfiguration.autoCropOnManualSnap. - Added support for magnetic line color. Use
screens.cropping.croppingPolygonMagneticLineColor.
- Add the ability to limit the detection fps in
- 🚀 Improvements:
- Document Scanner RTU-UI v2: Added basic support for landscape mode.
- Document Scanner RTU-UI v2: The Review Screen zoom button now allows its text to be hidden.
- Improved
ScanbotCameraXresolution selection strategies for scanning and preview cases. - Added new encryption
AesGsmto encrypt separate files with standalone keys. UseAesGcmEncryptedFileIoProcessorasFileIoProcessorinterface.
- 🚙 Under the hood:
- Updated androidx camerax 1.4.1 with 16kb page support.
Version 6.1.2 (4 Dec 2024)
- 🐞 Bug fixes:
- Fixed the height of the bottom sheet component for the Barcode Scanner RTU UI v2 screen.
Version 6.1.1 (28 Nov 2024)
- 🎉 New:
- Added
Cleaner.cleanUpSnappedDocumentsData()method to delete all PDF and TIFF files generated with the legacy Page API. - Added
deleteAllDocuments()anddeleteDocument(uuid)function todocumentApi.
- Added
- 🚀 Improvements:
- After calling
documentApi.createDocument(),saveSync()is now also called so that the new empty document will be created in the file storage.
- After calling
- 🐞 Bug fixes:
- Fixed the document migration function enabling the migration of encrypted pages.
Version 6.1.0 (8 Nov 2024)
- 🎉 New:
- Added support for 16KB page size (Android 15).
- RTU UI v2.0 Document Scanner:
- Added
NoFeedbackModeto disable the animation when a page is captured and the document quality check is disabled. - Added a new property
hardwareButtonsEnabledthat enables snapping from the hardware volume buttons and the new hardware camera control button (enabled by default).
- Added
- Added option
MultipleScanningMode.allowEmptySubmissionto allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
- 🚀 Improvements:
- Document detector:
- Improved detection speed and robustness against orientation changes.
- Improved robustness against picking up random contours.
- Improved robustness against documents with colored corners, booklets, handheld documents and cards, documents near edges of tables and overlapping documents.
- Document detector:
- 🐞 Bug fixes:
- RTU UI v2.0 Document Scanner:
- Fixed a rare crash on the review screen when encryption is enabled.
- Fixed a crash on some devices (e.g., Samsung S21, S22) with encryption enabled.
- Fixed an issue that could cause a crash in the Document RTU v2 scanner after scanning a very large number of pages in one session.
- Fixed KANJI mode for QR codes.
- Fixed a bug with incorrect raw bytes returned for some 2D barcode types.
- Fixed an issue with AR Overlay and barcode mapping in
BarcodeScannerActivityRTU UI v2.0, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.
- RTU UI v2.0 Document Scanner:
- ⚠️ Breaking changes:
- Changed the type of the
rotationfield in thePageclass to theio.scanbot.sdk.core.ImageProcessorenum.
- Changed the type of the
Version 6.0.0 (15 Oct 2024)
- 🎉 New:
- Implemented new Document API to perform document creation and editing.
- Implemented new Ready-To-Use Document Scanner screen with extended scanning and reviewing capabilities.
- Added
render()methods which takedocument: Documentas an input parameter inPDFRendererinterface. - Added
render()methods which take optionaloutputFile: Fileas an input parameter inPDFRendererinterface. - Added
recognizeTextWithPdfFrom*()methods which takedocument: Documentas an input parameter inOpticalCharacterRecognizerinterface. - Added
recognizeTextWithPdfFrom*()methods which take optionaloutputFile: Fileas an input parameter inOpticalCharacterRecognizerinterface. - Added
writeTIFF()methods which takedocument: Documentas an input parameter inTIFFWriter. - Added
writeTIFF()methods which take optionaloutputFile: Fileas an input parameter inTIFFWriter. - Added new property
addAdditionalQuietZonetoBarcodeScannerAdditionalConfig. - Added a new predefined collection of barcodes,
BarcodeFormat.POSTAL, which includes barcodes used in the postal industry.
- 🚀 Improvements:
- Improved
MagnifierView. - AR overlay is enabled by default for
FindAndPickScanningModein Barcode Scanner RTU UI v2 screen. - For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- Improved
- 🐞 Bug fixes:
- Minor fixes for BarcodeScanner appearance in RTU UI v2 to make it consistent with iOS counterpart.
- Fix point sorting in
ContourDetector.
- ⚠️ Breaking changes:
- All classes from the old Page API were marked as deprecated and moved to
io.scanbot.sdk.persistence.page.legacypackage. - Renamed methods to
render()inPDFRendererinterface. - Changed
render()method signature inPDFRendererinterface. Now it takes an array of Uris instead of the List of Uris. - Renamed
writeTIFFFromImages()andwriteTIFFFromFiles()methods towriteTIFF()inTIFFWriter. - Renamed
writeTIFFFromImages(): ByteArraymethods totiffByteArray(): ByteArrayinTIFFWriter. - Document scanner asset dependency
io.scanbot:sdk-ml-docdetectorwas renamed toio.scanbot:sdk-ml-docdetector-assets. - Renamed
io.scanbot.sdk.process.model.DocumentQualityResulttoio.scanbot.sdk.process.model.DocumentQuality - Renamed
io.scanbot.sdk.core.contourdetector.DetectionStatustoio.scanbot.sdk.core.contourdetector.DocumentDetectionStatus - The usage of asset dependency
io.scanbot:sdk-mc-assetsand also the usage of OCR fromio.scanbot:sdk-package-2now require an additional dependency to be specified:implementation("io.scanbot:sdk-common-ocr-assets:$scanbotSdkVersion").
- All classes from the old Page API were marked as deprecated and moved to
Version 5.2.3 (5 Aug 2024)
- 🐞 Bug fixes:
- Fixed the false positive document detection (introduced in v5.2.0).
- Fixed fallback in the "Background Clean" filter when the ML model is unavailable.
Version 5.2.2 (22 Jul 2024)
- 🎉 New:
- Added support for Canadian and UAE Check standards.
Version 5.2.1 (12 Jul 2024)
- 🚀 Improvements:
- Improved false positive rate of UPC/EAN extensions in live mode.
- 🐞 Bug fixes:
- Fixed image preprocessing for Document Quality Analyzer.
Version 5.2.0 (28 Jun 2024)
- 🎉 New:
- Added support for German health insurance cards (front and back) and European health insurance cards (back only) to
GenericDocumentRecognizer,GenericDocumentRecognizerFrameHandlerandGenericDocumentRecognizerActivityRTU UI screen. HealthInsuranceCardScanner,HealthInsuranceCardScannerFrameHandler, andHealthInsuranceCardScannerActivitywere deprecated. Please useGenericDocumentRecognizer,GenericDocumentRecognizerFrameHandlerandGenericDocumentRecognizerActivityinstead.- Added
ResultAccumulationConfigfor the generic document recognition API. - Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
australiaPostCustomerFormat,useIATA2OF5ChecksumanduseCode11ChecksumtoBarcodeAdditionalParameters,BarcodeScannerAdditionalConfigurationfor RTU UI screen andBarcodeRecognizerConfigurationfor RTU UI v2 screen. - Added
AustraliaPostCustomerFormatenum to represent formats of the barcode data for the Australian Post customer barcode. - Added
resetPolygonState()inBarcodePolygonViewto properly clean its state when disabling it after scanning.
- Added support for German health insurance cards (front and back) and European health insurance cards (back only) to
- 🚀 Improvements:
- Changed
resampleflag toresamplingMethod: io.scanbot.pdf.model.ResamplingMethodinPdfConfigclass. - The Generic Document Recognizer and its UI components now use the new Scanbot OCR engine under the hood. In order to scan for generic documents the additional OCR language data bundle is no longer required.
- Improved generic document recognition on static images.
- Improved document detection on booklet documents.
- Improved performance of
DocumentQualityAnalyzer. - Added support for Extended Channel Interpretation (ECI) for Data Matrix and Aztec.
- Improved GS1 string handling with new modes for decoding and validation. See
Gs1Handling. ScanbotCameraXViewnow logs more information throughout its lifecycle (use filter byScanbotCameraXViewtag). Logging is enabled only in the 'debug' builds.- Improved detection of UPC/EAN barcode extensions in live mode.
- The barcode scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- Changed
- 🐞 Bug fixes:
- Removed redundant dependency on
io.scanbot:sdk-licenseplate-assetsinsideio.scanbot:sdk-generictext-assets. - Fixed R8 obfuscation config for SDK logging classes.
- Fixed a bug in
ScanbotColorwhere settingisArgbto true, resulted in a wrong color.
- Removed redundant dependency on
- ⚠️ Breaking Changes:
- Removed ML assets library for Document Quality Analyzer -
io.scanbot:sdk-docqualityanalyzer-assets:X.X.X. Please useio.scanbot:sdk-multitasktext-assets:X.X.Xinstead. - Removed enum
BarcodeDensity. - Removed property
codeDensityfromBarcodeAdditionalParameters. - Removed enum values
VALIDATEandDECODEfromGs1Handlingand replaced them byDECODE_STRUCTURE,DECODE_FULL,VALIDATE_STRUCTUREandVALIDATE_FULL. - Removed property
sharpnessAcceptanceFactorfromGenericDocumentRecognizerandGenericDocumentRecognizerConfigurationfor RTU UI screen. - Removed redundant fields
barcodeImagePathandbarcodePreviewFramePathfromResultclass in Barcode Scanner RTU UI v2. - Changed
barcodesRegexFilterconfig behavior for Barcode Scanner RTU UI v2. Barcodes are accepted if the barcode data contains the part that matches the regex. - Replaced
standardandvalidationStatusfields withvalidationErrorsin theGS1.Elementclass.
- Removed ML assets library for Document Quality Analyzer -