8.6.0
Capacitor
8.6.0-beta.1
Released: August 14, 2026
New Features
Barcode
- 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 the zoomControlOrientation property to BarcodeArView.
- Added the BarcodeArCircleHighlight.isPulsing property to toggle the highlight's pulsing animation.
- 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 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 the CameraSwitchControl API. The control can be added to a DataCaptureView to let end users switch between a primary and a secondary camera (for example, back and front), with customizable button images and accessibility labels.
- 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 iOS support for multiple DataCaptureView instances to render the camera preview simultaneously, so navigating between screens that each show a DataCaptureView no longer causes black or frozen previews, including during interactive edge-swipe transitions. DataCaptureView also now renders a preview when the frame source is an ImageFrameSource or SequenceFrameSource.
- Added LicenseInfo.allowedModes, exposing the set of capture modes a license key permits via the new CaptureMode enum.
- 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 PDF417 scanning on Quebec, Alaska, and Oklahoma driver’s licenses.
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.
- 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 BarcodeArPopoverAnnotation.isEntirePopoverTappable not applying changes, and popover tap callbacks being lost after annotation updates on iOS.
- Fixed a visual artifact that could appear around the scan preview indicators in MatrixScan Count when using Scan Preview.
- 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
- Fixed a crash that could occur when navigating away from a screen while a hint was displayed.
- 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.
- Fixed an issue where the VLM scanning screen remained permanently displayed if IdCaptureSettings were applied mid-scan.
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 the camera preview appearing darker in single-scan modes after using a mode that applies its own exposure adjustment, such as SparkScan or MatrixScan Count.
- 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 an issue in MatrixScanARSimpleSample where status icons could occasionally appear blank and unresponsive.
Deprecations
Barcode
- 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.
- Deprecated the SparkScan target-mode APIs and
ScanIntention.SmartSelectionin favor of the new SelectionMode API: set selectionMode (off/on/auto) on BarcodeCaptureSettings and SparkScanSettings to control whether an aimed-at barcode is scanned automatically or requires explicit selection.
8.5.3
Released: August 18, 2026
Behavioral Changes
Barcode
- 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.
Id
- Fixed a crash that could occur when navigating away from a screen while a hint was displayed.
Core
- Fixed an IllegalStateException in analytics HTTPS requests when the app is instrumented by APM tools such as Dynatrace.
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
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.
8.5.0
Released: July 9, 2026
New Features
Barcode
- 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.
Id
- Added Irish Garda Age Card as
RegionSpecificSubtype.IrelandAgeCard. - 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.
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 BarcodeAR not displaying an overlay for every scanned barcode when duplicate barcode values are present.
- 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.
- Fixed a bug where setting
valueRegexesoranchorRegexesto null in frameworks was incorrectly treated the same as setting them to an empty list; they now correctly fall back to the definition type's defaults.
Core
- Fixed SPM resolution failure in Capacitor 8 / Xcode 26 projects (CapApp-SPM) caused by an invalid Package.swift header and an outdated capacitor-swift-pm version pin.
- 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.
8.4.1
Released: June 23, 2026
Bug Fixes
Barcode
- Fixed BarcodeAR not displaying an overlay for every scanned barcode when duplicate barcode values are present.
- 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.
- Resolved a duplicate Objective-C class registration that could trigger spurious casting failures or crashes when an app links both ScanditCaptureCore and ScanditIdCapture.
8.4.0
Released: May 18, 2026
New Features
Barcode
- Added
dotRadiusproperty toBarcodeBatchBasicOverlayto allow customizing the size of dots when using the Dot overlay style. - Added custom view support for barcode pick highlighting in JavaScript frameworks.
- Added support for PDF417 in the Barcode Generator.
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.
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 a stability issue that could cause a crash when tracked barcodes were removed or expired during a scanning session.
- Fixed an issue where
BarcodeCountViewwould display incorrectly after rotating the device when a sibling view was present in the same parent view. - Fixed an unnecessary second scan callback that occurs after freezing barcode recognition.
- 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 where the label capture validation flow overlay sometimes did not reflect label capture settings when reused.
- Fixed a bug that caused error messages in
DataCaptureViewto be rendered partially out-of-view. - 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 potential deadlock on iOS when reading the camera torch state from the main thread while the camera was starting up.
- Fixed a rare crash when starting camera capture while under memory pressure.
8.3.1
Released: April 14, 2026
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
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
Smart Label Capture
- Fixed a rare race condition
Core
- Added Camera-related APIs for macro mode, torch, accessibility hints, as well as ImageBuffer and Timestamp for FrameData.
- Added shouldShowZoomNotification and setProperty to DataCaptureView
- Added new SparkScan APIs related to feedback, scanning mode change, and periscope mode.
- Added BarcodeFilterSettings public constructor and exposed excludedSymbolCounts property for JavaScript frameworks
- Added BarcodeCount-related APIs for BarcodeCountNotInListActionSettings, BarcodeCountToolbarSettings, BarcodeCountMappingFlowSettings, status mode and accessibility properties on BarcodeCountView, BarcodeCountStatusProvider with status items and callbacks, cluster support, capture list completion listener, and session update listener
- Added moduleCountX and moduleCountY to Barcode API
Performance Improvements
Barcode
- Improved EAN8 false positive filtering in strict mode
- Improved speed of MatrixScan Count scanning phase for mid- and high-end devices
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.
- Fixed a stability issue that could cause a crash when tracked barcodes were removed or expired during a scanning session.
Id
- Fixed BarcodeDictionary anonymization setting for iOS and Web
- 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 - Fixed misplaced MRZ anonymization on FullFrame images.
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.
- Fixed a potential deadlock on iOS when reading the camera torch state from the main thread while the camera was starting up.
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
- Added BarcodeArResponsiveAnnotation API
- Added BarcodeAr API to Capacitor
- Added some missing BarcodePick APIs to React-Native, Capacitor and Cordova