8.5.0
Android
8.5.0
Released: July 9, 2026
Known Issues
SDK 8.5.0 has a known issue that causes ID Capture to silently fail to scan any PDF417 ID in some customer configurations. Customers using ID Capture are recommended to stay on their current versions until version 8.5.1 is released.
New Features
Barcode
- MatrixScan Sequence: Introduced several new configurations to adapt the sequencing flow:
- Configure the duration of the idle timeout via BarcodeSequenceSettings.IdleTimeout.
- Set the accepted device orientation via
BarcodeSequenceSettings.shelfSequencingOrientation. Defaults toLANDSCAPE_ONLY, withPORTRAIT_ONLYandANYalso available. The rotate-device prompt's default text now reflects the configured orientation. - Toggle the per-row tray indicator label (e.g. "Row 1") through
shouldShowTrayIndicatorTexton theBarcodeSequenceView.
- Added group scanning to MatrixScan Count, enabled via
BarcodeCountSettings. Group scanning lets users count items in distinct groups, for example one pallet or delivery at a time, within a single session. Three controls manage the flow: Next group saves the current group's scans and clears its AR highlights so the next group starts on a clean screen; Redo clears the scans for the current group only, leaving already-completed groups untouched; Finish ends the session. - Added
BarcodeCountSettings.ExpectedNumberOfBarcodesPerClusterto MatrixScan Count to declare how many barcodes each cluster should contain (for example, 2 for labels carrying two barcodes). Any cluster that deviates from the expected count is flagged and highlighted with a default yellow brush (overridable). - Added support for
ScanditIconin MatrixScan Count highlights. - Added the SelectionMode API to replace the SparkScan target-mode APIs and
ScanIntention.smartSelection: SetselectionMode(off/on/auto) in theBarcodeCaptureSettingsandSparkScanSettingsto control whether an aimed-at barcode is scanned automatically or requires explicit selection. - Added
logoStyleandlogoAnchorcustomization properties toBarcodeArView,BarcodeCountView,BarcodeFindView,BarcodePickView, andBarcodeSequenceView. - Updated
BarcodeCountViewclusters to show normal indicators when no status is provided in status mode.
Id
- Added Irish Garda Age Card as
RegionSpecificSubtype.IrelandAgeCard. - Added a new
PassportTypeproperty toMrzResult. - Added double-sided support for the Oman residence card.
- Added single-sided support for extraction of issue date and birth date from the 2025 NYC Municipal ID.
Smart Label Capture
- Extended VIN label capture to also scan Code 128 barcodes (in addition to QR, Code 39, and Data Matrix) via
createVinLabelDefinition(). - Extended LabelCapture to accept label definitions where both "barcode" and "text" field types use the "semantics" feature simultaneously; previously this was restricted to only one field type at a time.
Performance Improvements
Barcode
- Enhanced detection of low-resolution QR codes, improving scan rates for QR codes with degraded print quality or unfavorable capture conditions. This improvement applies to QR codes of versions 1, 2, and 3 (21×21, 25×25, and 29×29 modules).
- codes is now enabled by default, improving scan rates for challenging QR codes with degraded print quality or unfavorable capture conditions. This improvement applies to QR codes of versions 1, 2, and 3 (21×21, 25×25, and 29×29 modules).
- Improved scanning of micro-QR codes affected by quiet zone violations and perspective distortion.
Smart Label Capture
- Improved Receipt Scanning efficiency by optimizing receipt image processing before extraction.
- Improved lifecycle handling of
LabelCaptureValidationFlowOverlayin unexpected scenarios.
Behavioral Changes
Barcode
- Reduced Code 128 minimum symbol count from 6 to 4; short codes (4 & 5 symbols) use stricter matching rules than longer codes. To explicitly exclude short codes, disable symbol counts 4 & 5 via
sc_symbology_settings_set_active_symbol_counts()for Code 128. Note that if you previously enabled short code scanning, more strict settings are now in effect to reduce the chance of false positives, which are more likely for very short codes. - Tightened Code 39 false positive filter thresholds by default; to restore the previous behavior, enable the
relaxedextension on Code 39 viasc_symbology_settings_set_extension_enabled(). This is only advised when external validation measures are available, e.g. scanning against a known list of valid codes or when codes contain structured data. - Updated
SymbologyDescription.forIdentifierto returnnullfor unrecognized identifiers (e.g."EAN-8"instead of"ean8"); previously such input was silently mapped toCodabar.
Bug Fixes
Barcode
- Fixed an issue where the "Remove" button in the sequence popover would sometimes not work.
- Fixed a memory leak in item-based scanning.
- Fixed an issue in BarcodeCount where the strap mode setting would not be saved in all cases.
- Fixed PDF417 macro block file ID decoding to correctly handle numeric formatting according to the ISO/IEC 15438:2015 specification.
- Fixed rare cases of incorrect (tiny) PDF417 location outlines.
Id
- Fixed an issue where cropped document images were rotated when Frame Image was also enabled.
- Corrected the orientation of cropped Visa document images that were being rotated incorrectly when scanned using a single-frame image source.
- Fixed parser handling of non-standard Surrey BC AAMVA barcodes that were incorrectly returning "Invalid Format".
- Resolved a duplicate Objective-C class registration that could trigger spurious casting failures or crashes when an app links both ScanditCaptureCore and ScanditIdCapture.
Smart Label Capture
- Fixed a memory leak in LabelCapture.
Core
- Fixed an Android camera issue where zoom values outside the device-supported range were sent to Camera2 on Android R+ (API 30+) without clamping, which could cause the capture request to fail and stall the preview.
- Fixed a rare crash when starting camera capture while under memory pressure.
- Fixed a rare crash when opening the camera.
- Fixed a crash when the
DataCaptureContextsingleton was initialized more than once.
Deprecations
Barcode
- The SparkScan target-mode APIs and
ScanIntention.smartSelectionare deprecated in favour of selectionMode. - Deprecated the
BarcodeCountView.newInstance()overloads that accept aDataCaptureViewon Android (will be removed in 9.0); pass aDataCaptureContextinstead. - Added
ScanditIconsupport forBarcodeCountstatus mode highlights, and deprecated theSDCBarcodeCountStatus-based highlight API.
8.4.1
Released: June 23, 2026
Bug Fixes
Barcode
- Fixed a memory leak in SparkScan when using the item-based API.
Id
- Fixed an issue where cropped document images were rotated when they are recovered using the getFrame API.
8.4.0
Released: May 18, 2026
New Features
Barcode
- Added an Error entry to
BarcodeSequenceState, triggered when the sequencing process encounters an error. - Added
dotRadiusproperty toBarcodeBatchBasicOverlayto allow customizing the size of dots when using the Dot overlay style. - Added
shouldShowShutterButtonflag inBarcodeSequenceViewto hide the main shutter button and blinking indicator; addedBarcodeSequenceView::startSequencing()andBarcodeSequenceView::pauseSequencing()(iOS) /BarcodeSequenceView::stopSequencing()(Android) to programmatically replicate the shutter button behavior; exposedBarcodeSequenceStateenum andBarcodeSequenceViewUIListener::onStateChangedto be notified when a state change occurs; exposedBarcodeSequenceView::stateto retrieve the current state; exposedBarcodeSequenceView::sequencedShelfModuleto retrieve the scanned shelf module.
Id
- Added support for reading the vehicle table on the back of New Zealand driving licences, with the latest expiry date returned; supported vehicle classes are 1–6, including L=learner and R=restricted variants.
- Added support for new versions of USA, California – Driver's License; USA, North Carolina – Driver's License; USA, Texas – Driver's License; and USA, Oklahoma – Driver's License.
Core
- Redesigned
ZoomSwitchControlto support multiple configurable zoom levels; the control now displays as a compact button that expands to show all available zoom levels, automatically filtered to those supported by the device hardware. - Added a new
PinchToZoomgesture. - Introduced a new
ZoomListeneron the Camera object.
Performance Improvements
Barcode
- Improved Code 128 scan robustness for codes with uneven blur and geometric distortions. Available on all platforms except WebAssembly without SIMD and ARM without FP16.
- Improved 1D barcode scanning speed and reduced false positives for linear symbologies.
- Further improved scanning of square DataMatrix codes with damaged or occluded timing patterns.
Behavioral Changes
Barcode
- Smart Scan Intention now continuously adapts between Single Scan and Selection modes during a scanning session when Smart Scan Selection is enabled, switching back to Single Scan when the scene no longer requires Selection mode. Previously, once Selection mode was activated it remained active for the rest of the session.
- Changed ITF scanning to reduce false positives by introducing checksum-dependent scoring. ITF has an optional checksum which is mandated to be enabled by many of the standards that use ITF as the data carrier. Starting with this release, checksum-passing ITF codes are scanned with more relaxed conditions than codes that don't pass the checksum test. This happens even if the optional mod 10 checksum isn't enabled. To disable this behavior, enable the
no_checksum_dependent_validationsymbology extension for the ITF symbology. - Removed the Abseil library dependency.
- Reduced Code 39 false positives.
Core
- Updated mbedtls from version 3.6.5 to 3.6.6.
Bug Fixes
Barcode
- Fixed an issue in
BarcodeCountwhere the floating shutter button was not visible after settingshouldShowFloatingShutterButtontotrue. - Fixed an issue preventing
BarcodeFindfrom finding binary barcodes. - Fixed PDF417 macro block file ID decoding to correctly handle numeric formatting according to the ISO/IEC 15438:2015 specification.
- Fixed a crash that could occur when scanning barcodes with the k-out-of-n filter enabled, if some detected barcodes were not subject to filtering.
- Fixed an issue where the Smart Scan Selection aimer would become too small when scan-area margins restricted the visible scan area; the aimer is now sized relative to the view, keeping a consistent on-screen size regardless of margins.
- Fixed an issue in BarcodeCount where the strap mode setting would not be saved in all cases.
Id
- Fixed an issue where the US Permanent Residence Card was not processed through the VizMrz flow.
- Fixed an issue where AAMVA verification was being performed even when no AAMVA document types were enabled in the accepted documents.
Smart Label Capture
- Fixed a memory leak in LabelCapture
- Fixed an issue where the validation flow viewfinder was not displayed.
- Fixed a race condition in the validation flow.
- Fixed a bug that caused error messages in
DataCaptureViewto be rendered partially out-of-view. - Fixed a bug that would cause the buttons in the
LabelCaptureValidationFlowOverlayto overlap when applying a long custom text. - Fixed a rare race condition in Label Capture.
- Added
.asDate()support toExpiryDateandPackingDatelabel fields when the text is provided as manual input or as an Adaptive-Recognition-Engine response. - Fixed a bug where the receipt scanning overlay and validation flow overlay could not be used on the same LabelCapture mode instance.
Core
- Fixed a crash that occurred when the
DataCaptureContextsingleton was initialized more than once. - Fixed a rare crash when opening the camera.
- Fixed a rare SIGABRT crash on camera initialization on devices whose HAL returns null from
Camera.Parameters.getSupportedFocusModes()(e.g. industrial barcode scanners like the Newland NLS-MT93). - Fixed custom sound not working in Barcode Find on Android.
- Fixed a rare crash when starting camera capture while under memory pressure.
8.3.1
Released: April 14, 2026
New Features
Barcode
- Added
shouldShowShutterButtonflag inBarcodeSequenceViewto hide the main shutter button and blinking indicator; addedBarcodeSequenceView::startSequencing()andBarcodeSequenceView::pauseSequencing()to programmatically replicate the shutter button behavior; exposedBarcodeSequenceStateenum as well asBarcodeSequenceViewUIListener::onStateChangedto be notified when a state change occurs; exposedBarcodeSequenceView::stateto retrieve the current state; exposedBarcodeSequenceView::sequencedShelfModuleto retrieve the scanned shelf module.
Bug Fixes
Smart Label Capture
- Fixed the validation flow to accept dates in more formats when manually entered
- Fixed a race condition in the validation flow
8.3.0
Released: March 26, 2026
New Features
Barcode
- Added support for composite codes in SparkScan
- Added PDF417 barcode generation support with configurable options like error correction level, compaction mode, and dimensions through the new
Pdf417BarcodeGeneratorBuilder.
Id
- Added support for OCR scanning of the 2026 version of Victoria mobile driver licenses
- Added IdCaptureSettings.anonymizeDefaultFields setting that controls whether the SDK applies default anonymization rules for specific document types and regions
- US, EU/ Schengen + UK passports no longer fallback to MRZ only. Now, US, EU/ Schengen + UK passports must capture VIZ instead of returning MRZ values after the configurable timeout has elapsed. This applies to FullDocumentScanner or SingleSideScanner when both VIZ and MRZ zones are enabled.
Smart Label Capture
- Fixed a rare race condition
Core
- Deprecated outdated DataCaptureViewListener
Performance Improvements
Barcode
- Improved EAN8 false positive filtering in strict mode
- Improved speed of MatrixScan Count scanning phase for mid- and high-end devices
Core
- Improved nullability handling across the library to ensure null-safety contracts are enforced consistently, reducing the risk of unexpected crashes
Behavioral Changes
Core
- Updated Android documentation to render in Kotlin
Bug Fixes
Barcode
- Fixed an issue in BarcodeCount where the floating shutter button was not visible after setting shouldShowFloatingShutterButton to true.
- Fixed a bug that was causing BarcodeFind to render barcodes filtered out by the Transformer as if they were valid targets.
Id
- Fixed support for UAE Esaad card
- Sanitized name fields on ACT driver license to split FullName and populate first and last name properties
- Added support for scanning MRZ from the back of Argentinian DN when using
FullDocumentScanner
Smart Label Capture
- Fixed an issue in the
LabelCaptureValidationFlowOverlaywhen using it with Jetpack Compose that caused focus loss when opening the keyboard - Added
LabelCaptureValidationFlowOverlay.ShouldHandleKeyboardInsetsInternallyfor cases when customers don't want to follow official Android edge-to-edge and inset guidelines
Core
- Fixed a potential app hang when the app transitions to the background for licenses without analytics enabled.
8.2.1
Released: March 5, 2026
Bug Fixes
Id
- Sanitized name fields on ACT DL. Splits FullName to populate first and last name properties
Smart Label Capture
- Fixed LabelCaptureValidationFlowOverlay possible issue with Jetpack Compose that caused focus loss when opening the keyboard
- Added LabelCaptureValidationFlowOverlay::ShouldHandleKeyboardInsetsInternally in case customers don't want to follow official Android guidelines for edge-to-edge and insets
- Fixed a rare race condition
8.2.0
Released: February 13, 2026
New Features
Barcode
- Added new getFeedbackForScannedItem method to SparkScanFeedbackDelegate
Id
- Added a Jetpack compose settings sample for ID
- Enabled scanning of MRZ on the backside of several EU residence permits
- Added extraction of a cropped document image from Passports and VISAs that do not support VIZ extraction
- Added extraction of the date of birth from Romanian IDs
Smart Label Capture
- The Validation Flow, our ready‑to‑use workflow in Smart Label Capture for capturing and validating label data with minimal code, now features a completely redesigned user interface. The update improves ergonomics through a simplified API and highly requested customization options, making Smart Label Capture more intuitive and significantly reducing integration and customization effort across a wider range of use cases
- Added LabelCapture Validation Flow Manual input delegate, that allows the developer to receive a callback when the users trigger the manual input.
Core
- Added ability to emit sound or vibration separately in Feedback
Performance Improvements
Core
- Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
- Barcode Generator: Improved DataMatrix encoding efficiency, which depending on input data may result in smaller generated codes
Behavioral Changes
Barcode
- Highlights in BarcodeAr can now be updated when BarcodeArView is in a paused mode
- Updated MatrixScan tote mapping sample to Kotlin
Bug Fixes
Barcode
- Improved the Smart Scan Intention logic for detecting main codes + five-digit add on codes. This improves the rate of complete main + add-on code pairs.
- Fixed an issue where the successful hint in BarcodeFind is not displayed
Id
- Fixed an issue affecting MRZ scanning performance when using the user facing camera in portrait mode on Android
- Fixed a memory issue leading to a persistent black screen during ID Capture startup
- Treated Puerto Rico driver licenses as AAMVA to enforce barcode capture with FullScanner
- Fixed a bug that would cause Canada Northwest Territories driver license scans to be incomplete
Core
- Fixed an issue where the camera would not restart when opened from another app
- Fixed a bug that could in rare cases produce a black screen when starting the camera
- Fixed an issue where some LabelCapture fields were being returned incorrectly on TS frameworks
Deprecations
Smart Label Capture
- Deprecated some LabelCaptureValidationFlowSetting APIs: requiredFieldErrorText, missingFieldsHintText, manualInputButtonText, as those don't make sense anymore with the redesign of Validation Flow in 8.2
8.1.5
Released: June 10, 2026
New Features
Barcode
- Added
shouldShowTrayIndicatorTexttoBarcodeSequenceViewto toggle the per-row tray indicator label (e.g. "Row 1"). - Added an option to configure the duration of BarcodeSequence's idle timeout.
Bug Fixes
Barcode
- Fixed an issue where the "Remove" button in the sequence popover would sometimes not work.
- Fixed a memory leak in item-based scanning.
Smart Label Capture
- Fixed a memory leak in LabelCapture.
Core
- Fixed a rare crash when starting camera capture while under memory pressure.
- Fixed a rare crash when opening the camera.
- Fixed a rare native crash (SIGABRT in BitTube::recvObjects) that could occur on Android during camera preview rendering.