Document Scanner changelog – .NET SDK
tip
For additional details about the API, refer to our API reference documentation.
.NET - Version 9.0.0 (7 Jul 2026)
- 📖 Release notes:
- Explore the release highlights and key improvements here.
Android
- 🎉 New:
- General:
- ImageRef:
optimizeflag added toSaveImageandEncodeImage. When set totrue, the encoder spends additional time to improve JPEG output quality. - Added support for custom accessibility state strings for scanner screens that use
ActionBarConfiguration. - Added support for navigation on polygon corners with keyboard for
EditPolygonImageView. - Added parameter
CameraConfiguration.CameraPreviewAspectRatioto support different preview aspect ratios inFitInmode in RTU UI screens.
- ImageRef:
- Document Scanner:
- Added
DocumentEnhancerwith aStraightenmethod 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. - Document API: Added new field
StraighteningParametersto thePageobject. - Document API: Added new parameter
NewStraighteningParametersto thePage#apply()function. - 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. This feature is supported by all downstream components of the Document Scanner (Check Scanner, Credit Card Scanner, Document Classifier, Document Data Extractor, and Medical Certificate Scanner). - Added a parameter to set the background color for the
PreviewButtonbutton in the bottom bar on the RTU UI Camera Screen.
- 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 a threshold parameter for categorizing documents into three classes:
Acceptable,Unacceptable, andUncertain. - Added the
InputScalesoption to run the model at multiple resolutions and automatically select the best result. - Added the
InputScaleThresholdToProcessEntireImageoption 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 the output. - Added
CompatibilityModeproperty toDocumentQualityAnalyzerConfigurationto allow running the legacy (v8) document quality analysis engine.
- A new Document Quality Analyzer algorithm was introduced. The result object's
- Document Data Extractor:
- Added support for Romanian, Italian, Turkish, and Polish ID cards.
- Check Scanner:
- Added support for more USA check formats. Newly supported formats: (TT)xxx(TT)xxxx(UU)xxx(UU), and the ones enumerated in the MICR line identification documentation.
- Added support for xxx-xxx-x account number format for Canadian checks.
- Barcode Scanner:
- Added a
TwoDDecodingModeto the barcode configuration. It defaults toHighEffortand can be set toLowEffortfor very low-power devices requiring higher frame rates.
- Added a
- General:
- 🚀 Improvements:
- General:
- Improved behavior of accessibility descriptions for the action bar's zoom button in RTU UI scanners.
- 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
ErrorPartiallyVisibledocument status when only 1–3 document corners are visible in the input image and the scanner is configured withAllowPartiallyVisibleDocuments = true. - Improved the behavior when the page limit was reached in the RTU UI single-page mode.
- Improved the behavior of the Acknowledge Screen for more precise error hints control.
- Document Scanner RTU UI and Document Cropping RTU UI now use Document Enhancer under the hood.
- In Document Scanner RTU UI, the enhancer is controlled using the DocumentStraighteningParameters configuration.
- In Document Cropping RTU UI there were no configuration changes. Instead, the enhancer uses the same configuration that is stored in the Page's metadata. For more information, see the Document Enhancer documentation.
- Added a check for document detection status after the image is snapped or imported to determine whether cropping is required.
- PDF & TIFF Generation:
PdfImagesExtractorandPdfPagesExtractornow use theResultAPI for consistent error handling.- Enhanced
PdfImagesExtractorwith new extract methods supportingImageRefprocessing and callback-based page control. - Added
PdfImageProcessingCallbacksupport toPdfPagesExtractorfor image processing before page storage.
- 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.
- VIN Scanner:
- Live or single-shot mode, derived from the input image, is now propagated to the internal barcode scanner.
- Document Data Extractor:
- Reduced the likelihood of reading incorrect values for eye color on German ID cards (e.g., GRUN instead of GRÜN).
- Document types are now classified using an ML model, resulting in higher quality and faster recognition.
- Check Scanner:
- For Canadian checks, the scanner now allows more whitespace characters in the MICR line.
- Credit Card Scanner:
- Various improvements to check digit validation and aspect ratio handling.
- Barcode Scanner:
- 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
HighEffortenabled, 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:
- Fixed a crash with
ImageRef.SaveImagewhen default Android encryption was enabled. - Fixed RTU UI top bars behavior with hidden back buttons.
- Fixed incorrect viewfinder aspect ratio calculations when
CameraPreviewModewas set toFitIn. - Fixed crashes on
DocumentScannerViewandBarcodeScannerViewwhen accessing view fields beforeinitBehaviormethod was called.
- Fixed a crash with
- Document Scanner:
- Fixed a bug with incorrect page number badge behavior in the RTU UI Document Scanner.
- Fixed
SnapButtonclick in TalkBack mode in RTU UI scanner screen. - Fixed reduced preview image quality when zoomed in on the Review Screen.
- Document Quality Analyzer:
- Fixed
ProcessByTileConfiguration.Enabledbeing ignored regardless of its value.
- Fixed
- Document Data Extractor:
- Fixed an issue where documents containing Cyrillic text were sometimes classified incorrectly.
- Check Scanner:
- Fixed missing support for longer check number fields on Canadian checks.
- 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.
- 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. - The Scanbot SDK now requires Android Gradle plugin 8.9.1 or higher. Update your AGP version to prevent build errors.
- Changed the behavior of
BarcodeScannerViewandDocumentCameraViewinonCameraOpen()callbacks to allow disabling detection on the frame from within these callbacks. - Removed Tesseract features to decrease the Scanbot SDK size.
- 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). - Fixed a bug in
PolygonHelper:- the implementation of the method
GetFullPolygonhad the incorrect order of vertices — a potentially breaking change, check the usages of this helper method in your code; - the method
GetFullPolygonCCWwas renamed toGetFullPolygonCcw, and its implementation was adjusted to fix a bug with the incorrect order of vertices.
- the implementation of the method
- Renamed the
Stylefield toTitleinTextWithBadgeButtonModeand theTextfield toTitleinTextButtonMode. - Removed
AcknowledgementScreenConfiguration.BadImageHint. 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. - Passing null to the polygon parameter in
Page.apply()no longer resets the page polygon — the value is silently ignored.
- 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.
ImageUrlsFromPdf()method inPdfImagesExtractorwas renamed toExtract().PdfImagesExtractormethods now returnResulttypes instead of throwingIOExceptionorOperationCancelledException.PagesFromPdf()method inPdfPagesExtractorwas renamed toExtract().PdfPagesExtractor.Extract()now returnsResult<List<String>>instead of throwing exceptions.
- 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
- Document Data Extractor:
- When initialized with no accepted document types, or only invalid ones, and with MRZ fallback disabled, an
InvalidArgumenterror is now thrown.
- When initialized with no accepted document types, or only invalid ones, and with MRZ fallback disabled, an
- Check Scanner:
- Leading and trailing whitespace for all USA check fields is now trimmed.
- A group of numbers in the Canadian check account number section preceding the first dash is now treated as a designation number only if its length is 4. Previously, a sequence of any length was treated as a designation number. Dashes present in the MICR line are preserved in the Account Number parsed field.
- General:
- ⚠️ Deprecations:
- General:
AESEncryptedFileIOProcessoris deprecated and will be removed in future versions. UseAesGcmEncryptedFileIoProcessorinstead.
- 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
- General:
- 🚙 Under the hood:
- Updated the native Android SDK to Android Document SDK 9.0.1.
- Increased the minimum SDK version to 23. This allows use of more modern APIs and improves overall camera performance.
- Updated
magic_enumto version 0.9.7. - 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.
- Added package
Xamarin.Google.Guavaof version33.5.0.2to the dependencies. - Net9: Updated package
Xamarin.AndroidX.Activity.Composefrom version1.10.0to1.10.1.1. - Net9: Updated package
Xamarin.AndroidX.Activity.Ktxfrom version1.10.0to1.10.1.1. - Net9: Updated package
Xamarin.AndroidX.Collection.Ktxfrom version1.4.5.2to1.5.0.1. - Net9: Updated package
Xamarin.AndroidX.Navigation.Composefrom version2.8.7to2.8.9.1. - Net10: Updated package
Xamarin.AndroidX.Activity.Composefrom version1.10.1to1.10.1.3. - Added
org.jetbrains.kotlinx:kotlinx-coroutines-guava:1.7.3dependency (a stub library for resolving the CameraX dependency with Guava). - Improved lifecycle handling with
ScanbotCameraX. Fixed rare crash when the camera was reopened while using customLifecycleOwner. - Removed
androidx.legacy:legacy-support-v4andandroidx.fragment:fragment-ktxfrom the Scanbot SDK dependencies. - Document Scanner RTU UI now includes an additional asset dependency
io.scanbot:sdk-document-enhancer-assetsby default. - Added a new barcode decoding model, increasing SDK size by approximately 650 KB.
- Disabled image capture use case for RTU scanners that don't need this functionality.
iOS
- 🎉 New:
- General:
- SBSDKImageRef:
optimizeflag added toSaveToURLWithUrl,SaveImageWithPath, andEncodeImageWithOptionsfunctions. When set totrue, the encoder spends additional time to improve JPEG output quality. - Added
AccessibilityStateandActiveAccessibilityStateproperties for flash and flip camera buttons in the RTU UI Barcode Scanner and Data Capture screens. VoiceOver now announces the current state in accessibility mode. - Added properties
IsTapToFocusEnabledandTapToFocusDurationtoSBSDKBaseScannerGeneralConfiguration. You can now enable the tap-to-focus functionality in all Custom UI screens. Disabled by default.
- SBSDKImageRef:
- Document Scanner:
- Added
SBSDKDocumentEnhancerwith aStraightenmethod 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. - Support for recognizing cropped documents.
SBSDKDocumentScannerParametersnow includesAlreadyCroppedScoreThreshold, andSBSDKDocumentDetectionScoresnow includesAlreadyCroppedScore. In single-shot mode, if no document is detected and the score exceeds this threshold, a newSBSDKDocumentDetectionStatusvalueOkButAlreadyCroppedis returned, along with a quad (points) corresponding to the image corners. This feature is supported by all downstream components of the Document Scanner (Check Scanner, Credit Card Scanner, Document Classifier, Document Data Extractor, and Medical Certificate Scanner). - Added
Backgroundproperty toSBSDKUI2TextButtonModeandSBSDKUI2TextWithBadgeButtonModeto configure the background style for the preview button in the RTU UI Document Scanner. - Added
AccessibilityDescriptionDocumentImagePreviewproperty toSBSDKUI2ReviewScreenConfigurationto configure the accessibility description of the document image preview.
- Added
- Image Processing:
- New
SBSDKColorDocumentShadowRemovalFiltercapable of removing shadows from documents without damaging text, barcodes, or images.
- New
- PDF & TIFF Generation:
- Added methods to
SBSDKPDFGeneratorthat generate a PDF from an array ofSBSDKImageRefimages. - Added processing block parameter to all
SBSDKPDFImageExtractorextract methods, allowing real-time image manipulation during PDF extraction with memory-efficient processing. SeeSBSDKPDFImageProcessingBlock. - Added
Extractmethod toSBSDKPDFImageExtractorfor conditional PDF image extraction with callback-based flow control, allowing extraction to be stopped midway and enabling memory-efficient processing of extracted images. SeeSBSDKPDFImageExtractionBlock.
- Added methods to
- Document Quality Analyzer:
- A new Document Quality Analyzer algorithm was introduced. The result object
SBSDKDocumentQualityAnalyzerResult'sQualityproperty can now beAcceptable,Unacceptable, orUncertain, indicating whether a user-provided document image meets the required quality standard. Advanced configuration is available using theQualityAnalysisModelproperty inSBSDKDocumentQualityAnalyzerConfiguration, 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 threshold property
QualityAcceptableUncertainThresholdfor categorizing documents into three classes:Acceptable,Unacceptable, andUncertain. - Added the
InputScalesproperty inSBSDKDocumentQualityAnalyzerConfigurationto run the model at multiple resolutions and automatically select the best result. - Added the
InputScaleThresholdToProcessEntireImageproperty inSBSDKDocumentQualityAnalyzerConfigurationto 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 the outputSBSDKDocumentQualityAnalyzerResult. - Added
CompatibilityModeproperty toSBSDKDocumentQualityAnalyzerConfigurationto allow running the legacy (v8) document quality analysis engine.
- A new Document Quality Analyzer algorithm was introduced. The result object
- OCR Engine:
- Added a method to
SBSDKOCREngineManagerthat generates a PDF from an array ofSBSDKImageRefimages.
- Added a method to
- Document Data Extractor:
- Added support for Romanian, Italian, Turkish, and Polish ID cards.
- Barcode Scanner:
- Added the
TouchToFocusEnabledproperty toSBSDKUI2CameraConfigurationto allow enabling or disabling tap-to-focus in the RTU UI screen. - Added the
TwoDDecoderModeproperty toSBSDKBarcodeFormatDataMatrixConfiguration. It defaults toHighEffortand can be set toLowEffortfor very low-power devices requiring higher frame rates.
- Added the
- General:
- 🚀 Improvements:
- General:
- Optimized still image capturing by switching to the 420YCbCr format internally.
- Improved camera session management across all scanning components.
- Enhanced accessibility of the zoom button in the RTU UI Barcode Scanner and Data Capture screens. VoiceOver now announces its current state in accessibility mode.
- 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
ErrorPartiallyVisibledocument status when only 1–3 document corners are visible in the input image and the scanner is configured withallowPartiallyVisibleDocumentsset to true inSBSDKPartiallyVisibleDocumentConfiguration. - Improved captured image quality when capturing with a virtual camera device, e.g., the triple camera.
- Document Quality Analyzer:
- Increased the default threshold for
MinRequiredOrientationConfidenceto 0.9 inSBSDKDocumentQualityAnalyzerConfiguration, 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.
- VIN Scanner:
- Live or single-shot mode, derived from the input image, is now propagated to the internal barcode scanner.
- Document Data Extractor:
- Reduced the likelihood of reading incorrect values for eye color on German ID cards (e.g., GRUN instead of GRÜN).
- Document types are now classified using an ML model, resulting in higher quality and faster recognition.
- Check Scanner:
- For Canadian checks, the scanner now allows more whitespace characters in the MICR line.
- Credit Card Scanner:
- Various improvements to check digit validation and aspect ratio handling.
- Barcode Scanner:
- Clean barcodes (QR Code, Data Matrix, 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
TwoDDecoderModeset toHighEffort, 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:
- Fixed a crash on iPhone SE when switching to the front camera in the Barcode Scanner or Check Scanner.
- Fixed the viewfinder's initial position when launched in landscape orientation in all RTU UI Data Capture screens.
- Document Scanner:
- 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.
- Fixed an issue in the RTU UI Document Scanner where the user could become stuck on the camera screen when the
- PDF & TIFF Generation:
- Fixed an issue where JPEG compression was applied twice to images being rendered to a PDF.
- Document Quality Analyzer:
- Fixed
SBSDKProcessByTileConfiguration.enabledbeing ignored regardless of its value.
- Fixed
- VIN Scanner:
- Fixed a bug where the result was not displayed properly in
SBSDKUI2VINScannerViewControllerwhenConfirmationAlertDialogEnabledwas enabled.
- Fixed a bug where the result was not displayed properly in
- Document Data Extractor:
- Fixed an issue where documents containing Cyrillic text were sometimes classified incorrectly.
- Check Scanner:
- Fixed missing support for longer check number fields on Canadian checks.
- 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.
- 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.
- 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:
- Renamed the
Stylefield toTitleinSBSDKUI2TextButtonModeand theTextfield toTitleinSBSDKUI2TextWithBadgeButtonMode. - 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). - The
BadImageHintproperty has been removed fromSBSDKUI2AcknowledgementScreenConfiguration. The warning shown for bad image capture is now configured separately usingUnacceptableQualityWarning,UncertainQualityWarning, andDocumentNotFoundWarning. - 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. - Enhanced the document quality warning configuration logic to better handle edge cases where no analyzer result exists or document detection fails, which may change the acknowledgment flow for imported images or manual captures in certain configurations.
- Renamed the
- 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
DetectOrientationproperty has been removed. Orientation detection now always runs. - The
InspectSmallTextproperty has been removed.
- The configuration properties
- Document Data Extractor:
- When initialized with no accepted document types, or only invalid ones, and with MRZ fallback disabled, an
InvalidArgumenterror is now thrown.
- When initialized with no accepted document types, or only invalid ones, and with MRZ fallback disabled, an
- General:
- ⚠️ Deprecations:
- Document Quality Analyzer:
- The
SBSDKDocumentQualityenum and result object property are deprecated; useSBSDKDocumentQualityAssessmentinstead. - The
SBSDKDocumentQualityAnalyzerResult.DocumentFoundproperty is now deprecated. This deprecated property indicates if too few characters are detected. The newSBSDKDocumentQualityAssessmentwill 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. - Properties
QualityLevelThresholdsandQualityLevelIndicesare deprecated (see Breaking changes).
- The
- Document Quality Analyzer:
- 🚙 Under the hood:
- Updated the native iOS SDK to iOS Document SDK 9.0.1.
- Updated
magic_enumto version 0.9.7. - Added a new barcode decoding model, increasing SDK size by approximately 650 KB.
.NET - Version 8.0.0 (26 Mar 2026)
Android
- 🎉 New:
- General:
- The SDK now supports a new license key format, which does not contain special characters or line breaks.
- Added
ImageRefcreation fromAndroidX.Camera.Core.ImageProxyfor a 2-3x speed increase. ImageRefconstructor now supports HEIC images.- Added the possibility for providing custom encryption for individual images from path load / image save operations.
- Added property
CameraLiveScannerResolutionto all the RTU-UI v2 screens to control the camera live scanning resolution. - Added setter
SetLiveScannerResolution(scannerResolution: CameraLiveScannerResolution)to classic Scanbot Camera components to control the camera live scanning resolution.
- Document Scanner:
- Added the new
PartiallyVisibleDocumentConfigurationobject to determine how partially visible documents are aggregated and tracked. This feature is disabled by default. - Two new
DocumentDetectionStatusvalues have been introduced:ErrorPartiallyVisibleandErrorPartiallyVisibleTooClose. - The
DocumentDetectionResultnow includes aDisplacementVectorand aDocumentDisplacementenum to indicate the direction towards the center of a partially visible document. - Added support for Document Quality Analyzer configuration to RTU-UI v2 Document Scanner.
- Added support for bottom bar visual modes, see
IO.Scanbot.Sdk.Ui_v2.Common.BottomBarMode. - Added a new mode for bottom bar preview button, see
IO.Scanbot.Sdk.Ui_v2.Document.Configuration.TextWithBadgeButtonMode. - Added properties for original, document, and unfiltered images in
ImageRefformat toIO.Scanbot.Sdk.Docprocessing.PageDocument API class.
- Added the new
- Image Processing:
- The color document filter now has parameters controlling contrast, color, and paper enhancement.
- TIFF Generator:
- Added
GenerateToFileFromImageRefs()andGenerateAsByteArrayFromImageRefs()methods withIList<ImageRef>input forTiffGeneratorManager.
- Added
- Document Quality Analyzer:
- Added
CumulativeContrastHistogramandCumulativeTextSizeHistogramfor text contrast and size estimation inDocumentQualityAnalyzerResult. - Added the
OrientationConfidenceproperty to the result object. - Added an option to explicitly enable/disable by tile processing via
ProcessByTileConfiguration.
- Added
- Text Pattern Scanner:
- Added the option
OptimizeSingleLinetoTextPatternScannerConfiguration. Enable this option when scanning a single line or a single word that is hard to scan reliably. Disabled by default.
- Added the option
- Document Data Extractor:
- Added a metadata child document to all supported formats.
- Added
CountryCodevalues to all supported formats. - Introduced the
OkButInvalidDocumentreturn status. This is returned if a field's contents are confirmed but fail validation rules. - Introduced
PersonalIdcommon field type. - Added new
DocumentDataExtractionStatusenum value -OkButNotConfirmed. SeeDocumentDataExtractionStatus.
- Check Scanner:
- Support a wider range of USA check formats.
- Barcode Scanner:
- New supported document parser for British Columbia driver licenses PDF417 codes.
- Introduced a new algorithm for recognizing 1D symbologies, enhancing performance with blurred and distant barcodes. This feature is enabled by default but can be turned off using the
EnableOneDBlurScannerproperty in barcode format configurations on low-power devices if necessary. - Added a new
BarcodeScannerEngineMode:NextGenMaxDistance, which is optimized for scanning from far distances on very high-power devices with a 4K video stream. - All 1D barcode formats can be configured with a new
OneDConfirmationModewhich isThoroughby default. Setting it toMinimalorNonecould lead to higher recall in difficult scenarios, but could also cause more false positives.
- General:
- 🚀 Improvements:
- General:
- All OCR-based features now benefit from new OCR models that are optimized for speed and accuracy.
- The "Created TensorFlow Lite XNNPACK delegate for CPU." log is no longer an output in production builds.
- If a global or custom encrypter is set when an image is created from a file, it will be automatically detected if the image is encrypted or not. Note that now
EncryptionModeis NOT ignored if a custom encrypter/decrypter is used. - When creating an
ImageReffrom Android Bitmap or from a .png file containing an alpha channel, they are blended with a user specified canvas color instead of simply discarding the alpha channel. It is possible to select whether to use aWhiteorBlackbackground inBasicImageLoadOptions,RawImageLoadOptions,PathImageLoadOptions, andBufferImageLoadOptions. - All configurations for scanners can now be set directly on scanner creation, e.g.
IO.Scanbot.Sdk.ScanbotSDK#.CreateBarcodeScanner(BarcodeScannerConfiguration). - OCR engine, PDF, and TIFF generators no longer create
content URIscontent copies in the cache directory for processing. - Optimized memory usage of Scanbot Camera components.
- All methods in
IO.Scanbot.Sdk.Process.ImageProcessorare synchronized now. - Improved RTU UI components padding behavior for finder view and action bars.
- Document Scanner:
- Aspect ratio scores are now symmetrical, and low scores are more consistent.
- The Document API now returns cached document objects. This means if you load a
Documentonce, it will remain in memory during the app session and be returned when loaded from another location.
- Image Processing:
- The color document filter now preserves colors better by default.
- Removed unused image filter models, saving about 2.4MB from binaries.
- PDF Generator:
- PDF generation now supports binarized images. Binarized images are stored in the PDF with an optimized compression algorithm, resulting in extremely small file sizes.
- Document Quality Analyzer:
- Improved performance.
- If provided configuration is invalid, an error will be returned instead of changing invalid fields to default values.
- OCR Engine:
- Improved detection of text, specifically for lines that are close together.
IO.Scanbot.Sdk.ScanbotSDK#.CreatePdfGenerator(ocrConfiguration:)with non-nullOcrConfigurationcreatesPdfGeneratorthat implementsOcrPdfGeneratorinterface with methods with preprocessed OCRPagesinput. SeeOcrPdfGenerator.
- Document Data Extractor:
- Improved
FrameAccumulationlogic. - Increased accuracy, specifically fewer false positives.
- General speed improvements.
- Glare detection now works more reliably.
- Improved
- Credit Card Scanner:
- Higher recall for expiry date detection.
- Improved
FrameAccumulationlogic.
- Medical Certificate Scanner:
- Improved date recognition.
- Barcode Scanner:
- Improved quiet zone checks for the barcode format
PharmaCodeto reduce the false positive rate. - Reduced the false positive rate of blurred barcodes in live mode when the barcode is only partially visible.
- Improved quiet zone checks for the barcode format
- General:
- 🐞 Bug fixes:
- General:
- ImageRef: If
ImageRefwas created in a lazy mode from an encrypted file and then saved to some location, a simple copy was performed. Because of this, the created file could become invalid if the decryption key depends on location. - ImageRef: If
ImageRefwas saved to an already existing location, in some cases it could return an error instead of overwriting the existing file. - ImageRef: Fixed possibility of
ImageRefto be saved as an invalid JPEG (when only part of the image was actually saved). - Fixed issues related to edge-to-edge warnings in Google Play Store for RTU-UI v2 screens.
- Fixed dependencies clash related to material icons in RTU-UI v2 screens.
- ImageRef: If
- Document Scanner:
- Now correctly returns
ErrorTooDarkwhen nothing is detected and the image brightness is below the threshold. - Fixed the title counter update in the review step for RTU-UI v2 screen.
- Fixed an issue with double compression for document images during rotation or filtering operations that significantly increased the size of the original and other
Pageimages. - Fix a rare issue with a bug that occurred on Xiaomi that breaks the image import feature.
- Now correctly returns
- Document Quality Analyzer:
- Fixed a bug that could lead to incorrect DoQA results. This bug affected documents with text lines that were not strictly vertical or horizontal.
- MRZ Scanner:
- Fixed a rare crash with inverted text.
- Fixed an issue with an incorrect birth date being parsed from the MRZ date, when the birth date could be returned from the future.
- VIN Scanner:
- Fixed a bug when scanning VINs that could have discarded valid results.
- Document Data Extractor:
- Fixed a rare case where an EHIC card could be returned with an excluded country.
- Credit Card Scanner:
- An invalid status will now be correctly returned if the frame accumulator confirms a field that is invalid.
- Barcode Scanner:
- Fixed an issue where the use case could not find UPC/EAN barcodes with extensions in RTU-UI v2 screen.
- General:
- ⚠️ Breaking changes:
- General:
ScanbotCameraX#.OnPictureTakenCallbacknow returns an already properly rotatedImageRef. You don’t need to apply rotation fromCaptureInfo, as it’s for informational purposes only.- Changed the
Handlemethod signature in theSDKLicenseErrorHandlerandIScanbotSDKLicenseErrorHandlerinterfaces. - All scanner and generator APIs, Document API, classic and RTU-UI components are migrated to return
IResultobjects. SeeIResultinterface. - To conveniently extract the result from the
IResultobject, also seeResultHelperclass that provides generic APIs to cast and extract the result from theIResultobject. - All scanners now have a common public interface:
- Replaced
Recognize...,Detect..., andScanFrom*functions by aRun(...)function. - Replaced all platform specific image parameters, e.g.
BitmapandByteArray, by a parameter of typeImageRef. - Moved
IO.Scanbot.Sdk.Core.ImageRefclass toIO.Scanbot.Sdk.Image.ImageRef.
- Replaced
ImageRefis now immutable. TheClone()method has been removed, and cloning now acquires a new strong reference.ImageRef:IfEnabledencryption mode has been replaced withAuto.- Classic Component:
ScanbotCameraXViewnow operates only withImageRef. Therefore,OnPictureTaken(image: ByteArray, captureInfo: CaptureInfo)method changed toOnPictureTaken(image: ImageRef, captureInfo: CaptureInfo). This applies to the classic components likeBarcodeScannerView,DocumentScannerViewand others. - All
ResultHandlers inFrameHandlers have been adjusted to support theIResultAPI.- The handle method signature has been changed to
Handle(IResult, FrameHandler.Frame). - Removed legacy
IO.Scanbot.Sdk.Camera.FrameHandlerResultclass. SeeIO.Scanbot.Common.IResult.
- The handle method signature has been changed to
- Removed all the RTU-UI v1 dependencies from the native SDK (under the hood).
- Function
string GetPath(Context,Uri,FileIOProcessor)doesn't supportcontent URIsinFileChooserUtils. - Removed legacy EHIC assets.
- Removed legacy ML ImageProcessor assets.
- Removed support of legacy
IO.Scanbot.Sdk.Imagefilters.LegacyFilter. - Moved
LineSegmentFloatclass fromIO.Scanbot.Sdk.CommontoIO.Scanbot.Sdk.Geometry.LineSegmentFloat. - Moved
ParametricFilterclass fromIO.Scanbot.Sdk.ImagefilterstoIO.Scanbot.Sdk.Imageprocessing. - Moved
ImageRotationclass fromIO.Scanbot.Sdk.Core.ImageRotationtoIO.Scanbot.Sdk.Image.ImageRotation. - Moved
AspectRatioclass fromIO.Scanbot.Sdk.CommontoIO.Scanbot.Sdk.Geometry.AspectRatio. - Replaced legacy
IO.Scanbot.Sap.SdkLicenseInfoclass withIO.Scanbot.Sdk.Licensing.LicenseInfo. - Replaced legacy
IO.Scanbot.Sap.SdkFeatureclass withIO.Scanbot.Sdk.Licensing.Feature. - Moved
GenericDocumentWrapperclass fromIO.Scanbot.Genericdocument.EntitytoIO.Scanbot.Sdk.Genericdocument. - Moved
GenericDocumentclass fromIO.Scanbot.Sdk.Genericdocument.EntitytoIO.Scanbot.Sdk.Genericdocument.
- Feature removal:
- Removed the License Plate Scanner.
- Document Scanner:
- The
processingModehas been moved fromDocumentScannerParameterstoDocumentScannerConfiguration. - Accepted score thresholds are now all
ints in the RTU-UI v2. - Removed Document RTU-UI v1 completely, including all related components.
- Renamed package
IO.Scanbot.Sdk.Document.DocumentDetectionStatustoIO.Scanbot.Sdk.Documentscanner.DocumentDetectionStatus. - Moved
IDocumentScannerinterface fromIO.Scanbot.Sdk.DocumenttoIO.Scanbot.Sdk.Documentscannernamespace.
- The
- Image Processing:
- The Image Processor now returns a new
ImageRefinstead of applying operations in place. Filters: TheColorDocumentFilternow works slightly differently by default. To get the previous behavior, setpaperWhitening=0andpaperWhiteningBias=64.- The behavior of the
LegacyFilterwas changed to be a no-op. The class is kept only for migration purposes. It is now required to migrate to the other parametric filters.
- The Image Processor now returns a new
- PDF Generator:
- Added parameter
ocrConfiguration: OcrEngineManager.OcrConfig?toIO.Scanbot.Sdk.ScanbotSDK#.CreatePdfGenerator(OcrConfiguration)that enables OCR in PDF generation. - Removed
GenerateWithOcr(...)methods fromPdfGenerator. To generate PDF with OCR layer useIO.Scanbot.Sdk.ScanbotSDK#..CreatePdfGenerator(OcrConfiguration). - Moved
IPdfGeneratorinterface fromIO.Scanbot.Sdk.ProcesstoIO.Scanbot.Sdk.Pdf. - Moved
PdfConfigurationclass fromIO.Scanbot.Pdf.ModeltoIO.Scanbot.Sdk.Pdfgeneration.
- Added parameter
- TIFF Generator:
- Renamed
TiffGeneratortoTiffGeneratorManager. - Moved TIFF model classes from
IO.Scanbot.Sdk.Tiff.ModeltoIO.Scanbot.Sdk.Tiffgeneration. - Changed
Array<*>toIList<*>inTiffGeneratorManagergenerate methods.
- Renamed
- Document Quality Analyzer:
- The
MinProcessedFraction,MaxProcessedFraction,MinNumberOfRequiredSymbols, andTileSizeoptions are moved into the separateProcessByTileConfiguration. - Renamed DoQA classes package from
IO.Scanbot.Sdk.ProcesstoIO.Scanbot.Sdk.Documentqualityanalyzer.
- The
- OCR Engine:
- Renamed
IO.Scanbot.Sdk.Ocr.IOcrEnginetoIO.Scanbot.Sdk.Ocr.IOcrEngineManager. - Moved all OCR model classes from
IO.Scanbot.Sdk.Ocr.ModeltoIO.Scanbot.Sdk.Ocr.
- Renamed
- MRZ Scanner:
- Removed MRZ RTU-UI v1 completely, including all related components.
- Text Pattern Scanner:
- Removed TextPattern RTU-UI v1 completely, including all related components.
- VIN Scanner:
- Removed VIN RTU-UI v1 completely, including all related components.
- Document Data Extractor:
- No longer returns crops by default. This can be re-enabled in the configuration.
- All documents:
CommonFieldType.CountryCodehas been renamed toIssuingCountry. EuropeanDriverLicenseFront: The common field type forCitizenshiphas been changed toNationality.- Removed DDE RTU-UI v1 completely, including all related components.
- Renamed DDE RTU-UI v2 classes package from
IO.Scanbot.Sdk.Ui_v2.DocumentdataextractortoIO.Scanbot.Sdk.ui_v2.Documentdata. - Renamed
DocumentDataExtractionStatus.SuccesstoDocumentDataExtractionStatus.Ok. - Renamed
DocumentDataExtractionStatus.ErrorStillFocusingtoDocumentDataExtractionStatus.ScanningInProgressStillFocusing. - Renamed
DocumentDataExtractionStatus.IncompleteValidationtoDocumentDataExtractionStatus.OkButInvalidDocument.
- EHIC Scanner:
- Removed EHIC RTU-UI v1 completely, including all related components.
- Check Scanner:
- Removed Check RTU-UI v1 completely, including all related components.
- Medical Certificate Scanner:
- Removed Medical RTU-UI v1 completely, including all related components.
- Barcode Scanner:
- No longer returns crops by default. This can be re-enabled in the configuration.
- The
MicroQrCodebarcode format has been removed from the list of common barcode formats. - Removed Barcode RTU-UI v1 completely, including all related components.
- Removed
IO.Scanbot.Sdk.Ui_v2.Barcode.Configuration.BarcodeScannerConfigurationand replaced it withIO.Scanbot.Sdk.Barcode.BarcodeScannerConfigurationin Barcode RTU-UI v2. - Moved
BarcodeDocumentParserclass fromIO.Scanbot.Sdk.Barcode.DocumenttoIO.Scanbot.Sdk.Barcode.
- General:
- 🚙 Under the hood:
- Updated the native Android SDK to Android Document SDK 8.0.1.
libittnotifyis no longer linked.- Fixed
NoClassDefFoundError: LocalBroadcastManager missingthat happened during dependency tree resolving when final app used newer version of androidx dependencies. - Dropped
SharedPreferencesusage for the License Key storing. - The SDK Project has been switched to
compileSdk = 36. - The SDK Project has been switched to AGP 8.10.1.
- The SDK Project has been switched to Kotlin 2.1.21.
- Updated
Daggerlib dependency to 2.56.2. - Updated
Kotlin Standard Librarydependency to 2.1.21. - Updated
libzuecilib dependency to 1.0.1. - Added
snowflake-arctic-embed-xslib dependency toeadfba3b.
iOS
- 🎉 New:
- General:
- The SDK now supports a new license key format, which does not contain special characters or line breaks.
SBSDKImageRefconstructor now supports HEIC images.- Added the possibility for providing custom encryption for individual images from path load / image save operations.
- Added property
CameraLiveScannerResolutionto all the RTU-UI v2 screens to control the camera live scanning resolution. - Added property
KeepScreenOnto all RTU-UI v2 screens to prevent the system from going idle or entering the lock screen while scanning. - Added property
KeepScreenOnto all Classic UI screens (seeSBSDKBaseScannerEnergyConfiguration) to prevent the system from going idle or entering the lock screen while scanning. - Added mandatory delegate functions
DidFailScanningWithError(...ScannerViewController, NSError)to all Classic-UI components. - All scanner and generator classes now returns errors instead of returning
nullorfalsein case of failures. There is an additional function out-parameter e.g.:SomeSdkFunction(... out NSError)that is populated with error in case of failures. - Added a read-only property
ColorStringtoSBSDKUI2Colorto retrieve the color in HEX format or a reference to a palette color. - Added functions
ToRgba()andToArgb()toSBSDKUI2Colorto retrieve the color in RGBA and ARGB hex formats.
- Document Scanner:
- Added the new
PartiallyVisibleDocumentConfigurationobject inSBSDKDocumentScannerConfigurationto determine how partially visible documents are aggregated and tracked. This feature is disabled by default. - Two new
SBSDKDocumentDetectionStatusvalues have been introduced:ErrorPartiallyVisibleandErrorPartiallyVisibleTooClose. - The
SBSDKDocumentDetectionResultnow includes aDisplacementVectorand aDisplacementenum to indicate the direction towards the center of a partially visible document. - Added support for Document Quality Analyzer configuration to RTU-UI v2 Document Scanner.
- Added support for bottom bar visual modes, see
SBSDKUI2BottomBarMode. - Added
SBSDKUI2TextWithBadgeButtonModepreview mode in RTU-UI v2 Document Scanner.
- Added the new
- Cropping Screen:
- Added support for selecting and moving individual corners in the cropping screen using a hardware keyboard. Press the tab key to cycle through the corner and edge handles. Use the arrow keys to move the selected corner or edge handle. Hold shift while pressing the arrow keys to move faster.
- Image Processing:
- The color document filter now has parameters controlling contrast, color, and paper enhancement.
- Document Quality Analyzer:
- Added
CumulativeContrastHistogramandCumulativeTextSizeHistogramfor text contrast and size estimation inSBSDKDocumentQualityAnalyzerResult. - Added the
OrientationConfidenceproperty to theSBSDKDocumentQualityAnalyzerResultresult object. - Added an option to explicitly enable/disable by tile processing via
ProcessByTileConfiguration.
- Added
- Text Pattern Scanner:
- Added the option
OptimizeSingleLinetoSBSDKTextPatternScannerConfiguration. Enable this option when scanning a single line or a single word that is hard to scan reliably. Disabled by default.
- Added the option
- Document Data Extractor:
- Added a metadata child document to all supported formats.
- Added
CountryCodevalues to all supported formats. - Introduced the
OkButInvalidDocumentreturn status toSBSDKDocumentDataExtractionStatus. This is returned if a field's contents are confirmed but fail validation rules. - Introduced
PersonalIdcommon field type toSBSDKCommonFieldType.
- Check Scanner:
- Support a wider range of USA check formats.
- Barcode Scanner:
- New supported document parser for British Columbia driver licenses PDF417 codes.
- Introduced a new algorithm for recognizing 1D symbologies, enhancing performance with blurred and distant barcodes. This feature is enabled by default but can be turned off using the
EnableOneDBlurScannerproperty in barcode format configurations on low-power devices if necessary. - Added a new
SBSDKBarcodeScannerEngineMode:NextGenMaxDistance, which is optimized for scanning from far distances on very high-power devices with a 4K video stream. - All 1D barcode formats can be configured with a new
OneDConfirmationModewhich isThoroughby default. Setting it toMinimalorNonecould lead to higher recall in difficult scenarios, but could also cause more false positives.
- General:
- 🚀 Improvements:
- General:
- All OCR-based features now benefit from new OCR models that are optimized for speed and accuracy.
- The "Created TensorFlow Lite XNNPACK delegate for CPU." log is no longer an output in production builds.
- If a global or custom encrypter is set when an image is created from a file, it will be automatically detected if the image is encrypted or not. Note that now
EncryptionModeis NOT ignored if a custom encrypter/decrypter is used. - When creating an
SBSDKImageReffromUIImageor from a .png file containing an alpha channel, it is blended with a user specified canvas color instead of simply discarding the alpha channel. It is possible to select whether to use aWhiteorBlackbackground inSBSDKRawImageLoadOptions,SBSDKPathImageLoadOptions, andSBSDKBufferImageLoadOptions. - Improved error handling and reporting in all scanners, this includes licensing errors, cancellation by user, file I/O errors, image conversion errors, and scanning errors. In case of an error, an
SBSDKErroris thrown with a descriptive error message and error code. - Camera sessions no longer show a black screen in case of license error. Instead, the camera runs but the detection fails with appropriate license error.
- Classic UI components can now be configured directly by setting the properties of the configuration objects instead of creating new configuration objects.
- Document Scanner:
- Aspect ratio scores are now symmetrical, and low scores are more consistent.
- Cropping Screen:
- Improved cropping handle movement, preventing irregular polygons and glitches.
- Image Processing:
- The color document filter now preserves colors better by default.
- Removed unused image filter models, saving about 2.4MB from binaries.
- PDF Generation:
- PDF generation now supports binarized images. Binarized images are stored in the PDF with an optimized compression algorithm, resulting in extremely small file sizes.
- Document Quality Analyzer:
- Improved performance.
- If provided configuration is invalid, an error will be returned instead of changing invalid fields to default values.
- OCR Engine:
- Improved detection of text, specifically for lines that are close together.
- Document Data Extractor:
- Improved
FrameAccumulationlogic. - Increased accuracy, specifically fewer false positives.
- General speed improvements.
- Glare detection now works more reliably.
- Improved
- Credit Card Scanner:
- Higher recall for expiry date detection.
- Improved
FrameAccumulationlogic.
- Medical Certificate Scanner:
- Improved date recognition.
- Barcode Scanner:
- Improved quiet zone checks for the barcode format
PharmaCodeto reduce the false positive rate. - Reduced the false positive rate of blurred barcodes in live mode when the barcode is only partially visible.
- Improved quiet zone checks for the barcode format
- General:
- 🐞 Bug fixes:
- General:
- SBSDKImageRef: If
SBSDKImageRefwas created in a lazy mode from an encrypted file and then saved to some location, a simple copy was performed. Because of this, the created file could become invalid if the decryption key depends on location. - SBSDKImageRef: If
SBSDKImageRefwas saved to an already existing location, in some cases it could return an error instead of overwriting the existing file. - SBSDKImageRef: Fixed possibility of
SBSDKImageRefto be saved as an invalid JPEG (when only part of the image was actually saved).
- SBSDKImageRef: If
- Document Scanner:
- Now correctly returns
ErrorTooDarkwhen nothing is detected and the image brightness is below the threshold.
- Now correctly returns
- Document Quality Analyzer:
- Fixed a bug that could lead to incorrect DoQA results. This bug affected documents with text lines that were not strictly vertical or horizontal.
- Document Data Extractor:
- Fixed a rare case where an EHIC card could be returned with an excluded country.
- MRZ Scanner:
- Fixed a rare crash with inverted text.
- Fixed an issue with an incorrect birth date being parsed from the MRZ date, when the birth date could be returned from the future.
- VIN Scanner:
- Fixed a bug when scanning VINs that could have discarded valid results.
- Credit Card Scanner:
- An invalid status will now be correctly returned if the frame accumulator confirms a field that is invalid.
- Barcode Scanner:
- Fixed a bug in Barcode RTU-UI v2 Multiple Scanning Mode where the count of the sheet button was not updated properly.
- General:
- ⚠️ Breaking changes:
- General:
- API Consistency Improvements: We went through our APIs and made several improvements to make them more consistent and easier to use. The SDK now throws errors instead of returning
nullorfalsein many places. This also affects how you handle results from various operations in the SDK. - All scanners now have a common public interface:
- Replaced
Recognize...andDetect...functions by aRunWithImage(...)function. - Replaced all platform specific image parameters, e.g.
UIImageandCMSampleBuffer, by a parameter of typeSBSDKImageRef.
- Replaced
SBSDKImageRefis now immutable. TheClone()method has been removed, and cloning now acquires a new strong reference.- Changed encryption of images, generated PDFs, and TIFFs:
- Removed properties
DefaultPDFEncrypterandDefaultImageStoreEncrypterfrom classScanbotUI. - Images, generated PDFs, and TIFFs are now encrypted using the new
DefaultCryptingProviderproperty in theScanbotSDKGlobalclass.
- Removed properties
- Changed the completion handlers of all RTU-UI v2 screens to either return a result or an error. Cancellation by user is treated as an error. Check
NSErrorcode withSBSDKErrorType.OperationCanceled. SBSDKImageRef:EncryptionModedefault value has been replaced withAuto.- Removed function
SetupDefaultLicenseFailureHandler(completion: (() -> ())?)fromScanbotSDKGlobalclass. Instead callSetupDefaultLicenseFailureHandler(). The completion handler is no longer needed. - Removed
SBSDKOCRPageandSBSDKOCRResultBlockclasses.SBSDKOCRResultnow contains all recognized pages asSBSDKPageobjects.
- API Consistency Improvements: We went through our APIs and made several improvements to make them more consistent and easier to use. The SDK now throws errors instead of returning
- Feature removal:
- Removed the License Plate Scanner.
- Document Scanner:
- The
ProcessingModehas been moved fromDocumentScannerParameterstoSBSDKDocumentScannerConfiguration. - Accepted score thresholds are now all
IntPtrinSBSDKDocumentScannerParameters. - Removed Document RTU-UI v1 completely, including
SBSDKUIDocumentScannerViewController,SBSDKUIFinderDocumentScannerViewController,SBSDKUICroppingViewControllerand all related components.
- The
- Image Processing:
- The Image Processor now returns a new
SBSDKImageRefinstead of applying operations in place. Filters: TheSBSDKColorDocumentFilternow works slightly differently by default. To get the previous behavior, setPaperWhitening=0andPaperWhiteningBias=64.- The behavior of the
SBSDKLegacyFilterwas changed to be a no-op. The class is kept only for migration purposes. It is now required to migrate to the other parametric filters.
- The Image Processor now returns a new
- PDF Generation:
- The constructor
SBSDKPDFGenerator(SBSDKPDFConfiguration, SBSDKOCREngineConfiguration, bool, out NSError)now returns anNSErrorfor any error occurrence during initialization.
- The constructor
- TIFF Generation:
- Removed the empty constructor initializer, please use
SBSDKTIFFGenerator(SBSDKTIFFGeneratorParameters, bool, out NSError)instead. - The constructor
SBSDKTIFFGenerator(SBSDKTIFFGeneratorParameters, bool)now includes anout NSErrorfor any error occurrence during initialization. - All the asynchronous
SBSDKTIFFGenerator#.GenerateFrom...(...)methods now includes anout NSErrorif the TIFF generation has failed and do not return a Boolean anymore. - All the synchronous
SBSDKTIFFGenerator#.GenerateFrom...(...)methods now include an additionalError?parameter which is non-nil if the TIFF generation fails.
- Removed the empty constructor initializer, please use
- Document Quality Analyzer:
- The
MinProcessedFraction,MaxProcessedFraction,MinNumberOfRequiredSymbols, andTileSizeoptions are moved into the separateSBSDKProcessByTileConfiguration.
- The
- MRZ Scanner:
- Removed MRZ RTU-UI v1 completely, including
SBSDKUIMRZScannerViewControllerand all related components. - Replaced methods
SBSDKMRZScanner.ScanFromImage(UIImage)andSBSDKMRZScanner.ScanFromImage(from: SBSDKBaseScannerFrame)bySBSDKMRZScanner.RunWithImage(SBSDKImageRef).
- Removed MRZ RTU-UI v1 completely, including
- Text Pattern Scanner:
- Removed Text Pattern RTU-UI v1 completely, including
SBSDKUITextPatternScannerViewControllerand all related components.
- Removed Text Pattern RTU-UI v1 completely, including
- VIN Scanner:
- Removed VIN RTU-UI v1 completely, including
SBSDKUIVINScannerViewControllerand all related components.
- Removed VIN RTU-UI v1 completely, including
- Document Data Extractor:
- No longer returns crops by default. This can be re-enabled in the configuration.
- All documents:
CommonFieldType.CountryCodehas been renamed toIssuingCountryinSBSDKCommonFieldType. EuropeanDriverLicenseFront: The common field type forCitizenshiphas been changed toNationality.- Renamed output statuses and improved their documentation to align with the new
OkButInvalidDocumentstatus. - Updated
SBSDKDocumentDataExtractionStatusstatuses. - Removed the
SBSDKUIDataExtractorViewControllerclass and its related components as part of the DDE RTU-UI v1 removal.
- EHIC Scanner:
- Removed EHIC RTU-UI v1 completely, including
SBSDKUIHealthInsuranceCardRecognizerViewControllerand all related components.
- Removed EHIC RTU-UI v1 completely, including
- Check Scanner:
- Removed Check RTU-UI v1 completely, including
SBSDKUICheckScannerViewControllerand all related components. - Changed
SBSDKCheckScannerViewControllerDelegatefunctionDidScanCheck(SBSDKCheckScannerViewController, SBSDKCheckScanningResult, bool)toDidScanCheck(SBSDKCheckScannerViewController controller, SBSDKCheckScanningResult result, bool isHighRes). - Renamed enum
SBSDKCheckRecognizerStatetoSBSDKCheckScannerState. - Renamed the enum case
RecognizingtoScanninginSBSDKCheckScannerState.
- Removed Check RTU-UI v1 completely, including
- Medical Certificate Scanner:
- Removed Medical RTU-UI v1 completely, including
SBSDKUIMedicalCertificateRecognizerViewControllerand all related components.
- Removed Medical RTU-UI v1 completely, including
- Barcode Scanner:
- No longer returns crops by default. This can be re-enabled in the configuration.
- The
MicroQrCodebarcode format has been removed from the list of common barcode formats. - Removed Barcode RTU-UI v1 completely, including
SBSDKUIBarcodeScannerViewController,SBSDKUIBarcodesBatchScannerViewControllerand all related components. - Removed
SBSDKUI2BarcodeScannerConfigurationand replaced it withSBSDKBarcodeScannerConfigurationin Barcode RTU-UI v2. - Removed properties
IsSelectableandIsAutomaticSelectionEnabledfromSBSDKBarcodeTrackingOverlayConfiguration. - Renamed parameter
IsSelectedtoIsHighlightedin tracking overlay methods. - Changed delegate method signatures in
SBSDKBarcodeTrackingOverlayControllerDelegate:- Removed
DidChangeSelectedBarcodesmethod. - Added
ShouldHighlightmethod to determine barcode highlighting state. - Added
ProposedStyleparameter to style-related delegate methods.
- Removed
- General:
- 🚙 Under the hood:
- Updated the native iOS SDK to iOS Document SDK 8.0.4.
- Upgraded libzueci to 1.0.1.
- Added snowflake-arctic-embed-xs eadfba3b.
.NET - Version 7.1.1 (3 Nov 2025)
Android
- 🎉 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
- Check Scanner:
- We now extract 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.
- We now extract the field after the account number on US checks. The name in the result is
- Barcode Scanner:
- 🚀 Improvements:
- Check Scanner:
- Updated the documentation for US check field.
- Improved the handling of scanning results when the detection mode
DetectAndCropDocumentis set.
- Check Scanner:
- 🐞 Bug fixes:
- Document Scanner:
- Fixed an issue with an empty
DocumentQualitywhenAcknowledgementModewas set toBadQuality. - Fixed a bug where the usage guidance wouldn't display properly on screen startup.
- Fixed the image size on the review screen when in horizontal layout.
- Fixed an issue with an empty
- Check Scanner:
- Fixed a bug in the implementation of the US check standard which lead to rejection of valid checks.
- General:
- Fixed 16 KB page size support for the TFLite native library.
- Document Scanner:
- ⚠️ Breaking changes:
- Barcode Scanner:
- The field
MinConfirmationsStandaloneEANinBarcodeAccumulationConfigurationwas moved and renamed to the fieldMinimumNumberOfRequiredFramesWithEqualRecognitionResultExtensionlessinBarcodeFormatUpcEanConfiguration.
- The field
- Barcode Scanner:
- 🚙 Under the hood:
- Updated the native Android SDK to Android Document SDK 7.1.2.
iOS
- 🎉 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
- Check Scanner:
- We now extract 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. - Added a new function
ForResult(SBSDKCheckScannerViewController controller, SBSDKCheckScanningResult result)toSBSDKCheckScannerViewControllerDelegate.
- We now extract the field after the account number on US checks. The name in the result is
- Barcode Scanner:
- 🚀 Improvements:
- Check Scanner:
- Updated the documentation for US check field.
- Improved the handling of scanning results when the detection mode
DetectAndCropDocumentis set.
- Check Scanner:
- 🐞 Bug fixes:
- Document Scanner:
- Fixed a bug in RTU-UI that did not always crop images from the photo library.
- Check Scanner:
- Fixed a bug in the implementation of the US check standard which lead to rejection of valid checks.
- General:
- Fixed a bug in the RTU-UI that prevented the proper display of the view finder in landscape mode.
- Document Scanner:
- ⚠️ Breaking changes:
- Barcode Scanner:
- The field
MinConfirmationsStandaloneEANinSBSDKBarcodeAccumulationConfigurationwas moved and renamed to the fieldMinimumNumberOfRequiredFramesWithEqualRecognitionResultExtensionlessinSBSDKBarcodeFormatUpcEanConfiguration.
- The field
- Barcode Scanner:
- Changed
SBSDKCheckScannerViewControllerDelegatefunctionDidScanCheck(SBSDKCheckScannerViewController controller, SBSDKCheckScanningResult result)toDidScanCheck(SBSDKCheckScannerViewController controller, SBSDKCheckScanningResult result, bool isHighRes).
- Changed
- Barcode Scanner:
- 🚙 Under the hood:
- Updated the native iOS SDK to iOS Document SDK 7.1.4.
.NET - Version 7.1.0 (11 Sep 2025)
Android
- 🎉 New:
- Document Scanner:
ContourDetectorfeature was renamed toDocumentScannerand has a more advanced configuration and scanning API. SeeDocumentScanner.- 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
CameraScreenConfiguration.AutoRotateImages. Enabled by default. - 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. - Introduced advanced generation settings for PDFs and TIFFs.
- Added a new document detection status
OkButTooDark. - Added setters for
UseCaseResolutionSizelimits for Preview and Analyzer use-cases inScanbotCameraXView. SeeScanbotCameraXView.SetPreviewFrameResolutionLimit(limit: UseCaseResolutionSize)andScanbotCameraXView#setAnalyzerFrameResolutionLimit(limit: UseCaseResolutionSize).
- Document Quality Analyzer:
- Advanced configuration of Document Quality Analyzer. See
DocumentQualityAnalyzerConfiguration. - Can now return the orientation of the document in steps of 90 degrees. Enabled by setting
DocumentQualityAnalyzerConfiguration.DetectOrientationto true. - Optionally return
QualityHeatmapas a part of theDocumentQualityAnalyzerResult. - Added an option to limit the input image size. If it is bigger, then the image will be resized.
- Added support for an advanced on-image scanning configuration
DocumentQualityAnalyzercall.
- Advanced configuration of Document Quality Analyzer. See
- Credit Card Scanner:
- Introduced a new beta feature: Credit Card Scanner, capable of detecting credit cards and extracting data from them. See
CreditCardScanner. - Introduced a new Credit Card Scanner RTU-UI v2 component. See
CreditCardScannerActivity.
- Introduced a new beta feature: Credit Card Scanner, capable of detecting credit cards and extracting data from them. See
- MRZ Scanner:
- Advanced configuration of MRZ Scanner. See
MrzScannerConfiguration. - New RTU UI v2 is now available for MRZ Scanner. See
MrzScannerActivity. - Added support for non-ICAO conformant machine readable zones on US border crossing cards.
- Added properties to
MrzScannerConfigurationthat allow to set if crops should be returned.
- Advanced configuration of MRZ Scanner. See
- Text Pattern Scanner:
- Feature was renamed from Generic Text Recognizer to Text Pattern Scanner and has a more advanced configuration and scanning API. See
TextPatternScanner. - New RTU UI v2 is now available for Text Pattern Scanner. See
TextPatternScannerActivity.
- Feature was renamed from Generic Text Recognizer to Text Pattern Scanner and has a more advanced configuration and scanning API. See
- VIN Scanner:
- RTU-UI v2: Added a brand-new, redesigned VIN Scanner. Use
IO.Scanbot.Sdk.Ui_v2.Vin.VinScannerActivity. - Added a new property
ExtractVINFromBarcodeinVinScannerConfigurationthat allows VIN data extraction from barcodes (for RTU UI v1 screen).
- RTU-UI v2: Added a brand-new, redesigned VIN Scanner. Use
- Document Data Extractor (Previously: Generic Document Recognizer):
- 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. - Feature was renamed from Generic Document Recognizer to Document Data Extractor and has a more advanced configuration and scanning API. See
DocumentDataExtractor. - Now supports fallback to extraction of only the MRZ on unsupported documents.
- Added support for German driver qualification card.
- Document field validation now supports two additional statuses:
InferredandIgnored. - Generic document fields now support
ParsedDataattributes for standardized data (ISO 8601 dates, ISO 3166-1 countries, "Male"/"Female" gender). SeeFieldParsedData. - Added support for an advanced on-image scanning configuration for:
DocumentDataExtractor,HealthInsuranceCardScanner,MedicalCertificateScanner,MrzScanner, andCheckScanner.
- RTU-UI v2: Added a brand-new, redesigned Document Data Extractor. Use
- Health Insurance Card (EHIC) Scanner:
- Advanced configuration of Health Insurance Card Scanner. See
EuropeanHealthInsuranceCardRecognizerConfiguration.
- Advanced configuration of Health Insurance Card Scanner. See
- Check Scanner:
- RTU-UI v2: Added a brand-new, redesigned Check Scanner. Use
IO.Scanbot.Sdk.Ui_v2.Check.CheckScannerActivity. - Feature was renamed to Check Scanner and has a more advanced configuration and scanning API. See
CheckScanner. - Added possibility of returning cropped document.
- RTU-UI v2: Added a brand-new, redesigned Check Scanner. Use
- Medical Certificate Scanner:
- Feature was renamed to Medical Certificate Scanner and has a more advanced configuration and scanning API. See
MedicalCertificateScanner.
- Feature was renamed to Medical Certificate Scanner and has a more advanced configuration and scanning API. See
- Barcode Scanner:
- Added support for barcode types Pharma Code, Pharma Code Two Track and PZN (Pharmazentralnummer).
- Added support for the HIBC barcode document format.
- Added support for an advanced on-image scanning configuration for
ScanFromBitmapcall. - Added ability to configure common barcode properties via
BarcodeFormatCommonConfiguration. - Added
MinimumSizeScoreto barcode configurations;BarcodeItemhas a newSizeScorefield. Barcodes withSizeScore < MinimumSizeScoreare ignored. RTU-UI v2 also supportsMinimumSizeScore. - Introduced
StrictModefor certain barcode configurators (QR Code,Micro QR Code,rMQR Code,PDF417,MicroPDF417andgs1Composite). - Added the ability to return the barcode image in the resulting object via
BarcodeScannerConfiguration.ReturnBarcodeImage. - Added new engine modes
NextGenFarDistance(optimized for scanning from far distances) andNextGenLowPowerFarDistance(optimized for scanning from far on low-power devices). - Barcode scanning results have been enhanced with more detailed information, including
SizeScore. SeeBarcodeItem. - Added new predefined subsets of barcode formats (1D, 2D, Postal, Pharma, etc.). Old sets removed. See
BarcodeFormats. - Simplified configuration of Barcode Scanner RTU UI v2. See
BarcodeScannerConfiguration. - Added an ability to filter out all unaccepted barcode document formats in
BarcodeDocumentParser. - Added a flag
AddAdditionalQuietZonetoBarcodeFormatConfigurationBasefor scanning sharp crops of a barcode. - 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.
- General:
- .NET: Added support for .NET 9 SDK, in addition to .NET 8 SDK.
- Added a new property
KeepScreenOnin all RTU-UI v2 scanner screen configurations to keep the device screen awake while scanning. - Cropped images returned as part of the scanner results are now represented as image references (
ImageRef). - Image Processor can now be created with an
ImageRefobject. SeeImageProcessor(imageRef: ImageRef). - The
ResultAccumulationConfigurationnow supports a newConfirmationMethodfield. - Document Data Extractor, Medical Certificate Scanner and Check Scanner now return document detection results.
- Added source OCR Page as an optional input parameter to PDF Generator.
- Added an option to limit the analyzer FPS processing for
DocumentScannerView,BarcodeScannerViewandBarcodeScanAndCountView. See more inICameraViewConfiguration.SetAnalyzerFpsLimit(fps: Float)method. - Added support for 16KB page size.
- Document Scanner:
- 🚀 Improvements:
- Document Scanner:
- Added
OkOrientationMismatchstatus, returned when screen and document orientations don't match. Can be ignored via configuration. - Exposed
AcceptedAspectRatioScoreandAspectRatiosin the scanner configuration. - Improved the Document Scanner RTU-UI v2 acknowledgment's bad image quality hint by adding the ability to present up to 5 lines.
- Increased performance for Document Scanner algorithms.
- Added
- Document Quality Analyzer:
- Guarantee the same document quality score for 90 degrees rotated images.
- Speed improvements. Note: document quality scores may slightly change for the same input images when compared to the previous version of the DoQA(Document Quality Analyzer).
- OCR Engine:
- Improved handling of special characters like umlauts when frame accumulation is used.
- Added source OCR Page as an optional input parameter to PDF Generator.
- Image Processing:
- New Image Processor preset
BinarizationFilterPreset.Preset5for documents with barcodes.
- New Image Processor preset
- MRZ Scanner:
- For pre-2022 Costa Rican passports, ID Number is returned as
DocumentNumberand Sequence Number asPersonalNumberin MRZ fields. - On US border crossing permits, the document number is now returned in the correct field.
- Dates in MRZ now also support
parsedDatacorrectly.
- For pre-2022 Costa Rican passports, ID Number is returned as
- Text Pattern Scanner:
- Improved performance with the same quality (quantized model).
- General speed improvements.
- Now supports XNNPACK for faster inference.
- VIN Scanner:
- Validation of VINs implements the full ISO 3779 standard, reducing false positives.
- Document Data Extractor (Previously: GenericDocumentRecognizer):
- Digits can no longer be recognized as part of given names or surnames.
- Higher accuracy for document classification.
- 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
DePassportandDeIdCard. - 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.
- Medical Certificate Scanner:
- Date recognition in Medical Certificate forms is now based on the Scanbot OCR Engine and shows significant quality improvements.
- Barcode Scanner:
- By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set
stripCheckDigits = true. - Significant speed-up in live mode on very large input resolutions.
- Improved quiet zone checks for
ITF,Code 11,MSI Plessey,IATA 2 of 5,Industrial 2 of 5, andCode 25. - Improved the false positive rate for
ITFbarcodes. - Added the option to ignore barcodes that do not decode to one of the accepted document formats for Barcode Scanner RTU-UI v2 (
BarcodeScannerConfiguration.OnlyAcceptDocuments). - Added support for
MaximumTextLengthconstraint onCode 11,Code 39,Code 93,Code 128, andCodabarbarcode formats. - 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.
- GS1 Composite codes are now processed faster in Scan from Image mode.
- Improved handling of back action with multiple dialogs and bottom sheets.
- By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set
- General:
- Improved
ScanbotCameraXViewpreview size selection strategy for square screens. - Improved the algorithm of high performance cores computation as the old one didn't work correctly on some devices (e.g. Pixel 9 Pro).
- 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).
- PDF Generator with OCR layer now handles non-ASCII characters correctly.
- Improved
- Document Scanner:
- 🐞 Bug Fixes:
- Document Scanner and Image Processing:
- 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. - Fixed Document Scanner point sorting.
- Fixed Document Quality Analyzer crash when
MaxImageSizewas 0. - Fixed Document Quality Analyzer patch size when
MinFraction= 1. - Fixed Document Scanner
FillPolygonColor(not filled by default) for RTU-UI v1. - Fixed Document Scanner/Finder User Guidance default background for RTU-UI v1.
- Fixed Document Scanner shutter button default color for RTU-UI v1.
- PDF Generator properly handles no-schema URIs.
- TIFF Generator: fixed JPEG/Deflate support and URI schema handling.
- Clamped parametric filters radius to 127.
- In Document Scanner RTU-UI v2,
PageSnapFeedbackNone()no longer prevents auto-transition to review screen at max pages limit. - Cropping Screen RTU-UI v2 status bar light/dark mode now correctly applied.
- Cropping Screen RTU-UI v2 now returns result instead of canceling if no changes were made.
- Cropping View: Fixed an issue with a broken layout after screen rotation without recreating the view.
- Fixed person-number extraction crash and simplified logic.
- Fixed
content://type uri handling forPdfGenerator,TiffGenerator, andOcrEngine. - 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.
- Document Data Extractor (Previously: GenericDocumentRecognizer):
- Fixed Document Data Extractor bug determining validation status when fields excluded.
- Fixed Document Data Extractor incorrect handling of Driver License expiry date validation.
- Fixed Document Data Extractor merging of
MaidenNameandSurnameon some German ID cards. - Resolved Document Data Extractor high peak memory consumption issue.
- Fixed an issue causing
nullto be returned as a confidence of empty fields.
- Text Pattern Scanner (Previously: Text Data Scanner):
- Fixed Text Pattern Scanner incorrect output for Unicode symbols.
- Check Scanner:
- Fixed Check Scanner User Guidance default background (was absent) for RTU-UI v1.
- Medical Certificate Scanner:
- Fixed Medical Certificate Scanner User Guidance default background (was absent) for RTU-UI v1.
- MRZ Scanner:
- Fixed MRZ Scanner crash when MRZ fallback was enabled and no text on document was detected.
- Scanning from still images now correctly returns
MrzScannerResult.Successas true.
- Barcode Scanner:
- Fixed returned results for all types of
UpcEanExtensionBehavior. - Fixed checksum for
Code 39barcode format. - Fixed an overflow when decoding
Micro Qr Codewith wrong bits in numeric mode. - Fixed
MinimumTextLengthforITFbarcode format (checked symbols instead of text length). - Fixed sorting of quad points for four-state/postal barcode types.
- In
Code 11barcodes with 10 data digits, whenChecksumis enabled andStripCheckDigitsis true, scanner now correctly strips both check digits. FindAndPickScanningMode.SheetContent.BarcodeItemImageVisiblein RTU-UI v2 now correctly applies visibility.- Fixed quad when flag
BarcodeFormatConfigurationBase.AddAdditionalQuietZoneis enabled. - 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
FNkey asFormattedName. - RTU-UI v2: Fixed a crash with barcode launcher initialization when the SDK was not yet initialized.
- 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 returned results for all types of
- General:
- Fixed the resolution strategy for a square preview for
ScanbotCameraXView(Internal View for the scanners). - Fixed a crash when adding/removing frameHandlers in
ScanbotCameraXin a concurrency race condition. - Fixed screen insets for Android API 35 with forced edge-to-edge mode by opting out for RTU-UI v1 screens.
- In RTU-UI v2, modal dialog no longer appears below status bar.
- RTU-UI v2: Fixed handling of the back actions for modal dialogs.
- Accessibility content for action buttons in RTU-UI v2 now properly applied.
- Fixed a bug when
CameraTakePictureCallback.OnTakePictureRequested()wasn't called properly at the corresponding event. - Fixed an issue with the black preview in
ScanbotCameraXViewwhen the camera selected a square resolution on some Samsung and Xiaomi devices.
- Fixed the resolution strategy for a square preview for
- Document Scanner and Image Processing:
- ⚠️ Breaking changes:
- Package Structure:
- In v7.1.0, the packaging structure has changed. Unlike v6.1.0, your application project must now also reference the
ScanbotSDK.NETpackage directly. Transitive references are no longer sufficient, because native Android SDK assets are delivered through a shared reference mechanism to avoid doubling package size.
- In v7.1.0, the packaging structure has changed. Unlike v6.1.0, your application project must now also reference the
- Native Library Update:
- Android: The Android SDK is now packaged with multiple
.aarfiles, split by module (previously provided as a single combined.aar).- Note: Please clear your project’s build cache completely when upgrading from a previous
ScanbotSDKversion to prevent potential conflicts.
- Note: Please clear your project’s build cache completely when upgrading from a previous
- Android: The Android SDK is now packaged with multiple
- General API structure:
ContourDetectorfeature renamed toDocumentScanner. Document Scanner moved toIO.Scanbot.Sdk.Documentpackage.- Generic Document Recognizer feature renamed to
DocumentDataExtractor. - Generic Text Recognizer feature renamed to
TextPatternScanner. - Medical Certificate Recognizer feature renamed to
MedicalCertificateScanner. - Check Recognizer feature renamed to
CheckScanner. MRZScannerclass renamed toMrzScanner.- TIFF Writer feature renamed to
TiffGenerator. AllWrite*()methods renamed toGenerateFrom*(). - For all classic components (scanners) methods like
Scan[recognize]WithFinderOverlay()are renamed toScan[Recognize]InArea(). - 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
IO.Scanbot.Sdk.Ui_v2.Common.Mappers.AspectRatio, useIO.Scanbot.Sdk.Common.AspectRatio. - Removed Result Repositories mechanism for most RTU UI screens.
- Moved all logic related to PDF with OCR from OCR Engine to PDF Generator. See
PdfGenerator.GenerateWithOcr*(). - Removed class
ImageProcessor.ImageRotation. UseIO.Scanbot.Sdk.Core.ImageRotation.
- Feature removal:
- Removed deprecated License Plate Scanner feature.
- Removed deprecated Text Orientation Scanner. Use
DocumentQualityAnalyzerinstead.
- Result type changes:
- Changed result APIs for Barcode Scanner (RTU-UI v2:
BarcodeScannerUiResult), Check Scanner (CheckScanningResult), Health Insurance Card Scanner (EuropeanHealthInsuranceCardRecognitionResult), MRZ Scanner (MrzScannerResult), Medical Certificate Scanner (MedicalCertificateScanningResult), VIN Scanner (VinScannerResult), Document Scanner (DocumentDetectionResult), Text Pattern Scanner (TextPatternScannerResult).
- Changed result APIs for Barcode Scanner (RTU-UI v2:
- Configuration object changes:
- Removed old configuration APIs for Barcode Scanner, Check Scanner, Document Quality Analyzer, Health Insurance Card Scanner, MRZ Scanner, Document Data Extractor, Text Pattern Scanner, Medical Certificate Scanner, VIN Scanner, and PDF Generator. Use new configuration mechanisms.
- Renamed enum
MSIPlesseyChecksumAlgorithmtoMsiPlesseyChecksumAlgorithm. - Replaced
AcceptedDocumentFormatsinBarcodeScannerConfigurationwithExtractedDocumentFormatsandOnlyAcceptDocumentsflag.
- Document Scanner:
- Changed engine mode API representation:
LegacyforEdgeBased,MlforMlBased. SeeDocumentScannerEngineMode. - RTU-UI v2:
Screens.Camera.CameraConfiguration.IgnoreBadAspectRatioparameter renamed toIgnoreOrientationMistmatch. - RTU-UI v2:
AcceptedSizeScoreandAcceptedAngleScorerange changed from0..1to0..100. - RTU-UI v2: Detection parameters moved from
Screens.Camera.CameraConfigurationtoScreens.Camera.ScannerParameters. - All detected lines in results represented by new
LineSegmentFloatclass.
- Changed engine mode API representation:
- Document Quality Analyzer:
- Removed
NoDocumentstatus fromDocumentQualityenum.
- Removed
- Text Pattern Scanner:
- Changed interfaces of Text Pattern Validation and Clean callbacks. Use new
ContentValidator.
- Changed interfaces of Text Pattern Validation and Clean callbacks. Use new
- Document Data Extractor (Previously: GenericDocumentRecognizer):
- Removed the legacy RTU-UI Document Data Extractor. Use RTU-UI v2 instead.
- Removed
ShouldRecognizeproperty fromExtract*()methods. Use newDocumentDataExtractionMode. - By default, only German documents are now enabled for scanning. Previously, all supported documents were enabled.
DeDriverLicenseFrontandDeDriverLicenseBackare renamed toEuropeanDriverLicenseFrontandEuropeanDriverLicenseBackrespectively.
- VIN Scanner:
- VIN Scanner RTU-UI v1: Changed
TextPatternScannerResultresult type toVinScannerResult.
- VIN Scanner RTU-UI v1: Changed
- Barcode Scanner:
- All Barcode Formats are represented by
IO.Scanbot.Sdk.Barcode.BarcodeFormatenum. Other barcode format enums removed. - Replaced class
IO.Scanbot.Barcodescanner.Model.BarcodeTypewithIO.Scanbot.Sdk.Barcode.BarcodeFormat. - Barcode Document Format is represented by
IO.Scanbot.Sdk.Barcode.BarcodeDocumentFormatenum. - RTU-UI v2: Refactored
BarcodesExtensionFilterenum, synchronized withUpcEanExtensionBehaviorenum from Barcode Scanner Classic component API. BarcodePolygonsView.BarcodeItemViewBinder.BindView(): Added an additional property withTextViewStyle.
- All Barcode Formats are represented by
- RTU-UI v1:
- RTU-UI v1: All screens now expect
RGBAvalues for HEX string when parsing configuration from JSON. - RTU-UI v1 Barcode: Refactored screen result structure. Removed ability to set Barcode Image Generation type in screen config.
- RTU-UI v1: All screens now expect
- General: Removed
ScanbotSdkInitializer.UseCameraXRtuUi().
- Package Structure:
- ⚠️ 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 the native Android SDK to Android Document SDK 7.1.1.
- The Android SDK is now packaged with multiple
.aarfiles, split by module (previously provided as a single combined.aar). - Updated Compile Sdk to 35.
- Android Jetpack Compose updated to 1.7.8.
- Upgraded nlohmann::json to 3.11.3.
- Updated xsimd version to 13.2.0.
- Updated xtensor version to 0.26.0-scanbot.
- Updated xtl version to 0.8.0.
- Upgraded yaml-cpp to 0.8.
- Upgrade OpenCV to 4.10.
- Updated Boost C++ version to 1.88.0.
- Updated spdlog version to 1.15.2.
- Added flatbuffers 2.0.6.
- Added 3rd party PdfiumAndroid library.
iOS
- 🎉 New:
- Document Scanner:
DocumentDetectorwas renamed toDocumentScannerand has a more advanced configuration and scanning API. SeeSBSDKDocumentScanner.- RTU-UI v2: Added the auto-rotate document option. The document will now be automatically rotated based on the text orientation detected by the Document Quality Analyzer. See
SBSDKUI2CameraScreenConfiguration.AutoRotateImages. - Introduced advanced generation settings for PDFs and TIFFs (via
SBSDKPDFConfigurationandSBSDKTIFFGeneratorParameters). - Added a new document detection status
OkButTooDark. Returned when a document is detected under poor lighting conditions. - Ability to set the bad aspect ratio hint of the Document Scanner. See
SBSDKDocumentScannerStatusTextConfiguration.TextHintBadAspectRatio. - Image Processor can be initialized with
SBSDKImageRef,UIImage, orImageURL. New methods to apply filters, crop, rotate, and resize. SeeSBSDKImageProcessor. - Added advanced configuration to the PDF Generator. See
SBSDKPDFConfiguration. Introduced new OCR configuration:SBSDKPDFGenerator.OcrConfiguration. - Added property
ShowReviewScreenOnStarttoSBSDKUI2DocumentScanningFlow. If enabled, the scanner automatically navigates to the Review Screen when the flow starts. - Added property
OpenReviewAfterEachScantoSBSDKUI2CameraScreenConfiguration. If enabled, the Review Screen is opened after each addition of a new page. - Added property
ShowLastPageWhenAddingtoSBSDKUI2ReviewScreenConfiguration. If enabled, the Review Screen will be opened showing the last page. - Added property
DocumentPreviewImageSizeLimitinSBSDKDocumentPageto limit the size of the document preview image.
- Document Quality Analyzer:
- Added advanced APIs in Document quality analyzer feature. See
SBSDKDocumentQualityAnalyzer,SBSDKDocumentQualityAnalyzerConfiguration, andSBSDKDocumentQualityAnalyzerResult. - Can now also return the orientation of the document in steps of 90 degrees. Enabled by setting
SBSDKDocumentQualityAnalyzerConfiguration.DetectOrientationto true. - Optionally,
QualityHeatmapis returned as a part of theSBSDKDocumentQualityAnalyzerResult. - Added support for an advanced on-image scanning configuration
SBSDKDocumentQualityAnalyzer.Analyze(image:)call.
- Added advanced APIs in Document quality analyzer feature. See
- Credit Card Scanner:
- Introduced a new beta feature: Credit Card Scanner, capable of detecting credit cards and extracting data from them. See
SBSDKCreditCardScanner. - New RTU UI v2 component for Credit Card Scanner. See
SBSDKUI2CreditCardScannerViewController.
- Introduced a new beta feature: Credit Card Scanner, capable of detecting credit cards and extracting data from them. See
- MRZ Scanner:
- Added advanced configuration to the MRZ Scanner. See
SBSDKMRZScannerConfiguration. - New RTU UI v2 is now available for MRZ Scanner. See
SBSDKUI2MRZScannerViewController. - Added support for non-ICAO conformant machine readable zones on US border crossing cards.
- Added advanced configuration to the MRZ Scanner. See
- Text Pattern Scanner:
- Feature was renamed from Generic Text Recognizer to Text Pattern Scanner and has more advanced configuration and scanning API. See
SBSDKTextPatternScanner. - New RTU UI v2 is now available for Text Pattern Scanner. See
SBSDKUI2TextPatternScannerViewController.
- Feature was renamed from Generic Text Recognizer to Text Pattern Scanner and has more advanced configuration and scanning API. See
- VIN Scanner:
- Added a new property
ExtractVINFromBarcodeinSBSDKUIVINScannerBehaviorConfigurationthat allows VIN data extraction from barcodes (for RTU UI v1).
- Added a new property
- Document Data Extractor (Previously: Generic Document Recognizer):
- RTU-UI v2: Added a brand-new, redesigned Document Data Extractor. See
SBSDKUI2DocumentDataExtractorViewController. - Feature was renamed from Generic Document Recognizer to Document Data Extractor and has a more advanced configuration and scanning API. See
SBSDKDocumentDataExtractor. - Introduced a Document Verification API including document semantics verification capabilities. Use the new
VerifyDocumentWithDocumentParts(SBSDKGenericDocument[] documentParts)method inSBSDKDocumentDataExtractor. - 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
SBSDKDeAddressParserConfiguration. Parsed addresses are stored as child documents. - Now supports fallback to extraction of only the MRZ on unsupported documents by using the config
SBSDKMRZDocumentType.Unknown. - Added support for German driver qualification card.
- Document field validation now supports two additional statuses:
InferredandIgnored. SeeSBSDKGenericDocumentFieldValidationStatus. - Generic document fields now support
ParsedDataattributes for standardized data (ISO 8601 dates, ISO 3166-1 countries, "Male"/"Female" gender). SeeSBSDKGenericDocumentFieldParsedData. - Added support for an advanced on-image scanning configuration for:
DocumentDataExtractor,HealthInsuranceCardScanner,MedicalCertificateScanner,MrzScanner, andCheckScanner.
- RTU-UI v2: Added a brand-new, redesigned Document Data Extractor. See
- Health Insurance Card (EHIC) Scanner:
- Added advanced configuration to the Health Insurance Card Recognizer. See
SBSDKEuropeanHealthInsuranceCardRecognizerConfiguration.
- Added advanced configuration to the Health Insurance Card Recognizer. See
- Check Scanner:
- Feature was renamed to Check Scanner and now has more advanced configuration and scanning API. See
SBSDKCheckScanner. - Ability to configure Check Scanner Classic UI using
SBSDKCheckScannerViewController.SetConfiguration(_:).
- Feature was renamed to Check Scanner and now has more advanced configuration and scanning API. See
- Medical Certificate Scanner:
- Feature was renamed to Medical Certificate Scanner and has more advanced configuration and scanning API. See
SBSDKMedicalCertificateScanner. - Introduced a new method to scan a medical certificate from frames. See
SBSDKMedicalCertificateScanner.ScanFromImage(from:parameters:).
- Feature was renamed to Medical Certificate Scanner and has more advanced configuration and scanning API. See
- Barcode Scanner:
- Added support for barcode types Pharma Code, Pharma Code Two Track and PZN (Pharmazentralnummer).
- Added support for the HIBC barcode document format.
- Added support for an advanced on-image scanning configuration for
SBSDKBarcodeScanner.ScanFromImage(from:useLiveMode:)call. - Added ability to configure common barcode properties via
SBSDKBarcodeFormatCommonConfiguration. - Added
MinimumSizeScoreto barcode configurations;SBSDKBarcodeItemhas newSizeScore. Barcodes withSizeScore < MinimumSizeScoreare ignored. - Introduced
StrictModefor certain barcode configurators (QR Code,Micro QR Code,rMQR Code,PDF417,MicroPDF417andgs1Composite). - Added the ability to return the barcode image in the resulting object via
SBSDKUI2BarcodeScannerConfiguration.ReturnBarcodeImageproperty. - Added new engine modes
NextGenLowPower,NextGenFarDistanceandNextGenLowPowerFarDistance. SeeSBSDKBarcodeScannerEngineMode. - Barcode scanning results have been enhanced with more detailed information. See
SBSDKBarcodeItem. - Added new predefined subsets of barcode formats (1D, 2D, Postal, Pharma, etc.). Old sets removed(
SBSDKBarcodeTypes). SeeSBSDKBarcodeFormat,SBSDKBarcodeFormats. - Ability to initialize Barcode Scanner using new constructor
SBSDKBarcodeScanner(formats:, extractedDocumentFormats:). - Introduced new property
OptimizeOverlaystoSBSDKBarcodeScanner. - Ability to configure Barcode Scanner Classic UI and Scan-and-Count Classic UI using
SetConfiguration(_:). - Ability to get
ExtractedDocumentFormatsfromSBSDKBarcodeDocumentParser. - Ability to know when a barcode was last detected using
SBSDKBarcodeScannerAccumulatingResult.DateOfLastDetection.
- General:
- .NET: Added support for .NET 9 SDK, in addition to .NET 8 SDK.
- Added property
HardwareButtonsEnabledtoSBSDKUI2CameraConfiguration. If enabled, it allows zooming using the camera control button (iPhone 16 series). - Added property
FpsLimittoSBSDKUI2CameraConfigurationandSBSDKUI2DocumentScannerCameraConfigurationto limit the rate of detections per second in normal performance mode. - Added property
DidEndZoomHandlertoSBSDKZoomingImageScrollView. - Added analytics support with new classes:
SBSDKAnalyticsManager,SBSDKAnalyticsEvent,SBSDKAnalyticsFeature,SBSDKAnalyticsCategory,SBSDKAnalyticsEventName,SBSDKAnalyticsEventFactory, andSBSDKAnalyticsSubscriberfor tracking and managing SDK usage analytics. - Added support for an advanced on-image scanning configuration for:
SBSDKDocumentDataExtractor,SBSDKHealthInsuranceCardRecognizer,SBSDKMedicalCertificateScanner,SBSDKMRZScanner, andSBSDKCheckScanner. - Added property
HardwareButtonsEnabledtoSBSDKBaseScannerViewController(all Classic UI) to toggle volume button behavior. If set tofalseit restores the original volume button behavior. - Added properties
CameraSessionKeepAliveTimeoutandAnimateCameraOverlaytoSBSDKBaseScannerGeneralConfiguration. - Added properties
SessionDidChangeHandlerandIsSessionRunningtoSBSDKBaseScannerViewController. - Added functions
PauseandResumetoSBSDKBaseScannerViewController. - Cropped images returned as part of the scanner results are now represented as image references (
SBSDKImageRef), convertible toUIImage. - Ability to additionally process frames before main scanner via
SBSDKBaseScannerViewController.AdditionalFrameProcessorproperty. - Introduced
SBSDKUI2PermanentViewFinderConfigurationfor always visible view finder. - Document Data Extractor, Medical Certificate Scanner and Check Scanner now return document detection results (
SBSDKDocumentDetectionResult). - Added new enum case
PhototoSBSDKVideoFrameResolution. - Added property
IsInterruptedtoSBSDKCameraSessionto indicate if the camera session was interrupted by the system.
- Document Scanner:
- 🚀 Improvements:
- Document Scanner:
- Added
OkButOrientationMismatchstatus, returned when screen and document orientations don't match. Can be disabled by settingIgnoreOrientationMismatchto True. SeeSBSDKDocumentDetectionStatusandSBSDKDocumentScannerParameters. - Improved the Document Scanner RTU-UI v2 acknowledgment's bad image hint by adding the ability to present up to 5 lines.
- Improved performance when editing
SBSDKScannedPageand in the RTU-UI v2 Document Scanner Review Screen. - Improved captured image quality when using the Document Scanner Classic UI or RTU-UI (v1 and v2).
- Improved the user guidance in the Document Scanner RTU-UI v2 to support longer text entries.
- PDF Generator with OCR layer now handles non-ASCII characters correctly.
- Improved landscape-orientation layout of RTU-UI v2 screens.
- Increased performance for Document Scanner algorithms.
- The zoomed page view in the Document Scanner RTU-UI v2 Review Screen now closes when you finish zooming while being below the minimum zoom value.
- Rebalanced the internally used photo capture settings to better match the photo quality prioritization modes. The mode speed is now significantly faster, the mode balanced is a bit faster, and the mode quality is a bit slower with the best possible image quality.
- Added
- Document Quality Analyzer (DoQA):
- Guarantee the same document quality score for 90 degrees rotated images.
- Speed improvements. Note: document quality scores may slightly change for the same input images when compared to the previous version of the DoQA.
- Image Processing:
- New Image Processor preset
BinarizationFilterPreset.Preset5for documents with barcodes.
- New Image Processor preset
- Text Pattern Scanner:
- Improved performance with the same quality.
- VIN Scanner:
- Validation of VINs implements the full ISO 3779 standard, reducing false positives.
- Document Data Extractor (DDE):
- Digits can no longer be recognized as part of given names or surnames.
- Higher accuracy for document classification.
- Barcode Scanner:
- By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set
StripCheckDigits = true. - Significant speed-up in live mode on very large input resolutions.
- Improved barcode detection for various barcode types.
- More robust QR code recognition (timing patterns, alignment, artistic QR codes).
- QR codes with non-square finder patterns and embedded in adversarial backgrounds can now be recognized.
- Improved quiet zone checks for
ITF,Code 11,MSI Plessey,IATA 2 of 5,Industrial 2 of 5, andCode 25. - Improved the false positive rate for
ITF. - Added the option to ignore barcodes that do not decode to one of the accepted document formats for Barcode Scanner RTU-UI v2. See
SBSDKBarcodeScannerConfiguration.OnlyAcceptDocumentsproperty. - Improved performance when scanning four-state postal barcodes (i.e.
Australia Post,Japanese Post,RM4SCC,Royal TNT PostandUSPS Intelligent Mail). - Improved the recognition of
PDF417barcodes. - Improved the barcode scanner to better recognize
QRcodes if the top left finder pattern is corrupted (up to QR code version size 20). - Classic Component: Fixed an issue where quickly stopping and starting the camera session of any scanner screen could lead to a crash or unpredictable behavior.
- By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set
- The camera permission screen will now appear if camera access is restricted in all RTU-UI screens.
- Document Scanner:
- 🐞 Bug Fixes:
- Document Scanner:
- Fixed processing of still images of an indexed color space model in all scanners, Document Quality Analyzer, and PDF and TIFF generators.
- Fixed a UI bug in the Document Scanner Classic UI where
Accepteddocument'sFillColorwas not being removed when theAutoSnapProgressFillColorwas being shown. - Fixed a UI bug in the Document Scanner RTU-UI v2 where the bar buttons were not properly grayed out when in disabled state.
- Fixed a bug in the TIFF generator that prevented the creation of JPEG-encoded colored TIFF files.
- Fixed a bug in RTU-UI v2 Document Scanner where the document could not be captured in auto snap mode when
EnabledInAutoSnappingModewas set to false inSBSDKUI2ShutterButton. - Fixed a bug in RTU-UI v2 Document Scanner where auto rotation was applied if no document was detected.
- Fixed a memory leak when dealing with grayscale images.
- Fixed an issue on simulators where the shutter button was missing in the RTU-UI Document Scanner.
- Image Editing:
- Fixed a rare crash when the screen orientation changed.
- PDF Image Extractor:
- Fixed wrong orientation of extracted images when the PDF page had a transform applied.
- Document Quality Analyzer:
- Fixed quality estimation for rotated images.
- Storage Crypting:
- Fixed data corruption issues in AES encryption/decryption that could result in corrupted or partially corrupted files.
- Barcode Scanner:
- Fixed returned results for all types of
SBSDKUpcEanExtensionBehavior. - Fixed the checksum of the
Code 39barcode format. - Fixed a bug in the Barcode Scanner RTU-UI v2 where the flip camera button was not resetting the widest camera available if chosen.
- Fixed a bug in
SBSDKBarcodeScannerViewControllerthat could lead to a crash when embedded within aUIViewControllerRepresentable. - Fixed a bug in the AR Barcode Scan and Count where the scanner would be stuck if there was no barcode detected.
- Fixed a UI bug in the Barcode Scanner RTU-UI v2 where the sheet button overlapped with the action bar.
- Fixed an issue where the
ExtractedDocumentwas not being generated for GS1 HandlingDecodeStructureandDecodeFull.
- Fixed returned results for all types of
- General:
- Fixed a bug with scanned documents cloning when using per-file encryption.
- Document Scanner:
- ⚠️ Breaking changes:
- Package Structure:
- In v7.1.0, the packaging structure has changed. Unlike v6.1.0, your application project must now also reference the
ScanbotSDK.NETpackage directly. Transitive references are no longer sufficient, because native iOS SDK assets are delivered through a shared reference mechanism to avoid doubling package size.
- In v7.1.0, the packaging structure has changed. Unlike v6.1.0, your application project must now also reference the
- Native Library Update:
- iOS: The iOS SDK is now included as an
.xcframework(previously provided as a.framework).- Note: Please remove the
RuntimeIdentifierconditions for device(arm64) and simulator(x86) from the project(.csproj) file.
- Note: Please remove the
- iOS: The iOS SDK is now included as an
- General API structure & naming:
- Extensive renaming of classes, properties, methods, and enums (e.g.,
DocumentDetectortoSBSDKDocumentScanner,GenericDocumentRecognizertoSBSDKDocumentDataExtractor,CheckRecognizertoSBSDKCheckScanner,SBSDKHealthInsuranceCardRecognizerrelated classes,SBSDKMachineReadableZoneRecognizertoSBSDKMRZScanner,SBSDKGenericTextLineRecognizertoSBSDKTextPatternScanner,SBSDKMedicalCertificateRecognizertoSBSDKMedicalCertificateScanner,SBSDKPDFRenderertoSBSDKPDFGenerator,SBSDKTIFFImageWritertoSBSDKTIFFGenerator). - Many
Recognize...methods renamed toScan...orExtract.... - Many initializers changed to accept new configuration objects.
- Extensive renaming of classes, properties, methods, and enums (e.g.,
- Feature removal:
- Removed the License Plate Scanner and all of its related files.
- Result type changes:
- Result objects updated for many scanners (e.g.,
SBSDKDocumentDetectionResult,SBSDKBarcodeItem,SBSDKMRZScannerResult,SBSDKCheckScanningResult,SBSDKMedicalCertificateScanningResult,SBSDKVINScannerResult). SBSDKMachineReadableZoneRecognizerResultreplaced bySBSDKMRZScannerResult.SBSDKMachineReadableZoneRecognizerResultDocumentTypebySBSDKMRZDocumentType.SBSDKCheckRecognizerResultbySBSDKCheckScanningResult.SBSDKMedicalCertificateRecognizerResultbySBSDKMedicalCertificateScanningResult.SBSDKHealthInsuranceCardRecognitionResulttoSBSDKEuropeanHealthInsuranceCardRecognitionResult.
- Result objects updated for many scanners (e.g.,
- Configuration object changes:
- Removed old configuration APIs for most scanners; use new
SetConfiguration(_:)methods with dedicated configuration objects. SBSDKPDFRendererOptionsreplaced bySBSDKPDFConfiguration.SBSDKUI2BarcodeRecognizerConfigurationtoSBSDKBarcodeScannerConfiguration.SBSDKUI2AspectRatioreplaced bySBSDKAspectRatio.
- Removed old configuration APIs for most scanners; use new
- Document Scanner:
- The
SBSDKUI2DocumentScannerControllerdoes not dismiss itself automatically anymore when using the staticCreate(configuration:completion:)method. - Properties related to detection parameters (angle, size, brightness, and aspect ratios) moved from
SBSDKUI2DocumentScannerCameraConfigurationtoScannerParametersinSBSDKUI2CameraScreenConfiguration. IgnoreBadAspectRatiorenamed toIgnoreOrientationMismatchin UI configurations.SBSDKDocumentDetectorResultreplaced bySBSDKDocumentDetectionResult.SBSDKPolygonEdgebySBSDKLineSegment.- Renamed class
SBSDKDocumentDetectorModetoSBSDKDocumentScannerEngineMode.
- The
- PDF Image Extractor:
- Removed parameter
Scalingfrom all methods and replaced it by member variableScaleFactor.
- Removed parameter
- Barcode Scanner:
- Initializers for
SBSDKBarcodeScannerViewControllerandSBSDKBarcodeScanAndCountViewControllerchanged to accept configuration objects. SBSDKUI2BarcodeScannerResultrenamed toSBSDKUI2BarcodeScannerUIResult.- Removed properties like
AcceptedBarcodeTypes,EngineMode, etc., fromSBSDKBarcodeScannerViewController; configure viaSBSDKBarcodeScannerConfiguration. - Removed
SBSDKBarcodeScannerAccumulatingResult.Codeproperty, useSBSDKBarcodeScannerAccumulatingResult.Iteminstead. SBSDKBarcodeTyperenamed toSBSDKBarcodeFormat.SBSDKBarcodeDocumentRootTypetoSBSDKBarcodeDocumentFormat. Display names of various barcode formats changed.- Replaced
SBSDKUI2BarcodesExtensionFilterenum withSBSDKUpcEanExtensionBehavior. PropertyBarcodesExtensionFilterinSBSDKUI2BarcodeScannerConfigurationrenamed toExtensions. - Methods of
SBSDKBarcodeTrackingOverlayControllerDelegateandSBSDKTrackedBarcodeInfoViewablenow useSBSDKBarcodeItem. - Removed
SBSDKBarcodeImageGenerationTypeand related properties.
- Initializers for
- MRZ Scanner:
- Replaced methods
SBSDKMRZScanner.ScanFromImage(from: UIImage)andSBSDKMRZScanner.ScanFromFrame(from: SBSDKBaseScannerFrame)bySBSDKMRZScanner.ScanFromImage(from: UIImage, useLiveMode: Bool)andSBSDKMRZScanner.ScanFromFrame(from: SBSDKBaseScannerFrame, useLiveMode: Bool). - Removed outdated
DetectMrz: Booleanflag fromScanInArea()methods.
- Replaced methods
DefaultBackFacingCamera,DefaultFrontFacingCameraandWidestAvailableBackFacingCameranow returns a simulated camera instead ofnullif the physical camera is not available.- Removed property
StopsCameraSessionWhenDisappearedfromSBSDKBaseScannerGeneralConfiguration. To emulate this behavior, setCameraSessionKeepAliveTimeoutto a high value, e.g.Double.MaxValue. - Other class & enum renames:
SBSDKCheckDocumentRootTypetoSBSDKCheckDocumentModelRootType.SBSDKCheckRecognitionResultStatusbySBSDKCheckMagneticInkStripScanningStatus.SBSDKGenericDocumentRootTypetoSBSDKDocumentsModelRootTypeand related constants/model classes.SBSDKHealthInsuranceCardFieldTypetoSBSDKEuropeanHealthInsuranceCardRecognitionResultFieldTypeand related field/status/type classes.SBSDKMedicalCertificateRecognizerCheckboxTypetoSBSDKMedicalCertificateCheckBoxTypeand related result/enum renames.- Renamed parameter
completionHandlertocompletioninCreateNewWithConfigurationandPresentOnfunctions ofSBSDKUI2DocumentScannerController. - Renamed parameter
handlertocompletioninCreateNewWithConfigurationandPresentOnfunctions ofSBSDKUI2BarcodeScannerViewController. - Renamed async function
PresentOnAsync(on:configuration)toPresentOn(on:configuration)inSBSDKUI2BarcodeScannerViewController. - Completion handler result type for
SBSDKUI2CroppingViewControlleris now optional (Action<SBSDKUI2CroppingResult?>).
- Other removed classes:
- Removed
SBSDKCaptureInfo,SBSDKDocumentDetectionMetrics,SBSDKGenericDocumentRecognizerAccumulationConfiguration,SBSDKMachineReadableZoneRecognizerFieldName,SBSDKImageProcessorError, etc.
- Removed
- General:
- Replaced all occurrences of the deprecated
AVCaptureVideoOrientationenum by an equal enum namedSBSDKVideoOrientation.
- Replaced all occurrences of the deprecated
- Package Structure:
- ⚠️ Deprecations:
- MRZ Scanner RTU-UI v1 is deprecated. Use new
SBSDKUI2MRZScannerViewController. - Text Pattern Scanner RTU-UI v1 is deprecated. Use new
SBSDKUI2TextPatternScannerViewController.
- MRZ Scanner RTU-UI v1 is deprecated. Use new
- 🚙 Under the hood:
- The iOS SDK is now included as an
.xcframework(previously provided as a.framework). - Updated the native iOS SDK to iOS Document SDK 7.1.2.
- The regex filters are applied for substrings instead of the entire output string.
- Upgraded nlohmann::json to 3.11.3.
- Upgraded xsimd to 13.2.
- Upgraded xtl to 0.8.
- Upgraded xtensor to 0.26.0-scanbot.
- Upgraded yaml-cpp to 0.8.
- Upgraded CLI11 to 2.5.
- Upgraded spdlog to 1.15.2.
- Upgraded Boost to 1.88.
- Added flatbuffers 2.0.6.
- The iOS SDK is now included as an
.NET - Version 6.1.0 (5 Dec 2024)
Android
- 🎉 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 multiple overloads of
Render(...)method inIPDFRendererinterface. - Added multiple overloads of
RecognizeTextWithPdfFrom(...)method inIOpticalCharacterRecognizerinterface. - Added multiple overloads of
WriteTIFF()method inTIFFWriterclass. - Added new property
AddAdditionalQuietZonetoBarcodeScannerAdditionalConfig. - Added a new predefined collection of barcodes,
BarcodeFormat.POSTAL, which includes barcodes used in the postal industry. - Added option
MultipleScanningMode.AllowEmptySubmissionto allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
- 🚀 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 false positive rate of UPC/EAN extensions in live mode.
- Improved
- 🐞 Bug fixes:
- Minor fixes for Barcode Scanner appearance in RTU UI v2 to make it consistent with its iOS counterpart.
- Fix point sorting in
ContourDetector. - Fixed KANJI mode for QR codes.
- 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. - Fixed image preprocessing for Document Quality Analyzer.
- Fixed fallback in the "Background Clean" filter when the ML model is unavailable.
- Fixed R8 obfuscation config for SDK logging classes.
- Fixed a bug in
ScanbotColorwhere settingIsArgbto true, resulted in a wrong color.
- ⚠️ Breaking changes:
- IMPORTANT Dropped support for the target
.net7.0-android. - All classes from the old Page API were marked as deprecated and moved to
IO.Scanbot.Sdk.Persistence.Page.Legacypackage. - Renamed methods to
Render(...)inIPDFRendererinterface. - Changed
Render(...)method signature inIPDFRendererinterface. Now it takes an array of Uris instead of the List of Uris. - Renamed
WriteTIFFFromImages(...)andWriteTIFFFromFiles(...)methods toWriteTIFF(...)in theTIFFWriterclass. - Renamed
IO.Scanbot.Sdk.Process.Model.DocumentQualityResulttoIO.Scanbot.Sdk.Process.Model.DocumentQuality. - Renamed
IO.Scanbot.Sdk.Core.Contourdetector.DetectionStatustoIO.Scanbot.Sdk.Core.Contourdetector.DocumentDetectionStatus. - Changed the type of the
Rotationfield in thePageclass to theIO.Scanbot.Sdk.Core.ImageProcessorenum. - Removed enum
BarcodeDensity. - Removed property
CodeDensityfromBarcodeAdditionalParameters. - Removed enum values
ValidateandDecodefromGs1Handlingand replaced them byDecodeStructure,DecodeFull,ValidateStructureandValidateFull. - 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.
- IMPORTANT Dropped support for the target
- 🚙 Under the hood:
- Updated the native SDK to Android Document SDK 6.1.2.
iOS
- 🎉 New:
- Added new RTU-UI V2 component, see
SBSDKUI2DocumentScannerController. - Added document capture animation in
SBSDKDocumentScannerViewController. - Added
CaptureAnimationConfiguration(...)andPolygonConfigurationFor(...)method toSBSDKDocumentScannerViewControllerDelegate. - Added class
SBSDKDocumentAnimationConfigurationto configure document capture animation. - Added classes
SBSDKScannedDocumentandSBSDKScannedPage. - Added support for the new
SBSDKScannedDocumentclass toSBSDKPDFRenderer,SBSDKUIPDFRenderer,SBSDKTIFFImageWriterandSBSDKOpticalCharacterRecognizer. - Added new constructor to
SBSDKUI2Colorthat initializes fromSBSDKUI2Color(UIColor uiColor). - Added new property
IsAnimatingCapturetoSBSDKDocumentScannerViewController. - Added new class
SBSDKDocumentScannerPolygonConfiguration. - Added new properties
PolygonConfigurationAccepted,PolygonConfigurationRejectedandAutoSnapProgressPolygonConfigurationtoSBSDKDocumentScannerViewController. - Added new method
DidDetectPolygon(...)toSBSDKImageEditingViewControllerDelegate. - Added new property
AddAdditionalQuietZonetoSBSDKBarcodeAdditionalParameters. - Added new property
PostalTypestoSBSDKBarcodeType. - Added a new property
HardwareButtonsEnabledthat enables snapping from the hardware volume buttons and the new hardware camera control button toSBSDKDocumentScannerViewControllerandSBSDKBarcodeScanAndCountViewController, available on iOS 17.2 and later. - Added support for German health insurance cards (front side) and European health insurance cards to
SBSDKGenericDocumentRecognizer,SBSDKGenericDocumentRecognizerViewControllerandSBSDKUIGenericDocumentViewController. - Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
AustraliaPostCustomerFormat,UseIATA2OF5ChecksumandUseCode11ChecksumtoSBSDKBarcodeAdditionalParametersandSBSDKUI2BarcodeRecognizerConfiguration. - Added support for PDF metadata attributes when rendering PDF files: see new class
SBSDKPDFAttributesand new propertypdfAttributesinSBSDKPDFRendererOptions. - Added new properties
resultAccumulatorConfigurationtoSBSDKGenericDocumentRecognizerandSBSDKGenericDocumentRecognizerViewController. See new classSBSDKGenericDocumentRecognizerAccumulationConfiguration. - Added new zoom control slider controlled by the new camera control button on all view controllers, available on all the new iPhone 16 models.
- Added a new property
AllowEmptySubmissiontoSBSDKUI2MultipleScanningMode.
- Added new RTU-UI V2 component, see
- 🚀 Improvements:
- Improved sharpness of captured images in
SBSDKDocumentScannerViewControllerby tweaking various timing related default values, such asInitialScanDelayandAutoSnappingDelay. - The AR-overlay in
SBSDKUI2FindAndPickScanningModeis now visible by default. - 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 detection of UPC and EAN extensions.
- 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 document detection on booklet documents.
- Improved performance of
SBSDKDocumentQualityAnalyzer. - Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec.
- Improved GS1 string handling with new modes for decoding and validation. See
SBSDKGS1Handling. - Added the ability to display the scanned barcodes image in the FindAndPick usecase of
SBSDKUI2BarcodeScannerViewControllerby specifyingSBSDKUI2ExpectedBarcode.barcodeImageKeyfor the expected barcodesImageproperty.
- Improved sharpness of captured images in
- 🐞 Bug fixes:
- Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
- Fixed a bug in the Find & Pick use case of
SBSDKUI2BarcodeScannerViewControllerthat never showed the expected barcodes title, but always the barcode value. - Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
- Fixed a UI issue in
SBSDKFinderViewwhere the background color overlapped with the line color. - Fixed a UI issue in the RTU-UI v2 Find & Pick scanner in
buttonsheet mode where the counter badge was not visible. - Fixed a crash when zooming with invalid
MinZoomandMaxZoomvalues. - Fixed a bug that did not mirror the front camera as expected.
- Fixed a bug in
SBSDKUI2SingleScanDialogModelProviderwhere the default displayed texts were not correct. - Fixed KANJI mode for QR codes.
- Fixed a bug with wrong raw bytes returned for some 2D barcode types.
- Fixed potential broken generic document field validation status that could lead to a crash or undefined behavior.
- Fixed a UI issue on the RTU-UI v2 barcode sheet screen where the subtitle label was being vertically cut off.
- Fixed a UI issue on the RTU-UI v2 barcode confirmation sheet in the single use case where the loading indicator was not centered when the loading message was hidden.
- Fixed a bug in
CompressionofSBSDKTIFFImageWriterParameterswhere theSBSDKTIFFImageWriterwas not using the chosen compression value. - Fixed a bug in
SBSDKCheckRecognizerwhere theAcceptedCheckTypeswere not being applied correctly. - Fixed a bug in
SBSDKUICheckRecognizerViewControllerwhere theAcceptedCheckStandardswere not being applied correctly.
- ⚠️ Breaking Changes:
- IMPORTANT Dropped support for the target
.net7.0-ios. - Deprecated
SBSDKUIDocumentScannerViewController,SBSDKUIFinderDocumentScannerViewController,SBSDKUICroppingViewControllerand their related classes. - Removed enum
SBSDKBarcodeDensity. - Removed property
CodeDensityfromSBSDKBarcodeAdditionalParameters. - Removed enum values
ValidateandDecodefromSBSDKGS1Handlingand replaced them byDecodeStructure,DecodeFull,ValidateStructureandValidateFull. - Removed property
SharpnessAcceptanceFactorfromSBSDKGenericDocumentRecognizer,SBSDKGenericDocumentRecognizerViewControllerandSBSDKUIGenericDocumentRecognizerBehaviorConfiguration. - Removed property
isAccumulatingDocumentsfromSBSDKGenericDocumentRecognizerandSBSDKGenericDocumentRecognizerViewController. - Deprecated
SBSDKHealthInsuranceCardRecognizer,SBSDKHealthInsuranceCardScannerViewControllerandSBSDKUIHealthInsuranceCardScannerViewController. - Removed class
SBSDKPDFMetadataEditor. - Renamed the values of the enum
SBSDKDocumentDetectionStatus. - Removed optional delegate methods
PolygonFillColorFor(...)andPolygonFillColorFor(...)fromSBSDKDocumentScannerViewControllerDelegateclass. - Removed properties
PolygonLineWidth,PolygonLineColorAccepted,PolygonLineColorRejected,PolygonFillColorAccepted,PolygonFillColorRejected,PolygonAutoSnapProgressEnabled,PolygonAutoSnapProgressColor,PolygonAutoSnapProgressLineWidthandPolygonCornerRadiusfromSBSDKDocumentScannerViewController. - Renamed property
ResidencePermitFronBacktoResidencePermitFrontBackinSBSDKUIDocumentType. - Removed parameter
Encrypterfrom allSBSDKPDFRenderermethods and added it to the initializer of the class.
- IMPORTANT Dropped support for the target
- 🚙 Under the hood:
- Updated the native SDK to iOS Document SDK 6.1.1.
.NET - Version 5.1.1 (4 Oct 2024)
- 🐞 Bug fixes:
- Fixed reference issues when using our .NET package in more complex project structures.
.NET - Version 5.1.0 (15 Aug 2024)
Android
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration.
- Added support for new barcode format
BarcodeFormat.MicroPdf417. - Added support for Canadian and UAE Check standards.
- Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added new ParametricFilters in ImageProcessor API
- ScanbotBinarizationFilter
- CustomBinarizationFilter
- ColorDocumentFilter
- BrightnessFilter
- ContrastFilter
- GrayscaleFilter
- WhiteBlackPointFilter
- LegacyFilter
- Added support for German residence permits (2011 and 2019 formats) in GenericDocumentRecognizer.
- 🚀 Improvements:
- Optimized speed of the camera preview frames handling for all scanners.
- Changed the touch to focus square in ScanbotCameraXView to a circle.
- 🐞 Bug fixes:
- For
BarcodeFormat.Pdf417, a single case to generate clusters was not covered, which led to a crash. - Fixed issue with misaligned barcode polygons on some devices with horizontal orientation.
- Fixed SoundController crash on Android API <= 23.
- Fixed VinScannerConfiguration.setFinderTextHintColor(color) not being applied to the text hint.
- Fixed null pointer exception for PageFileStorage operations.
- For
- ⚠️ Breaking Changes:
BatchBarcodeScannerActivityclass from RTU UI v1 is now marked as 'Deprecated'.- Renamed Rss14 barcode format to
Databarand RssExpanded toDatabarExpanded. - Removed BarcodeFormat.Code25 from
BarcodeFormat.CommonCodeslist. - Deleted deprecated IsLicenseActive and IsLicenseValid from ScanbotSDK. Please use
LicenseInfo.IsValidinstead. ZoomRangecan be created with any input values but will be limited under the hood by internal MinZoom (x0.2) and MaxZoom (x100) values.- Replaced the class BarCodeFormattedResult by
GenericDocumentclass for barcode document parser output. BarcodeExtensionsFilternow accepts EAN and UPC barcodes with extensions only and all other formats without extensions.- All HealthInsuranceCard prefixes in result model class names were replaced with Ehic (EhicRecognitionResult, EhicDetectionStatus, etc.).
- 🚙 Under the hood:
- Updated the native SDK to Android Document SDK 5.1.2.
- Updated 3rd-party libraries:
- libjpeg-turbo to 2.1.5.1
- libpng to 1.6.40
- libtiff to 4.6.0
- Added third-party library libzueci 1.0.0 and zlib 1.3.1.
- Extracted parts of ScanbotBarcodeScannerSDK API to the
ILicensableSdkandIBarcodeScanningSdkinterfaces. - Migrated project to AGP 8.x.
- Added more rules for R8 shrinker to work adequately with AGP >= 8.
- Added Theme.AppCompat.NoActionBar theme as default for Barcode Scanner RTU UI v2 activity.
- Added Consumer Proguard rules for RTU UI v2 modules.
- Class SoundController was renamed to
SoundControllerImpland interface SoundController was extracted.
iOS
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration.
- Added support for new barcode type
SBSDKBarcodeType.MicroPdf417. - Added support for Canadian and UAE Check standards.
- Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added various properties to SBSDKBaseScannerViewController and SBSDKBarcodeScannerViewController:
- Added new property RegularExpressionPattern to
SBSDKBarcodeScannerViewControllerandSBSDKBarcodeScannerto limit detection results. - Added
IsCameraFrozenproperty to SBSDKBaseScannerViewController. - Added new function
ResetAccumulationto SBSDKBarcodeScannerViewController. - Added the
ViewFinderStyleproperty to SBSDKBaseScannerViewController.
- Added new property RegularExpressionPattern to
- Added new classes for all the barcode document formats.
- Added a new class
SBSDKBarcodeDocumentConstantswhich has all the constants related to the barcode document format. - Added a new class
SBSDKBarcodeDocumentRootTypewhich replaces the old SBSDKBarCodeScannerDocumentFormat.
- Added a new class
- Added possibility to inject an image to simulate a video stream and a captured image to any scanner's camera session for UI testing. See
ScanbotSDKGlobal.TestData,SBSDKTestDataandSBSDKSimulatedCameraMockData. - Added streaming encryption support to
SBSDKStorageCrypting. - Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK.
- Added new static property
MaximumRecommendedImageSizeto SBSDKDeviceInformation. - Added new class-based image filters with customizable parameters:
- SBSDKParametricFilter (abstract base class)
- SBSDKScanbotBinarizationFilter
- SBSDKCustomBinarizationFilter
- SBSDKColorDocumentFilter
- SBSDKBrightnessFilter
- SBSDKContrastFilter
- SBSDKGrayscaleFilter
- SBSDKWhiteBlackPointFilter
- SBSDKLegacyFilter (encapsulates the deprecated SBSDKImageFilterType filters)
- Added support for German residence permit documents to SBSDKGenericDocumentRecognizer. See SBSDKGenericDocumentRootType.
- Added a new configuration class SBSDKHealthInsuranceCardRecognizerParameters to configure the live detection recognizer in SBSDKHealthInsuranceCardRecognizer.
- Added a new property liveDetectionParameters in SBSDKHealthInsuranceCardRecognizer.
- Added a new property recognizerParameters in SBSDKHealthInsuranceCardScannerViewController and SBSDKUIHealthInsuranceCardScannerViewController.
- Added property acceptedBrightnessThreshold to SBSDKDocumentScanner, SBSDKDocumentScannerViewController, SBSDKUIDocumentScannerBehaviourConfiguration and SBSDKUIFinderDocumentScannerBehaviorConfiguration.
- Added property averageBrightness to SBSDKDocumentDetectionMetrics.
- 🚀 Improvements:
- 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.
- Improved detection of UPC/EAN barcode extensions in live mode.
- Improved image quality and capture speed on most iOS devices slightly by capturing HEIF images.
- Added support of haptic feedback on capable devices.
SBSDKPDFPagesExtractorfunctions now create the output directory if it doesn't exist yet.- Added support for structured logging (OSLog) to the SDK (iOS 14+).
- The health insurance card recognizer now implements the new scanbot OCR engine. The recognition is faster and more accurate than before.
- 🐞 Bug fixes:
- Changed privacy manifest to comply with the latest Apple specs.
- Fixes a bug with the asynchronous functions of
SBSDKPDFPagesExtractorwhich returned an empty array of image URLs. - Fixed a bug with the generic textline recognizer not returning multiline results.
- ⚠️ Breaking Changes:
- IMPORTANT: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
- Deprecated
SBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewControlleralong with their related classes. Please consider switching to the new SBSDKUI2BarcodeScannerViewController. - Renamed function CaptureJPEGStillImage to CaptureStillImageWithCompletionHandler in
SBSDKBaseScannerViewController(and all subclasses) andSBSDKCameraSession. - Replaced the class SBSDKBarcodeDocumentType with
SBSDKBarcodeDocumentRootType. - Removed the protocol SBSDKBarCodeScannerDocumentFormat and all of its children classes.
- Changed SetLoggingEnabled to property
IsLoggingEnabledin SBSDKLog. - Changed all SBSDKBarcodeType global constants to static properties of
SBSDKBarcodeType. - Moved the global constants
SBSDKBarcodeMetadataEANUPCExtensionKeyandSBSDKBarcodeMetadataIsGS1MessageKeyto SBSDKBarcodeScannerResult as its static properties. - Removed types
Ccittfax3andCcittfax4fromSBSDKTIFFImageWriterCompressionOptions. UseCcitt_t4andCcitt_t6respectively.
- 🚙 Under the hood:
- Updated the native SDK to iOS Document SDK 5.1.3.
- Updated third-party libraries zlib to version 1.3.1, libtiff to 4.6.0, libjpeg-turbo to 2.1.5.1, libpng to 1.6.40.
- Added third-party library libzueci version 1.0.0.
- Refactored all public SDK code to Swift.
.NET - Version 4.2.0 (23 Apr 2024)
- 🎉 New:
- Both Android and iOS:
- Added new feature - Document Quality Analyzer. It analyzes the text quality (legibility) on images.
- Added new component - VIN (Vehicle identification number) scanner.
- New generation of Text Data Scanner component. The quality and speed of scanning has significantly improved.
- MRZ support for td1 long document standard.
- Added support for Kuwait ID cards in the MRZ scanner.
- Added support for Israelian checks to the check recognizer. Check
SBSDKCheckDocumentRootTypeandIO.Scanbot.Check.Entity.RootDocumentTypeenums. - Added support for more PDF page sizes. Check
SBSDKPDFRendererPageSizeandIO.Scanbot.Sdk.Model.PageSizeenums. - Added support for PDF orientations. Check
SBSDKPDFRendererPageOrientationandIO.Scanbot.Pdf.Model.PageDirectionenums.
- Android:
- Added new supported barcode formats. Check
BarcodeFormatenum for:UspsIntelligentMailRoyalMailJapanPostRoyalTntPostAustraliaPostGs1CompositeDatabarLimited
- The new PDF renderer for simple PDF and "sandwiched" PDF generation also allows flexibility to add custom PDF metadata.
- Added new supported barcode formats. Check
- iOS:
- Added new classes
SBSDKDocumentQualityAnalyzer,SBSDKOpticalCharacterRecognizer,SBSDKOpticalCharacterRecognizerConfigurationandSBSDKTextLayoutRecognizer. - Added
TrackingOverlayControllerproperty toSBSDKBarcodeScannerViewController. - Added property
ExtensionFilterto all barcode scanning APIs and added propertyExtensiontoSBSDKBarcodeScannerResult. - Introduced new classes and properties to manage barcode tracking overlay.
- Added functions to
SBSDKDeviceInformationto get the total, used and unused disk space on the device. - Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK which complies with the latest Apple specs.
- Added
SetupDefaultLicenseFailureHandlerWithCompletionmethod to theScanbotSDKGlobalclass. - Added new method
WidestAvailableBackFacingCameratoSBSDKCameraDevice. - Added support for new barcode types. Check
SBSDKBarcodeTypeenum for:USPSIntelligentMailRoyalMailJapanPostRoyalTNTPostAustraliaPostGS1CompositeDatabarLimited
- Added new classes
- Both Android and iOS:
- 🚀 Improvements:
- Both Android and iOS:
- Added new Optical Character Recognition engine based on machine learning algorithms that is much faster and less error-prone. The new OCR engine currently supports all languages with Latin letters, there is no need to specify the languages for it. The legacy engine based on Tesseract can still be used.
- Added more control over how to handle GS1 messages in barcodes. Check Gs1 Handling property in the Barcode scanner configurations classes.
- Improved the document detector with better performance and less memory consumption.
- Android:
- Added
SetBarcodeFormatsFilter(barcodeFormat: List<BarcodeFormat>)method inBatchBarcodeScannerConfigurationclass. - Optimized default and custom preview/picture size selection in the
ScanbotCameraXView. - Optimized
SetForceMaxSnappingSize(enabled: bool)behavior in theScanbotCameraXView. - Improved pinch-to-zoom gesture in
ScanbotCameraXView. - Added
SetLifecycleOwner(lifecycleOwner: ILifecycleOwner)method forViewControllerinDocumentScannerViewandBarcodeScannerViewto improve compatibility with Compose UI.
- Added
- Both Android and iOS:
- 🐞 Bug fixes:
- Android:
- Fixed some OOM crashes on low to midrange devices.
- Fixed
EnableCameraButtonTitleandEnableCameraExplanationTextparameters on Batch and Barcode RTU UI screen configs. - Fixed crash in
GenericTextRecognizeron ARM v7 devices. - Fixed behavior of
OcrResolutionLimitconfiguration inGenericTextRecognizer.
- iOS:
- Fixed a bug where the finder text hint was still showing when
ViewFinderEnabledwas disabled inSBSDKUIBarcodeScannerViewControllerandSBSDKUIBarcodesBatchScannerViewController. - Fixed a wrong polygon color in RTU-UI barcode scanner tracking overlay.
- Fixed an issue where the MRZ Scanner was not recognizing the new standard of Belgian ID Cards.
- Fixed the issue when the top and bottom toolbars' background color in
SBSDKUICroppingViewControllerdidn't update on dark mode change, when set toUIColor.SystemBackground.
- Fixed a bug where the finder text hint was still showing when
- Android:
- ⚠️ Breaking changes:
- Android:
- If you are using
SetPictureSize(pictureSize: Size),SetCameraFrameSize(frameSize: Size)orSetPreviewFrameSize(frameSize: Size), make sure input Size has the correct orientation (fits the view or display size). - All scanner components have been switched to zoom ratio (values 1x, 2x, etc.) instead of linear zoom (from 0 to 1). Methods renamed:
SetOpticalZoomRange()->SetPhysicalZoomRange(),SetOpticalZoomLevel()->SetPhysicalZoomRatio()inScanbotCameraXView,DocumentScannerView,BarcodeScanAndCountViewandBarcodeScannerView.setPhysicalZoomRange()andsetPhysicalZoomRatio()accept possible zoom values from 0.5x up to 100x. NOTE: if the value sent to the camera is out of range for a specific device's capabilities, then the camera will try to set the max or min possible for that specific device. eg. Zoom 100x will only work on some high-end Samsung devices, whereas other devices will only have 12x-30x max. The same goes for minimum supported values, 0.5x is a wide-format camera module that does not exist on many Android devices. - Removed deprecated
BlurEstimatorand addedDocumentQualityAnalyzerfeature. Please use SDK functionCreateDocumentQualityAnalyzer(...)instead ofCreateBlurEstimator(...). - Changed signature of
RenderDocumentFromImages()andRenderDocumentFromPages()methods -pageSize: PDFPageSizewas replaced with more detailedpdfConfig: PdfConfigparameter. - Changed namespace from
IO.Scanbot.Sdk.Process.PDFPageSizetoIO.Scanbot.Pdf.Model.PageSize. - Removed parameter
forceCpu: BooleanfromImageProcessormethods. - The
TextDataScannerConfigurationnow requires an instance ofTextDataScannerStepfor initialization. - Replaced
CameraModule.FrontMirroredwithCameraModule.Front, which behaves as mirrored mode.
- If you are using
- iOS:
- Removed
SBSDKImageMetricsAnalyzer,SBSDKImageChannelMetricsandUIImage+SBSDKMetricsAnalysis. - Refactored all OCR and PDF rendering classes to incorporate the new OCR engine and simplify the APIs.
- Removed
SBSDKOpticalTextRecognizerandSBSDKTextOrientationRecognizer. - Renamed
SBSDKPageOrientationtoSBSDKTextOrientation. - Changed function signatures of methods in
SBSDKPDFRendererandSBSDKUIPDFRenderer. - Added new values and removed unused values in
SBSDKPDFRendererPageSize. - Removed barcode type
SBSDKBarcodeTypeUnknown. - Removed property
AutoCancelTimeoutfromSBSDKUIMRZScannerBehaviorConfiguration. - Removed
TextRecognitionLanguagesandTextFilterStrategyfromSBSDKGenericTextLineRecognizerViewController. - Removed
TextFilterStrategyfromSBSDKUITextDataScannerStep. - Removed
SupportedLanguagesfromSBSDKUITextDataScannerBehaviorConfiguration. - Removed
SelectionOverlayTextForfromSBSDKUIBarcodeScannerViewControllerDelegate. - Renamed
SelectionOverlayConfigurationtoTrackingOverlayConfigurationinSBSDKUIBarcodeScannerConfigurationandSBSDKUIBarcodesBatchScannerConfiguration. - Renamed
SBSDKUIBarcodeSelectionOverlayConfigurationtoSBSDKUIBarcodeTrackingOverlayConfiguration. - Replaced the properties
PolygonEnabled,PolygonColor,PolygonFillColorandPolygonLineWidthby the propertyPolygonStyleinSBSDKBarcodeScanAndCountViewController. - The class
SBSDKBlurrinessEstimatorhas been removed and replaced by the far superiorSBSDKDocumentQualityAnalyzer. - Changed default value of the finder aspect ratio in
SBSDKUIFinderDocumentScannerUIConfigurationto DIN A4 portrait. - Removed prefix
Sbsdk_from all the method names inUIImage_SBSDKFiltersAndWarpinginterface. (eg:Sbsdk_imageWarpedByPolygontoImageWarpedByPolygon).
- Removed
- Android:
- 🚙 Under the hood:
- The native Scanbot Android SDK upgraded to v4.2.0.
- The native Scanbot iOS SDK upgraded to v4.2.2.
.NET - Version 2.3.1 (11 Oct 2023)
- 🐞 Bug fixes:
- Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
.NET - Version 2.3.0 (15 Sep 2023)
- 🎉 New:
- Both Android and iOS:.
- Added support for the Micro QR barcode type.
- Added view finder flag for barcode scanners (see more details below).
- Added support for Scan and Count of Barcodes (see more details below).
- Android:
- Added new function
setViewFinderEnabledto:IO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfigurationIO.Scanbot.Sdk.UI.View.Barcode.Batch.Configuration.BatchBarcodeScannerConfiguration
- Introduced a scanned barcode confirmation dialog in
IO.Scanbot.Sdk.UI.View.Barcode.BarcodeScannerActivityRTU screen:- Added
SetConfirmationDialogConfigurationtoIO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfigurationfor modifying dialog UI.
- Added
- Added Scan and Count of Barcodes feature.
- Use
IO.Scanbot.Sdk.Barcode.UI.BarcodeScanAndCountViewto integrate it into your app.
- Use
- Added new function
- iOS:
- Added new property
ViewFinderEnabledto:ScanbotSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfigurationScanbotSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
- Added new Classic UI component
Scanbot.iOS.SBSDKBarcodeScanAndCountViewControllerwhich enables you to scan barcodes multiple times using the shutter button. - Added new properties
ConfirmationDialogTitleandConfirmationDialogMessagetoScanbotSDK.iOS.SBSDKUIBarcodeScannerTextConfiguration.
- Machine-readable-zone results have been refactored (please see ⚠️ Breaking changes):
- Added new properties to
ScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResult:GenericDocumentTravelDocumentTypeVariantFieldDateOfIssueField
- Added new value
CrewMemberCertificateto theScanbot.iOS.SBSDKMachineReadableZoneRecognizerResultDocumentTypeenum. - Added new values to the
Scanbot.iOS.SBSDKMachineReadableZoneRecognizerFieldNameenum:DateOfIssuanceTravelDocumentTypeVariant
- Added new properties to
- Added new function
FlipHorizontallytoScanbotSDK.iOS.SBSDKPolygon. - Added new property
IsMirroredtoScanbotSDK.iOS.SBSDKCameraDevice.
- Added new property
- Both Android and iOS:.
- 🚀 Improvements:
- Both Android and iOS:
- Improved accuracy and detection speed of several barcode types, such as QR_CODE, Code39, and Code93.
- Added support for inverted PDF-417 barcodes.
- iOS:
- Changed the default value for the
DocumentTypeproperty inScanbot.iOS.SBSDKUIGenericDocumentRecognizerBehaviorConfiguration- All documents are recognised by default now.
- Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in:
- All Classic UI components
- All RTU-UI components
- The
ScanbotSDK.iOS.SBSDKZoomRangeclass
- Support for generic documents in the MRZ recognizer.
- Changed the default value for the
- Both Android and iOS:
- 🐞 Bug fixes:
- Android:
- Fixed a crash within the barcode detector.
- Fixed detection of several RSS_EXPANDED false-positives in live mode.
- Fixed a bug causing incorrect (mirrored) preview when
CameraModule.Frontis set up forIO.Scanbot.Sdk.UI.Camera.ScanbotCameraXView. - Fixed the logic in
setAutoSnapProgressEnabledandsetPolygonAutoSnapProgressEnabledmethods in:IO.Scanbot.Sdk.UI.View.Camera.Configuration.FinderDocumentScannerConfigurationIO.Scanbot.Sdk.UI.View.Camera.Configuration.DocumentScannerConfiguration
- Fixed
TextDataScaner.textDataScannerStepnot applying from JSON configuration. - Ignored iOS-only parameter
shutterButtonIndicatorColorwhen mapping:IO.Scanbot.Sdk.UI.View.Camera.Configuration.DocumentScannerConfigurationIO.Scanbot.Sdk.UI.View.Camera.Configuration.FinderDocumentScannerConfiguration
- Corrected mapping of
userGuidanceStringsJSON configuration forIO.Scanbot.Sdk.UI.View.Check.Configuration.CheckRecognizerConfiguration.
- iOS:
- Fixed the detection of a few false positive RSS Expanded codes in live mode.
- Fixed an unexpected behavior of the barcode scanner when passing
ScanbotSDK.iOS.SBSDKBarcodeType.Unknownas accepted barcode type. - Fixed a bug in all Classic UI and RTU-UI components where the
RecognitionEnabledproperty might not have worked as intended. - Fixed a bug where
ocrResolutionLimitwas not being used in:ScanbotSDK.iOS.SBSDKUITextDataScannerBehaviorConfigurationfrom JSON. - Fixed a bug where the polygon should be mirrored when using the front camera in:
ScanbotSDK.iOS.SBSDKDocumentScannerViewControllerScanbotSDK.iOS.SBSDKUIDocumentScannerViewController
- Fixed a bug where
automaticSelectionEnabledwas not working properly inScanbotSDK.iOS.SBSDKUIBarcodesBatchScannerViewController.
- Android:
- ⚠️ Breaking changes:
- Android:
- API breaking changes in the MRZ scanner result interface:
- Replaced
IO.Scanbot.Mrzscanner.Model.MRZRecognitionResultresult model class withIO.Scanbot.Mrzscanner.Model.MRZGenericDocument. - Removed the
Fieldslist andMRZFieldclass, instead:- All detected fields are now stored in the
Document.Fieldslist inIO.Scanbot.Mrzscanner.Model.MRZGenericDocument.
- All detected fields are now stored in the
- The
travelDocType: MRZDocumentTypeis now represented by thedocumentType: MRZDocumentTypefield in theMRZGenericDocumentinstance.
- Date fields in the
IO.Scanbot.Mrzscanner.Model.MRZGenericDocumentresult model now contain an unformatted date string. - Replaced
IO.Scanbot.Mrzscanner.Model.MRZDocumentTypeclass withIO.Scanbot.Mrzscanner.Model.MRZGenericDocument.MRZDocumentType.
- Replaced
- API breaking changes in the MRZ scanner result interface:
- iOS:
- Several delegate method names were renamed, such as:
ScanbotSDK.iOS.SBSDKCheckRecognizerViewControllerDelegate:CheckRecognizerViewControllertoDidRecognizeCheck.CheckRecognizerViewControllertoDidChangeState.CheckRecognizerViewControllerShouldRecognizetoShouldRecognize.
ScanbotSDK.iOS.SBSDKGenericDocumentRecognizerViewControllerDelegate:DocumentRecognizerViewControllertoDidRecognizeResult.GenericDocumentRecognizerViewControllerShouldRecognizetoShouldRecognize.
ScanbotSDK.iOS.SBSDKHealthInsuranceCardScannerViewControllerDelegate:HealthInsuranceCardScannerViewControllertoDidScanHealthInsuranceCard.HealthInsuranceCardScannerViewControllerShouldRecognizetoShouldRecognize.
ScanbotSDK.iOS.SBSDKUIHealthInsuranceCardScannerViewControllerDelegate:HealthInsuranceCardDetectionViewControllertoDidDetectCard.HealthInsuranceCardDetectionViewControllerDidCanceltoDidCancel.
ScanbotSDK.iOS.SBSDKImageEditingViewControllerDelegate:ImageEditingViewControllertoDidApplyChangesWithPolygon.ImageEditingViewControllerDidCancelChangestoDidCancelChanges.ImageEditingViewControllerDidChangePolygontoDidChangePolygon.ImageEditingViewControllerCancelButtonItemtoCancelButtonItem.ImageEditingViewControllerApplyButtonItemtoApplyButtonItem.ImageEditingViewControllerToolbarStyletoToolbarStyle.ImageEditingViewControllerToolbarTintColortoToolbarTintColor.ImageEditingViewControllerToolbarItemTintColortoToolbarItemTintColor.ImageEditingViewControllerRotateClockwiseToolbarItemtoRotateClockwiseToolbarItem.ImageEditingViewControllerRotateCounterClockwiseToolbarItemtoRotateCounterClockwiseToolbarItem.
ScanbotSDK.iOS.SBSDKDocumentScannerViewControllerDelegate:DocumentScannerViewControllertoDidSnapDocumentImage.DocumentScannerViewControllerShouldDetectDocumenttoShouldDetectDocument.DocumentScannerControllertoDidSampleVideoFrame.DocumentScannerViewControllerWillSnapImagetoWillSnapImage.DocumentScannerViewControllerDidFailSnappingImagetoDidFailSnappingImage.DocumentScannerViewControllertoShouldAutoSnapImageWithForDetectionResult.DocumentScannerViewControllerLineColortoPolygonLineColorForStatus.DocumentScannerViewControllertoPolygonFillColorForStatus.DocumentScannerViewControllertoConfigureStatusDetectionLabel.
ScanbotSDK.iOS.SBSDKUIGenericDocumentRecognizerViewControllerDelegate:GenericDocumentRecognizerViewControllertoDidFinishWithDocuments.GenericDocumentRecognizerViewControllerDidCanceltoDidCancel.
ScanbotSDK.iOS.SBSDKMedicalCertificateScannerViewControllerDelegate:MedicalCertificateScannerViewControllertoDidRecognizeMedicalCertificate.MedicalCertificateScannerViewControllerShouldRecognizetoShouldRecognize.MedicalCertificateScannerViewControllertoDidChangeState.
ScanbotSDK.iOS.SBSDKUIMedicalCertificateScannerViewControllerDelegate:MedicalScannerViewControllertoDidFinishWithResult.MedicalScannerViewControllerDidCanceltoDidCancel.
ScanbotSDK.iOS.SBSDKUIViewControllerDelegate:ViewControllerShouldCanceltoShouldCancel.ViewControllerShouldFinishtoShouldFinish.
- Removed support for iOS 11.x and 12.x. The minimum deployment target to use ScanbotSDK in your app is iOS 13.0!
- Removed classes:
ScanbotSDK.iOS.SBSDKUIMachineCodesCollectionScanbotSDK.iOS.SBSDKMultipleObjectScannerViewControllerScanbotSDK.iOS.SBSDKBusinessCardsImageProcessorScanbotSDK.iOS.SBSDKMultipleObjectsDetectorScanbotSDK.iOS.SBSDKUIMultipleObjectScannerViewControllerand its configuration classes.ScanbotSDK.iOS.SBSDKBaseCameraViewController
- Renamed the property
AcceptedMachineCodeTypestoAcceptedBarcodeTypesin:ScanbotSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfigurationScanbotSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
- Machine-readable-zone results have been refactored:
- Date fields in machine-readable-zones are returned unformatted now, e.g. in the format 'YYMMDD'. Previously we tried to convert them to the format 'DD.MM.YY'.
- Removed value
DiscreetIssuingStateOrOrganizationfrom theScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerFieldNameenum. - Removed value
TravelDocumentfrom theScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResultDocumentTypeenum. - Removed property
DiscreetIssuingStateOrOrganizationFieldfromScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResult. - Removed property
CheckDigitsCountfromScanbotSDK.iOS.SBSDKMachineReadableZoneRecognizerResult.
- Several delegate method names were renamed, such as:
- Android:
- 🚙 Under the hood:
- The native Scanbot Android SDK upgraded to v2.3.0.
- The native Scanbot iOS SDK upgraded to v2.3.1.
.NET - Version 2.2.0 (26 Jun 2023)
- 🎉 First release of the
ScanbotSDK.NETNuGet package for Native iOS and Android APIs. - Provides Ready-To-Use UI Components - a set of easy to integrate Native wrappers of .NET based on iOS and Android native components for the most common tasks in Scanbot SDK:
- Document Scanner
- Cropping UI & ImageFilters
- Barcode & QR code Scanner
- MRZ Scanner
- Generic Document Recognizer
- EHIC Scanner
- Check Recognizer
- Provides additional SDK features based on image picked from the device photos application:
- Detect Barcodes on Image
- Detect Document on Image
- New unified Scanbot SDK API:
- Idiomatic asynchronous design
- MAUI-based unified API for Android & iOS
- Example App demonstrating the new functionality: scanbot-sdk-maui-example
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
