8.6.0
Android
8.6.0-beta.1
Released: August 14, 2026
New Features
Barcode
- The MatrixScan Sequence simple sample is now publicly available, showing the minimum setup needed to run MatrixScan Sequence.
- Added
initialOrderOnShelfandinitialOrderOnTrayproperties toBarcodeSequenceSettings, allowing scanning to resume from a previous session. - BarcodeSequenceSettings.idleTimeout sets the inactivity period in seconds before sequencing pauses automatically. Defaults to 10 seconds; a value of 0 or less disables the automatic pause.
- [BETA] MatrixScan Count can now group barcodes by the physical label they share. Set
barcodeCountSettings.AutomaticClusteringMethodtoAutomaticClusteringMethod.Labelto enable it: the barcodes within each label boundary get associated into a single cluster, so a product carrying several barcodes counts as one item. - When highlights inside a MatrixScan Count cluster would overlap, the cluster now collapses into a single badge showing how many barcodes it contains, instead of drawing every highlight on top of the others. This also applies in Scan Preview mode.
- Added an API to customize the text of the hint shown when a new scan group starts (BarcodeCountView.setTextForNewGroupHint).
- BarcodeArResponsiveAnnotation now takes a map of distance thresholds to annotations, so a barcode can show a different annotation at any number of distances instead of only close-up and far-away. The previous two-state API is deprecated, see Deprecations below.
- Added BarcodeSequenceDeserializer for creating and updating MatrixScan Sequence modes and settings from JSON.
- Extended BarcodeBatch on Android so that setting the overlay brush to null clears the highlights of tracked barcodes, matching iOS.
- Added decoding of the DotCode Code Set B first-position "Macro" codewords (97-100), which expand to the corresponding ISO/IEC 15434 format envelopes. Previously these symbols decoded to incorrect data.
- Added Extended Channel Interpretation (ECI) support for DotCode. Symbols that switch character sets (for example to Cyrillic or another code page) now report the correct per-segment encoding. As part of this, the default character set for DotCode is now reported as ISO 8859-1 instead of ASCII.
- Added structured append support for DotCode. The "m of n" sequencing metadata is now stripped from the barcode data and exposed via
sc_barcode_get_segment_indexandsc_barcode_get_segment_count. DotCode has no file ID, so segments are not automatically grouped by the buffered barcode session.
Id
- ICAO Machine Readable Visas now return passport number, visa number as well as number of stays and durations from the MRZ of supported documents.
- Added IdCaptureSettings.notifyOnSideCapture, which fires the capture callback after each side of a multi-sided document, and CapturedId.isCapturingComplete, which distinguishes a partial (single-side) result from a complete one.
- Added an ID Capture image upload sample that demonstrates scanning ID documents from still images or PDF files on the device instead of using the live camera.
- Added MobileDocumentDataElement::SignatureUsualMark and MobileDocumentResult.signature to allow capture of signature images from ISO mDL documents.
- Extended the VizDocumentScanner sanitizer restriction to run all sanitizers for front-and-back captures and only reject on front-only captures, so front-side VIZ field corrections are no longer lost in double-sided captures.
Smart Label Capture
- Added a new sample to quickly test and integrate Smart Label Capture to read and validate price shelf labels against a database - showing live AR overlays based on the match and mismatch of the content.
- Added support for label definitions that use the "semantics" feature on fields of both type "barcode" and "text" simultaneously; previously only one of the two types could use it at once.
Core
- Added support in the GS1 parser for the telecom Application Identifiers 8040 (IMEI), 8041 (IMEI2), 8042 (eSIM/EID), and 8043 (pSIM), so GS1 codes carrying them parse instead of being rejected as unrecognized.
- Added support for parsing the 2D-DOC (French 2D-Doc / ANTS) data format.
- Added more detailed error reporting when required resources are missing.
- Added LicenseInfo.allowedModes, exposing the set of capture modes a license key permits via the new CaptureMode enum.
- Introduced a new dedicated Android design library and moved UI elements into it.
- Added support for reading camera frames directly into a SharedArrayBuffer in supported environments (currently Chrome or Firefox, when pthread is enabled), avoiding an extra copy.
Performance Improvements
Barcode
- Reduced the false positive rate for EAN13, UPCA, EAN8, and UPC-E.
- Improved ITF decoding robustness, reducing the number of unscanned codes.
- Improved MicroQR decoding for rotated codes and cluttered backgrounds.
Id
- Improved performance for the Irish Garda Age Card.
- Improved PDF417 scanning on Quebec, Alaska, and Oklahoma driver’s licenses.
Smart Label Capture
- Improved LabelCaptureValidationFlowOverlay lifecycle handling in unexpected scenarios.
Behavioral Changes
Barcode
- Changed the default highlight brush in SparkScan and Barcode Capture.
- Updated recommended camera settings for MatrixScan Batch, Find, Pick, Sequence, and AR, now using UHD4K resolution with a 16:9 aspect ratio.
- MatrixScan Count uses a new default colour for scanned (counted) barcodes, chosen to meet accessibility contrast requirements. It applies to single scanned barcodes, to the barcodes inside a cluster, and to the cluster highlight itself. To keep your previous appearance, set the colour through the existing icon customization.
- MatrixScan Count now highlights each barcode inside a cluster individually and follows its live position.
- Enabled detection and decoding of mirrored MaxiCodes by default. Previously this required enabling the symbology extension
mirrored, which has been removed. - Limited the GS1 format flag for DotCode to genuine GS1 openings (a leading digit pair without FNC1) per AIM DotCode v3.0, instead of defaulting all symbols to GS1.
- Disabled enhanced low-resolution scanning of QR codes (introduced in 8.5.0) for MatrixScan modes. Customers who need this feature should contact Scandit support.
Bug Fixes
Barcode
- Fixed a crash when clearing highlights or changing the scanning state on a MatrixScan Count mode that had been removed from its data capture context.
- Fixed a bug with the highlight colors of BarcodeCount clusters.
- Fixed the MatrixScan Count not-in-list accept/reject popover not reflecting a custom accepted/rejected ScanditIcon when configured.
- Fixed the "Remove" button in the sequence popover sometimes not working.
- Fixed MatrixScan AR to adapt to the device UI scale.
- Fixed rare cases where DotCode Code Set C symbols using the date/lot macro decoded to incorrect data due to a dropped leading zero in a digit pair.
- Fixed a regression where short ITF codes with low wide/narrow ratio were not decoded.
Id
- Improved the DLID parser, fixing previously unparsable codes found in analytics.
- Hardened dependency resolution for Android native samples.
- 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 bug where the receipt scanning overlay and validation flow overlay could not be used on the same mode instance.
- Fixed prebuilt date fields to recognize Spanish month abbreviations. The abbreviations
ene,abr,ago, anddicare newly supported; the remaining Spanish abbreviations already resolved because they match their English form. The expiry-date anchor additionally recognizes common Spanish expiry terms such ascaducidad,vencimiento,consumir antes, andconsumo preferente.
Core
- Fixed a SequenceFrameSource occasionally delivering the same frame to its listeners twice.
- Fixed Nokia G11 and Nokia 8.3 5G devices not correctly getting the Camera2 path when API2-only features were requested.
- Fixed the Galaxy Note10 camera profile selection so the international Note10 family (SM-N970x/SM-N971x) gets its intended fixed-focus and Camera2 behaviors.
- Fixed the Galaxy S9+ (SM-G965x) camera profile selection so Camera2-based capture is enabled on those devices as intended.
- Fixed a race condition in SimplePropertyBehaviorSubject where mutating the subscriber list during a callback could cause crashes or missed notifications.
- Fixed an IllegalStateException in analytics HTTPS requests when the app is instrumented by APM tools such as Dynatrace.
- Fixed EventsResponse::getRetryTimeoutInSeconds to return a fallback instead of aborting on out-of-range header values.
- Fixed a crash when initializing a USB (external) camera.
Deprecations
Barcode
- Removed the deprecated Barcode Sequence view settings API; configure the view's settings directly on the view.
- Deprecated the alternative (accessible) color scheme for Barcode Count; it will be removed in a future release. The default color scheme now provides an accessible appearance, so you can remove the explicit setting.
- Deprecated the two-state BarcodeArResponsiveAnnotation API in favor of a new configurable annotationsByThreshold map that supports more than two distance states; the previous two-state API remains available.
8.5.2
Released: July 31, 2026
Performance Improvements
Id
- Improved performance of Irish Garda Age Card
Bug Fixes
Barcode
- Fixed BarcodeCount clusters where the not-in-list cluster color incorrectly followed the matched/deviated customization.
Smart Label Capture
- Fixed a memory leak preventing the batch and label advanced overlay from being collected until the mode they're bound to is collectable.
8.5.1
Released: July 20, 2026
New Features
Barcode
- Added two new properties to
BarcodeSequenceSettings:initialOrderOnShelfandinitialOrderOnTray, allowing scanning to resume from a previous session.
Bug Fixes
Barcode
- Fixed BarcodeCapture and SparkScan not applying a selectionMode change from On to Auto, which left the aimer visible.
Id
- Fixed an incorrect license key check that prevented scanning of documents with a PDF417 barcode or MRZ on one side, and of mDLs read via OCR.
Deprecations
Barcode
- Deprecated
BarcodeSequenceViewSettingsand the settings-taking initializers in favor of initializers without settings;BarcodeSequenceViewsettings (sound, haptics, initial guidance, tray indicator appearance, and highlight appearance) can now be changed at runtime through properties on the view.
8.5.0
Released: July 9, 2026
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 (for example, "Row 1") through
shouldShowTrayIndicatorTexton theBarcodeSequenceView.
- Configure the duration of the idle timeout via
- 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, for example, scanning against a known list of valid codes or when codes contain structured data. - Updated
SymbologyDescription.forIdentifierto returnnullfor unrecognized identifiers (for example,"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()(for example, 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.6
Released: July 29, 2026
Bug Fixes
Smart Label Capture
- Fixed a memory leak preventing the batch and label advanced overlay from being collected until the mode they're bound to is collectable.
8.1.5
Released: June 10, 2026
New Features
Barcode
- Added
shouldShowTrayIndicatorTexttoBarcodeSequenceViewto toggle the per-row tray indicator label (for example, "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.
8.1.4
Released: April 21, 2026
Bug Fixes
Barcode
- 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 a crash that occurred when the
DataCaptureContextsingleton was initialized more than once.
Core
- Fixed a rare SIGABRT crash on camera initialization on devices whose HAL returns null from
Camera.Parameters.getSupportedFocusModes()(for example, industrial barcode scanners like the Newland NLS-MT93). - Fixed crashes caused by RuntimeExceptions thrown by OEM camera code that are not part of the standard Android Camera API contract; these exceptions are now caught and logged instead of crashing.
8.1.3
Released: March 25, 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
Core
- Fixed a potential app hang when the app transitions to the background for licenses without analytics enabled.
8.1.2
Released: March 9, 2026
Bug Fixes
Smart Label Capture
- Fixed a rare race condition
8.1.1
Released: February 5, 2026
Performance Improvements
Core
- Reduced intermittent memory spikes while configuring the barcode scanner across all capture modes
Bug Fixes
Id
- Fixed a memory issue leading to a persistent black screen during ID Capture startup
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
8.1.0
Released: December 17, 2025
New Features
Barcode
- Smart Scan Selection is now available in Barcode Capture. Scanning a single barcode is often difficult in environments where multiple barcodes are placed closely together, like on a densely packed warehouse shelf or on a package with various labels. This can lead to scanning the wrong item, causing errors and slowing down operations. Smart Scan Selection solves this problem by automatically detecting when a user is trying to scan in a "dense barcode" environment. The interface then intelligently adapts, providing an aimer to help the user precisely select the desired barcode without needing to manually change any settings. This creates a more intuitive scanning experience that requires no manual configuration.
- Extended Aztec codes reader to support scanning mirrored codes.
- Added support for square DataMatrix codes with one-sided damage or occlusion. This feature is only enabled in Barcode Capture and SparkScan.
- Added, in
BarcodeAr, aBarcodeArFilterinterface to selectively control which barcodes are displayed in the AR overlay based on custom filtering logic. You can set a filter viaBarcodeAr.SetBarcodeFilter. - Added
ScanditIconType.Slashwhich can be used inBarcodeArStatusIconAnnotationAnchor. - BarcodeCountView now supports cameras with different aspect ratios.
Id
- Added NationalityISO property that maps results from Nationality field to country ISO code
- Added RejectionDiagnosticJSON property to CapturedId to report debug info during Timeout rejections
- Added rejectionTimeoutSeconds to IdCaptureSettings allowing customers to use timeout other than default (6 s). Minimum timeout is 1 s.
- Added support for new California DL, new South Carolina DL, Arizona Medical Marijuana Card, Kuwait Civil card, and new Texas DL
- Our SDK can now scan the following documents both in single-side and double-side mode:
- All Mexican DLs
- Mexican Voter Cards
Core
- Added support for QuadHD resolution to provide improved performance and extended range for MatrixScan modes on slower devices
- Added Electronic Product Code (EPC) parser
Performance Improvements
Barcode
- Improved MicroQR detector tolerance to quiet zone violations
- Improved suppression of incorrect Codabar recognitions when using the “strict" symbology extension
Smart Label Capture
- Incremental improvements in accuracy across all use-cases for the OCR model powering Smart Label Capture.
Behavioral Changes
Barcode
- Enabling the “ocr_fallback" symbology extension with missing OCR model resources now triggers the context error 28 (“Missing Resource”)
Smart Label Capture
- Validation Flow: Manually input values for barcodes will go through a stricter validation. Some values may no longer be accepted if they do not match the symbology specs for the symbology’s definition
Bug Fixes
Barcode
- Fixed a rare out-of-bound memory access crash when scanning low-resolution or blurry
EAN13/UPCAcodes at a specific distance - Fixed a bug in the default color of BarcodeCapture highlights
- Fixed an issue where popover annotations with HIGHLIGHT_TAP_AND_BARCODE_SCAN trigger could not be opened again
- Fixed an issue in BarcodeSequence where camera would not be ON in portrait
- Fixed an issue where SparkScan mini preview would sometimes stay in regular when entering target mode
- Fixed the app becoming unresponsive after being in the background for extended periods
- Fixed an issue where the successful notification in BarcodeFind was not displayed
Id
- Fixed a bug concerning return complete instead of cropped images on the back of EU driving licenses