The SDK now supports a new license key format, which does not contain special characters or line breaks.
All of the API functions that accept an image file URI as an input, now accept both image file URI and ImageRef object.
Introduced the ScanbotPdfImageExtractor object to encapsulate and manage all SDK functionalities related to extracting images from a PDF.
Introduced the ScanbotLegacyPage object to encapsulate and manage all SDK functionalities related to the legacy Page object.
Added a new class SdkConfiguration to replace the previous ScanbotSdkConfiguration type for SDK initialization.
Added a new class LicenseInfo to replace the previous LicenseInfoResult type for license information retrieval.
Added a new property processingMode to all scanner configuration types to enhance processing flexibility.
Added a new property cameraLiveScannerResolution to CameraConfiguration for configuring live scanner resolution in all RTU-UI scanners.
ImageRef now supports HEIC images.
Document Scanner:
Introduced the ScanbotDocument object to encapsulate and manage all SDK functionalities related to document scanning.
Added a new result class DocumentScanningResult to provide detailed information about scanning a document from an image.
The DocumentDetectionResult now includes a displacementVector and a DocumentDisplacement type to indicate the direction towards the center of a partially visible document.
Added a new property partiallyVisibleDocumentConfiguration to DocumentScannerConfiguration for better handling of partially visible documents.
Added a new property bottomBarMode to CameraConfiguration for customizing the bottom bar appearance in the RTU-UI scanner.
Added a new type literal TextWithBadgeButtonMode to PreviewButton for preview mode in the RTU-UI scanner.
Two new DocumentDetectionStatus values have been introduced: ERROR_PARTIALLY_VISIBLE and ERROR_PARTIALLY_VISIBLE_TOO_CLOSE.
Image Processing:
Introduced the ScanbotImageProcessor object to encapsulate and manage all SDK functionalities related to image processing.
Added new capabilities to resize and crop images.
The color document filter now has parameters controlling contrast, color, and paper enhancement.
Added a new property colorConversion to PathImageLoadOptions and BufferImageLoadOptions for applying color conversion during image loading.
Added a new property canvasColor to PathImageLoadOptions and BufferImageLoadOptions for setting image conversion when converting images with alpha channel to images without alpha channel.
PDF Generator:
Introduced the ScanbotPdfGenerator object to encapsulate and manage all SDK functionalities related to creating PDF files.
TIFF Generator:
Introduced the ScanbotTiffGenerator object to encapsulate and manage all SDK functionalities related to creating TIFF files.
OCR Engine:
Introduced the ScanbotOcrEngine object to encapsulate and manage all SDK functionalities related to optical character recognition.
Introduced a new API recognizeOnDocument that performs OCR on a provided DocumentData object.
Added a new improved class PerformOCRResult to replace the previous PerformOCRResult type for OCR results.
Document Quality Analyzer:
Added a new property processByTileConfiguration to DocumentQualityAnalyzerConfiguration to explicitly enable/disable by tile processing.
Added cumulativeContrastHistogram and cumulativeTextSizeHistogram properties for text contrast and size estimation in DocumentQualityAnalyzerResult.
Added the orientationConfidence property to DocumentQualityAnalyzerResult.
MRZ Scanner:
Introduced the ScanbotMrz object to encapsulate and manage all SDK functionalities related to scanning MRZ.
Text Pattern Scanner:
Introduced the ScanbotTextPattern object to encapsulate and manage all SDK functionalities related to text pattern scanning.
Added a new property optimizeSingleLine to TextPatternScannerConfiguration. Enable this option when scanning a single line or a single word that is hard to scan reliably. Disabled by default.
VIN Scanner:
Introduced the ScanbotVin object to encapsulate and manage all SDK functionalities related to VIN scanning.
Added a new property optimizeSingleLine to VinScannerConfiguration for improved single line VIN scanning.
Document Data Extractor:
Introduced the ScanbotDocumentDataExtractor object to encapsulate and manage all SDK functionalities related to extracting data from documents.
Added a new metadata child document to all supported formats.
Added a new countryCode property to all supported formats.
Added a new type literal PERSONAL_ID in CommonFieldType.
Check Scanner:
Introduced the ScanbotCheck object to encapsulate and manage all SDK functionalities related to check scanning.
Support a wider range of USA check formats.
Credit Card Scanner:
Introduced the ScanbotCreditCard object to encapsulate and manage all SDK functionalities related to credit card scanning.
Barcode Scanner:
Introduced the ScanbotBarcode object to encapsulate and manage all SDK functionalities related to barcode scanning.
Added a new API parseDocument for parsing barcode documents from raw text values.
Added a new API scanFromPdf for scanning barcodes from PDF documents.
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 enabled by default but can be turned off using the enableOneDBlurScanner property in barcode format configurations on low-power devices if necessary.
Added a new barcode scanner engine mode called NEXT_GEN_MAX_DISTANCE, 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 oneDConfirmationMode which is THOROUGH by default. Setting it to MINIMAL or NONE could lead to higher recall in difficult scenarios, but could also cause more false positives.
π Improvements:
General:
All APIs can now return more complete errors with error messages.
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.
Android: Optimized memory usage of Scanbot Camera components.
Android: Improved RTU UI components padding behavior for finder view and action bars.
iOS: 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.
Document Scanner:
Aspect ratio scores are now symmetrical, and low scores are more consistent.
Now correctly returns ERROR_TOO_DARK when nothing is detected and the image brightness is below the threshold.
Android: The Document API now returns cached document objects. This means if you load a DocumentData once, it will remain in memory during the app session and be returned when loaded from another location.
Android: Fixed an issue with double compression for document images during rotation or filtering operations that significantly increased the size of the original and other PageData images.
Cropping Screen:
iOS: 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.
iOS: Improved cropping handle movement, preventing irregular polygons and glitches.
Image Processing:
All image processing methods now accept both image file URIs and ImageRef objects as inputs. If working with image file URIs, the ability to overwrite the original image file is now supported via the overwrite parameter.
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.
Glare detection now works more reliably, especially on iOS.
Credit Card Scanner:
Higher recall for expiry date detection.
Improved FrameAccumulation logic.
Barcode Scanner:
Improved quiet zone checks for the barcode format PharmaCode to reduce the false positive rate.
Reduced the false positive rate of blurred barcodes in live mode when the barcode is only partially visible.
π Bug fixes:
General:
ImageRef: If ImageRef was saved to an already existing location, in some cases it could return an error instead of overwriting the existing file.
ImageRef: Fixed possibility of ImageRef to be saved as an invalid JPEG (when only part of the image was actually saved).
Android: Fixed issues related to edge-to-edge warnings in Google Play Store for RTU-UI screens.
Android: Fixed dependencies clash related to material icons in RTU-UI screens.
Document Scanner:
Now correctly returns ERROR_TOO_DARK when nothing is detected and the image brightness is below the threshold.
iOS: Fixed a bug that left a temporary copy of captured images on disk when scanning with the RTU-UI Document Scanner. These images can be cleaned up using the ScanbotLegacyPage.removeAllPages API. Note that this will remove all legacy pages. If needed, make sure to migrate to the new document objects using the ScanbotDocument.createDocumentFromLegacyPages API before removing all legacy pages.
Android: Fixed the title counter update in the review step for RTU-UI screen.
Android: Fix a rare issue with a bug that occurred on Xiaomi that breaks the image import feature.
Android: Fixed an issue where the source property had an incorrect value after migrating from the legacy Page object to the new PageData object.
Document Quality Analyzer:
Fixed a bug that could lead to incorrect 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.
Fixed a bug which prevented the recognition of mixed letters in the address field of some ID cards.
Speed up verification of DeResidencePermitFront by using interpolation-verification for the "Remarks" field.
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 and EAN barcodes with extensions in RTU-UI screen.
Fixed a bug in Barcode RTU-UI Multiple Scanning Mode where the count of the sheet button was not updated properly.
β οΈ Breaking changes:
General:
Removed capacitor-plugin-scanbot-sdk/ui_v2. All types, constants, and functions previously imported from this path should now be accessed via the new dedicated objects in capacitor-plugin-scanbot-sdk (e.g., use ScanbotTextPattern.startScanner instead of startTextPatternScanner). Update your imports and usage accordingly.
Removed the ScanbotSdkConfiguration type. The initialize method now requires an instance of the SdkConfiguration class. Update your initialization code accordingly.
Removed LicenseInfoResult in favor of the new LicenseInfo class. Update your code to use the LicenseInfo class for license information retrieval.
Removed the property scanningMode from scanner configurations where processingMode property was added.
Replaced type literal IF_AVAILABLE with AUTO in EncryptionMode.
Renamed property roi to cropRect in all image load options types for better clarity.
Renamed initializeSDK to initialize, getOCRConfigs to getOcrConfigs, and cleanup to cleanupStorage in ScanbotSDK.
Renamed extractImagesFromPdf to extractImageFiles in ScanbotPdfImageExtractor. The method signature and result were also changed.
Renamed class Categories to Category.
Renamed class Languages to Language.
Moved globally exported constants for generic document fields and types into their respective classes to improve organization.
Removed clone() method from ImageRef.
Feature removal:
Removed all RTU-UI v1 scanners and related types. All RTU-UI scanners have been upgraded to RTU-UI v2.
Removed the following deprecated legacy Page operations: applyImageFiltersOnPage, createPage, rotatePage, detectDocumentOnPage, and extractPagesFromPdf.
Removed the Medical Certificate processing features and all related types.
Removed the dedicated EHIC processing APIs and all related types. EHIC cards can now be scanned using Document Data Extractor.
Document Scanner:
Renamed detectDocument to scanFromImage in ScanbotDocument. The method now returns a DocumentScanningResult object instead of DocumentDetectionResult.
Renamed createDocument to createDocumentFromImages in ScanbotDocument. The function signature has changed to accept an array of image inputs.
Renamed addPage to addPages in ScanbotDocument. The function signature has changed to accept an array of image inputs.
Renamed removePage to removePages in ScanbotDocument. The function signature has changed to accept an array of page indices.
Renamed storedDocumentIDs to getStoredDocumentIDs in ScanbotDocument.
Removed result wrappers for the following ScanbotDocument methods: documentExists, getStoredDocumentIDs. These methods now return their results directly.
Restructured function signatures and parameters in several ScanbotDocument methods for improved usability.
Image Processing:
The ColorDocumentFilter now works slightly differently by default. To get the previous behavior, set paperWhitening=0 and paperWhiteningBias=64.
The behavior of the LegacyImageFilter was 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.
Renamed getImageData to readImageData in ScanbotImageProcessor.
Removed static method fromImageFilterType from LegacyFilter.
PDF Generator:
Renamed the method createPDF in ScanbotSDK to generateFromImages and moved it to the ScanbotPdfGenerator object.
Renamed the method createPDF in ScanbotSDK.Document to generateFromDocument and moved it to the ScanbotPdfGenerator object.
generateFromImages and generateFromDocument now return the PDF file URI as a result instead of CreatePDFResult.
TIFF Generator:
Renamed the method writeTIFF in ScanbotSDK to generateFromImages and moved it to the ScanbotTiffGenerator object.
Renamed the method createTIFF in ScanbotSDK.Document to generateFromDocument and moved it to the ScanbotTiffGenerator object.
generateFromImages and generateFromDocument now return the TIFF file URI as a result instead of WriteTIFFResult.
Document Quality Analyzer:
Renamed documentQualityAnalyzer to analyzeQualityOnImage.
OCR Engine:
recognizeOnImages and recognizeOnDocument methods in ScanbotOcrEngine now return an instance of the PerformOCRResult class instead of the PerformOCRResult type.
MRZ Scanner:
Renamed recognizeMrz to scanFromImage in ScanbotMrz.
Document Data Extractor:
No longer returns crops by default. This can be re-enabled in the configuration.
Renamed documentDataExtractor to extractFromImage in ScanbotDocumentDataExtractor.
Replaced DocumentDataExtractionStatus type literals SUCCESS, INCOMPLETE_VALIDATION, ERROR_STILL_FOCUSSING with OK, OK_BUT_INVALID_DOCUMENT, OK_BUT_NOT_CONFIRMED, SCANNING_IN_PROGRESS_STILL_FOCUSING.
Check Scanner:
Renamed recognizeCheck to scanFromImage in ScanbotCheck.
Credit Card Scanner:
Renamed recognizeCreditCard to scanFromImage in ScanbotCreditCard.
Barcode Scanner:
Renamed startBarcodeScanner to startScanner in ScanbotBarcode.
Renamed detectBarcodesOnImage to scanFromImage in ScanbotBarcode.
Changed the type of the scannerConfiguration property in BarcodeScannerScreenConfiguration from CommonBarcodeScannerConfiguration to BarcodeScannerConfiguration.
The MICRO_QR_CODE barcode format has been removed from the list of common barcode formats.
π Under the hood:
Upgraded the native Scanbot Android SDK to v8.0.1.
Upgraded the native Scanbot iOS SDK to v8.0.4.
Upgraded libzueci lib dependency to 1.0.1.
Added snowflake-arctic-embed-xs lib dependency to eadfba3b.
Android: libittnotify is no longer linked.
Android: Fixed NoClassDefFoundError: LocalBroadcastManager missing that happened during dependency tree resolving when final app used newer version of androidx dependencies.
Android: Dropped SharedPreferences usage for the License Key storing.
Android: The SDK Project has been switched to compileSdk = 36.
Android: The SDK Project has been switched to AGP 8.10.1.
Android: The SDK Project has been switched to Kotlin 2.1.21.
Android: Upgraded Dagger lib dependency to 2.56.2.
Android: Upgraded Kotlin Standard Library dependency to 2.1.21.
Barcode configurations for 1D barcode types have a new field minimumNumberOfRequiredFramesWithEqualRecognitionResult that requires this number of frames on which the barcode has to be detected.
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.
π Improvements:
Check Scanner:
Updated US check field documentation.
Improve handling of scanning results when detection mode DETECT_AND_CROP_DOCUMENT is set.
π Bug fixes:
Document Scanner:
Fixed serialization of DocumentData class.
iOS: Fixed a bug in RTU-UI that did not always crop images from the photo library.
Android: Fixed issue with empty documentQuality when acknowledgementMode was set to BAD_QUALITY.
Android: Fixed a bug where the usage guidance wouldn't show properly on screen startup.
Android: Fixed image size on review screen when screen was in horizontal layout.
Check Scanner:
Fixed a bug in the implementation of the US check standard which lead to rejection of valid checks.
General:
iOS: Fixed a bug in the RTU-UI user interface that prevented the proper display of the view finder in landscape mode.
Android: Fixed 16 kb page size support for TFLite native library.
β οΈ Breaking changes:
Barcode Scanner:
The field minConfirmationsStandaloneEAN in BarcodeAccumulationConfiguration was moved and renamed to the field minimumNumberOfRequiredFramesWithEqualRecognitionResultExtensionless in BarcodeFormatUpcEanConfiguration.
π Under the hood:
Upgraded the native Scanbot iOS SDK to v7.1.4.
Upgraded the native Scanbot Android SDK to v7.1.2.
Added property showReviewScreenOnStart to DocumentScanningFlow. If enabled, the scanner automatically navigates to the Review Screen when the flow starts.
Added property openReviewAfterEachScan to CameraScreenConfiguration. If enabled, the Review Screen is opened after each addition of a new page.
Added property showLastPageWhenAdding to ReviewScreenConfiguration. If enabled, the Review Screen will be opened showing the last page.
Introduced a Document Verification API including document semantics verification capabilities.
Added support for multiple new document types:
ID Cards from Brazil, Hong Kong, Macao, and China.
Chinese Entry and Exit Permits.
Now supports the front side of many more EU driver's licenses.
Added partial support for parsing of German addresses. For the respective ID cards, address parsing can be enabled via a new DeAddressParserConfiguration. If the parsing was successful, the parsed address is stored as a child document (similar to MRZ).
Returns the issuing series of German ID Cards as part of the returned document as the Series field.
Barcode Scanner:
BarcodeItem has new properties:
extendedQuad and extendedQuadNormalized that represent extended quads for 1D barcodes.
rawBytesEncodings that contains the precise character encoding information of rawBytes.
structuredAppendInfo that contains the messages split across multiple barcodes.
globalIndex to identify a barcode across multiple frames.
BarcodeScannerUiResult has a new property selectedZoomFactor that contains the value that the user used to scan the barcode.
BarcodeScannerConfiguration has a new property accumulationConfig that allows the accumulation of barcodes over multiple frames in live mode.
General:
Added a new analytics API. Subscription to events is now available, and events can be redirected to an external analytics system. See this example.
Added a new mock camera API that allows injecting an image to simulate a video stream to the scanner camera session for UI testing. See this example.
CameraConfiguration has new properties:
fpsLimit to limit the rate of detections per second in normal performance mode.
iOS: hardwareButtonsEnabled to enable zooming using the camera control button (iPhone 16 series).
Android: Added new property performanceHintApi in ScanbotSdkConfiguration. If enabled, performance is increased due to increased use of top CPU cores.
π Improvements:
Document Scanner:
Increased performance for Document Scanner algorithms.
iOS: Improved landscape-orientation layout of RTU-UI v2 screens.
iOS: The zoomed page view in the RTU-UI v2 Review Screen now closes when you finish zooming while being below the minimum zoom value.
iOS: 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.
Android: Don't rotate images if they are initially detected as rotated by 180 degrees.
OCR Engine:
Improved performance of the Scanbot OCR engine by improving handling of special characters like umlauts when frame accumulation is used.
Document Quality Analyzer:
Improved performance. Document quality scores may slightly change for the same input images when compared to the previous version of the DoQA.
MRZ Scanner:
On US border crossing permits, the document number is now returned in the correct field.
Dates in MRZ now also support parsedData correctly
Text Pattern Scanner:
General speed improvements.
Now supports XNNPACK for faster inference
Document Data Extractor:
General speed improvements.
Now detects whether a document is in focus and only starts the heavy recognition pipeline when image quality is suitable.
Can now detect glare in images. Fields obstructed by glare will be returned with a validation status of OBSTRUCTED.
Classification for documents with MRZ is more stable.
More consistent usage of common field types.
Improved maiden name processing for DePassport and DeIdCard.
Now also supports the new German ID card format issued starting 2024.
Check Scanner:
If image cropping is enabled and is successful, check recognition is performed on the crop instead of the original image.
Credit Card Scanner:
Support for credit cards with an expiry date above the card number.
Support for credit cards with a name written on two lines.
Medical Certificate Scanner:
Date recognition in Medical Certificate forms is now based on the Scanbot OCR Engine and shows significant quality improvements.
Barcode Scanner:
All Barcode AR overlays are now based on extendedQuads.
Boarding pass document parser now supports up to version 8 of the IATA-BCBP standard.
vCard document parser was improved.
Android: Improved handling of back action with multiple dialogs and bottom sheets.
General:
Android: Improved the algorithm of high performance cores computation as the old one didn't work correctly on some devices (e.g. Pixel 9 Pro).
Android: Integrated Android Performance Hint Session. This significantly improves multithreading performance for some scanners (e.g. Credit Card Scanner and Barcode Scanner) on devices that support the Hint Session (e.g. Pixel 9 Pro and Samsung S24 Ultra).
Android: Added more debug level logging to ScanbotCameraXView events.
π Bug fixes:
Document Scanner:
Fixed a bug in RTU-UI v2 Document Scanner where auto rotation was applied if no document was detected.
iOS: Fixed a bug in RTU-UI v2 Document Scanner where the document could not be captured in auto snap mode when enabledInAutoSnappingMode was set to false in ShutterButton.
iOS: Fixed an issue on simulators where the shutter button was missing in the RTU-UI Document Scanner.
iOS: Fixed an issue where documents were incorrectly rotated when using modifyPage.
Android: Fixed an issue in RTU-UI v2 where multiple manual snaps in "single page" mode caused invalid screen behavior.
Android: Fixed an issue in RTU-UI v2 where autofocus failed during the autosnap event.
Android: Fixed an issue in RTU-UI v2 where the last scanned page's preview would not update on a specific layout configuration.
Android: Fixed an issue in RTU-UI v2 where the start of the activity without initializing the Scanbot SDK was leading to an application crash.
Android: Fixed insets in RTU-UI v1 for the shutter button when the app is built with target_sdk >= 35.
PDF Image Extractor:
iOS: Fixed wrong orientation of extracted images when the PDF page had a transform applied.
Document Quality Analyzer:
iOS: Fixed quality estimation for rotated images.
MRZ Scanner:
Fixed an issue causing null to be returned as a confidence of empty fields.
Credit Card Scanner:
Returns the correct scanning status if no fields are recognized.
Setting the confirmation method to interpolate when scanning credit cards no longer results in unsuccessful recognitions if all data was extracted and verified.
iOS: Fixed a crash if document detection was not successful due to an OK_BAD_ASPECT_RATIO status.
Android: Fixed an issue where an invalid status was not being returned when the frame accumulator confirmed an invalid field.
Document Data Extractor:
When IssuerNumber is excluded on European health insurance cards, this no longer leads to the IssuerName being incorrectly excluded.
MRZ fallback now also works when no accepted document types are selected.
Barcode Scanner:
The carrier identifier for MaxiCode mode 3 might be encoded by using different codewords. Now all possible codewords are checked that encode the carrier identifier.
vCard document parser now correctly processes the FN key as FormattedName.
Android: Fixed an issue where the extractedDocument was not being generated for GS1 Handling DecodeStructure and DecodeFull.
Android: Fixed an issue where the back button navigation did not work in Barcode Scanner RTU UI v2.
Storage Crypting:
iOS: Fixed data corruption issues in AES encryption/decryption that could result in corrupted or partially corrupted files.
General:
Fix incorrect CANCEL status value in RTU UI scanner's result.
Fixed a rare division by zero crash in Credit Card Scanner, Document Data Extractor, and MRZ Scanner.
iOS: Fixed a bug with scanned documents cloning when using per-file encryption.
Android: Prevent throwing exception when /sys/devices/system/cpu/cpufreq doesn't exist.
Android: Fixed handling of the back actions for modal dialogs in RTU-UI v2.
β οΈ Breaking Changes:
VIN Scanner:
Renamed RTU V1 VinScannerConfiguration to VinScannerScreenConfiguration.
Check Scanner:
Moved acceptedCheckStandards configuration from the function signature into CheckScannerConfiguration object for recognizeCheck.
Document Data Extractor:
Removed startDocumentDataExtractor and closeDocumentDataExtractor RTU UI v1 and all associated types. See the newly added RTU UI v2 startDocumentDataExtractor.
By default, only German documents are now enabled for scanning. Previously, all supported documents were enabled.
Renamed DeDriverLicenseFrontDocumentType to EuropeanDriverLicenseFrontDocumentType. Associated types/interfaces are also renamed.
Renamed DeDriverLicenseBackDocumentType to EuropeanDriverLicenseBackDocumentType. Associated types/interfaces are also renamed.
General:
Removed useCameraX property from ScanbotSdkConfiguration.
β οΈ Deprecations:
Marked startCheckScanner and closeCheckScanner RTU UI v1 as deprecated. Please see the new RTU UI v2 Check Scanner.
Marked startVinScanner and closeVinScanner RTU UI v1 as deprecated. Please see the new RTU UI v2 VIN Scanner.
Marked refreshImageUris, applyImageFiltersOnPage, createPage, rotatePage, removePage, setDocumentImage, detectDocumentOnPage and extractPagesFromPdf as deprecated.
π Under the hood:
Upgraded the native Scanbot iOS SDK to v7.1.2.
Upgraded the native Scanbot Android SDK to v7.1.1.
Added the ability to auto-rotate the document based on the text orientation detected by the Document Quality Analyzer in Document Scanner RTU-UI v2. Enabled by default.
Introduced advanced generation settings for PDFs and TIFFs.
Added the ability to show custom images in the Intro Screen for Document Scanner RTU-UI v2.
Added a new document detection status OK_BUT_TOO_DARK β triggered when a document is detected under poor lighting conditions.
Document Quality Analyzer (DoQA):
Can now return the orientation of the document. Enabled by DocumentQualityAnalyzerConfiguration.detectOrientation.
Added new Credit Card Scanner feature with Ready-to-Use UI (RTU UI v2). See startCreditCardScanner. It can also be used with Scan from Image approach. See recognizeCreditCard.
MRZ:
New RTU UI v2 is now available for MRZ Scanner. See startMRZScanner.
Added support for non-ICAO conformant machine-readable zones on US border crossing cards.
Added minimumSizeScore to barcode configurations; barcodes with sizeScore < minimumSizeScore are ignored.
Introduced strictMode for certain barcode configurators (QR_CODE, MICRO_QR_CODE, RMQR_CODE, PDF_417, MICRO_PDF417, and GS1_COMPOSITE) to balance detection rate and false positives.
Added the ability to return the barcode image in the resulting object via BarcodeScannerConfiguration.returnBarcodeImage.
Added new engine modes NEXT_GEN_FAR_DISTANCE (optimized for scanning from far distances) and NEXT_GEN_LOW_POWER_FAR_DISTANCE (optimized for scanning from far on low-power devices).
Barcode scanning results have been enhanced with more detailed information, including sizeScore. See BarcodeItem.
Added new predefined subsets of barcode formats (1D, 2D, Postal, Pharma, etc.). Old sets removed.
Cropped images returned as part of the scanner results are now represented as image references (ImageRef) that can be converted to base64 or saved to a path.
Added exported array constants for union type values to clearly list all available options (for ex, BarcodeFormatValues).
Android: Added a new property keepScreenOn in all RTU-UI v2 scanner screen configurations to keep the device screen awake while scanning.
π Improvements:
Document Scanner:
Added OK_ORIENTATION_MISMATCH status, returned when screen and document orientations don't match. Can be ignored via configuration.
Improved the Document Scanner RTU-UI v2 acknowledgment's bad image quality hint by adding the ability to present up to 5 lines.
iOS: Improved performance when editing a page in RTU-UI v2 Document Scanner Review Screen.
iOS: Improved the accessibility handling in RTU-UI v2 Document Scanner. Accessibility for the document preview button is now activated only when scanned pages are available.
Document Quality Analyzer (DoQA):
Guarantee the same document quality score for 90 degrees rotated images.
Image Processing:
New Image Processor preset BinarizationFilterPreset.PRESET_5 for documents with barcodes.
PDF & TIFF Generation:
PDF Generator with OCR layer now handles non-ASCII characters correctly.
MRZ:
For pre-2022 Costa Rican passports, ID Number is returned as documentNumber and Sequence Number as personalNumber in MRZ fields.
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.
GS1 Composite codes are now processed faster when scanned from image.
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, and CODE_25.
Improved the false positive rate for ITF barcodes.
Fixed an overflow when decoding MICRO_QR_CODE with wrong bits in numeric mode.
Fixed minimumTextLength for ITF barcode format (checked symbols instead of text length).
Fixed sorting of quad points for four-state/postal barcode types.
In Code11 barcodes with 10 data digits, when checksum is enabled and stripCheckDigits is true, scanner now correctly strips both check digits.
iOS: Fixed a bug in Barcode Scanner RTU-UI v2 where the flip camera button was not resetting to the widest available camera.
iOS: Fixed a UI bug in Barcode Scanner RTU-UI v2 where the sheet button overlapped the action bar.
iOS: Fixed a bug in AR Barcode Scan and Count where the scanner would get stuck if no barcode was detected.
Android: FindAndPickScanningMode.sheetContent.barcodeItemImageVisible in RTU-UI v2 now correctly applies visibility.
iOS: Fixed an issue in RTU-UI v2 where the introduction screen appeared automatically even when camera access was denied.
iOS: Fixed an issue where quickly stopping and starting the camera session of any scanner screen could lead to a crash or unpredictable behavior.
iOS: Fixed a crash in SBSDKBaseScannerViewController caused by camera access being restricted by system-wide settings (e.g. Parental Controls / Screen Time).
Android: Fixed screen insets for Android API 35 with forced edge-to-edge mode by opting out for RTU-UI v1 screens.
Android: In RTU-UI v2, modal dialog no longer appears below status bar.
Android: Accessibility content for action buttons in RTU-UI v2 now properly applied.
β οΈ Breaking Changes:
To keep the package size smaller, the SDK no longer includes training data files by default. If you are using the TESSERACT engine mode or the Medical Certificate Scanner, please download and include the necessary language files in your app. Learn more here.
ResultWrapper has been removed from all API responses, except those returned by RTU UI.
initializeSDK now returns a LicenseInfoResult instead of the previous result format.
RTU-UI v1 Removal:
Removed RTU-UI v1 APIs: startMrzScanner, startTextDataScanner, startBarcodeScanner, startBatchBarcodeScanner, startLicensePlateScanner and related types. Use corresponding RTU UI v2 methods.
Feature renaming:
Renamed startGenericDocumentRecognizer to startDocumentDataExtractor and related types from GenericDocumentRecognizer to DocumentDataExtractor.
Renamed startCheckRecognizer to startCheckScanner and related types from CheckRecognizer to CheckScanner.
Renamed startMedicalCertificateRecognizer to startMedicalCertificateScanner and related types from MedicalCertificateRecognizer to MedicalCertificateScanner.
Renamed recognizeGenericDocument to documentDataExtractor.
Renamed Text Data Scanner (also Generic Text Recognizer) to Text Pattern Scanner.
Implemented new RTU-UI v2 Document Scanner screen with extended scanning and reviewing capabilities. Added startDocumentScanner and startCroppingScreen APIs that can be imported from capacitor-plugin-scanbot-sdk/ui_v2. See full documentation here.
Implemented new Document API to perform document creation and editing.
Added support for German health insurance card (front side) and European health insurance card to startGenericDocumentRecognizer and recognizeGenericDocument. Added literals DE_HEALTH_INSURANCE_CARD_FRONT and EU_HEALTH_INSURANCE_CARD to GenericDocumentType. Added EuropeanHealthInsuranceCardDocumentType and DeHealthInsuranceCardFrontDocumentType to DocumentsModelRootType.
Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32. Added literals that represent the new barcode types in BarcodeFormat.
Added a new optional property licenseStatusMessage in GetLicenseInfoResult.
Added a new optional property addAdditionalQuietZone in DetectBarcodesOnImageArguments. The default value is false.
Added a new optional property recognizerParameters of type HealthInsuranceCardRecognizerParameters in HealthInsuranceCardScannerConfiguration to configure live detection parameters.
Added a new property accessibilityDescription in RoundButton and ButtonConfiguration.
Added a new optional property encryptedImageFiles in CreatePDFArguments. The default value is false.
Added a new property allowEmptySubmission in MultipleScanningMode to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
Added new optional properties useIATA2OF5Checksum, useCode11Checksum and australiaPostCustomerFormat in BarcodeScannerConfiguration, BatchBarcodeScannerConfiguration, BarcodeRecognizerConfiguration and DetectBarcodesOnImageArguments.
Added the ability to display the scanned barcode's image in the RTU-UI v2 Barcode Scanner FindAndPickScanningModeUseCase by specifying ExpectedBarcode.barcodeImageKey for the expected barcode's image property.
Added a new type literal CONFIRMED in ValidationStatus type in GenericDocument.
iOS: Added new zoom control slider (controlled by the new camera control button) to all view controllers. Available on all the new iPhone 16 models.
Android: Added support for 16KB page size (Android 15).
Android: Added a new property polygonInRoot in Field type used in GenericDocument.
π Improvements:
Document detector:
Improved detection speed and robustness against orientation changes.
Improved robustness against picking up random contours.
Improved robustness against documents with colored corners, booklets, handheld documents, and cards, documents near edges of tables, and overlapping documents.
The Generic Document Recognizer now uses 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 detection of UPC and EAN extensions.
Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec barcodes.
Improved performance of documentQualityAnalyzer.
For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
iOS: Improved sharpness of captured images in documentScanner by tweaking various timing related default values, such as autoSnappingDelay.
Android: Improved generic document recognition on static images.
π Bug fixes:
Fixed KANJI mode for QR codes.
iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner FindAndPickScanningModeUseCase that never showed the expected barcodes title, but always the barcode value.
iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner FindAndPickScanningModeUseCase in button sheet mode where the counter badge was not visible.
iOS: Fixed a UI issue on the RTU-UI v2 Barcode Scanner's sheet screen where the subtitle label was being vertically cut off.
iOS: Fixed a UI issue on the RTU-UI v2 Barcode Scanner's confirmation sheet in the SingleScanningModeUseCase where the loading indicator was not centered when the loading message was hidden.
iOS: Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
iOS: Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
iOS: Fixed a UI issue in RTU-UI v2 Barcode Scanner's finder where the background color overlapped with the line color.
iOS: Fixed a crash when zooming with invalid minZoom and maxZoom values.
iOS: Fixed a bug that did not mirror the front camera as expected.
iOS: Fixed a bug where recognizeGenericDocument did not accept any acceptedDocumentFormats values.
Android: Fixed image preprocessing for documentQualityAnalyzer.
Android: Fixed R8 obfuscation config for SDK logging classes.
Android: Minor fixes for appearance in RTU-UI v2 Barcode Scanner to make it consistent with its iOS counterpart.
Android: Fix point sorting in the contour detector.
Android: Fixed an issue with AR Overlay and barcode mapping in RTU-UI v2 Barcode Scanner, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.
β οΈ Breaking Changes:
The application project must use Android Gradle Plugin version >= 8.4.0 or have the Kotlin plugin applied.
Deprecated startDocumentScanner, startFinderDocumentScanner, startCroppingScreen and related configurations and result types. See RTU-UI v2 Document Scanner.
Deprecated startEHICScanner, recognizeEHIC and related configurations and result types.
Removed property codeDensity from BarcodeScannerConfiguration, BatchBarcodeScannerConfiguration, BarcodeRecognizerConfiguration and DetectBarcodesOnImageArguments.
Removed property sharpnessAcceptanceFactor from GenericDocumentRecognizerConfiguration and RecognizeGenericDocumentArguments.
Removed type literals VALIDATE and DECODE and replaced them with VALIDATE_STRUCTURE, DECODE_STRUCTURE, VALIDATE_FULL and DECODE_FULL in Gs1HandlingMode.
Removed type literals SUCCESS_FOUND and ERROR_TOO_BLURRY and added new ERROR_UNKNOWN_DOCUMENT,ERROR_UNACCEPTABLE_DOCUMENT and INCOMPLETE_VALIDATION in RecognitionStatus.
Renamed type DetectionStatus to DocumentDetectionStatus and removed OK_BARCODE type literal.
Changed default values for properties enableCameraButton and closeButton in CameraPermissionScreen.
Changed default values for properties okButton, cancelButton and actionButton in ScanbotAlertDialog.
Changed default value for property visible in ArOverlayFindAndPickConfiguration to true for FindAndPickScanningMode.
Document models changes:
Added property cardAccessNumber and removed property pin in DeIdCardFront and DeResidencePermitFront models.
pseudonym property now returns Field | undefined in DeIdCardBack model.
restrictions property now returns Field | undefined in DeDriverLicenseBack model.
Replaced m property of type DeDriverLicenseBack.Categories.M with am property of type DeDriverLicenseBack.Categories.AM.
Replaced standard and validationStatus fields with validationErrors in the GS1.Element class.
Android: Changed barcodesRegexFilter behavior in BarcodeRecognizerConfiguration for BarcodeScannerConfiguration config for RTU-UI v2 Barcode Scanner. Barcodes are accepted if the barcode data contains the part that matches the regex.
Android: Some newly created files, like PDF, TIFF, or temporary images, will have different paths than previously created files.
iOS: Added optional property displayText in Field.Type.
iOS: rotatePage rotates clockwise with negative values.
π Under the hood:
Upgraded the native Scanbot Android SDK to v6.1.2.
Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. Import startBarcodeScanner from capacitor-plugin-scanbot-sdk/ui_v2 to leverage the new UI. See our updated documentation for a full set of examples and use cases.
Added new data recognizers on still images: recognizeMedicalCertificate, recognizeEHIC, recognizeGenericDocument.
Added support for new barcode format MICRO_PDF_417. MICRO_PDF_417 literal added to type BarcodeFormat.
Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
Added support for Canadian and UAE Check standards. UAE and CAN literals added to type CheckStandard.
Added support for German residence permits (2011 and 2019 formats) in GenericDocumentRecognizer. DE_RESIDENCE_PERMIT_FRONT and DE_RESIDENCE_PERMIT_BACK literals added to type GenericDocumentType. Wrapper classes added for the generic document result (DeResidencePermitFront, DeResidencePermitBack).
Added new class-based image filters ParametricFilters:
ScanbotBinarizationFilter
CustomBinarizationFilter
ColorDocumentFilter
BrightnessFilter
ContrastFilter
GrayscaleFilter
WhiteBlackPointFilter
LegacyFilter (encapsulates the deprecated ImageFilterType filters)
Added new VALIDATION_FAILED literal to type CheckStatus.
Added new type DocumentQualityAnalyzerArguments to better describe the input parameters for documentQualityAnalyzer.
Added new type HealthInsuranceCardFieldType to better describe the type property in HealthInsuranceCardField.
Added new types OCRBoundingBox, OCRResultBlock and OCRPage to better describe PerformOCRResult.
Added new property detectionStatus of type HealthInsuranceCardDetectionStatus in HealthInsuranceCardScannerResult.
Added new property acceptedBrightnessThreshold in DocumentScannerConfiguration, FinderDocumentScannerConfiguration.
Added new property textDataValueFilter in TextDataScannerConfiguration.
Added new property userDefinedFields of type TIFFUserDefinedField[] in WriteTIFFArgument.
Added new property minimumNumberOfSymbols in DocumentQualityAnalyzerArguments.
Added new properties pageFitMode, dpi, jpegQuality, resample and ocrConfiguration in CreatePDFArguments.
Added new properties engineMode, lowPowerMode, codeDensity in DetectBarcodesOnImageArguments.
Added new property parametricFilters in Page.
Added new literals OK_OFF_CENTER and OK_BARCODE to type DetectionStatus.
Added new applyImageFilters and applyImageFiltersOnPage APIs that accept an array of parametric filters as input and apply them to an image or page, respectively.
The result of the document scanner RTU screen has metadata that shows the current state of the flash, multiPage, and autoSnapping settings during scanning.