8.6.0
.NET Android
8.6.0
Released: August 31, 2026
New Features
Barcode
- MatrixScan Sequence: introduced several new configurations to adapt the sequencing flow.
initialOrderOnShelfandinitialOrderOnTrayresume scanning from a previous session.idleTimeoutsets the inactivity period in seconds before sequencing pauses automatically, defaulting to 10 seconds; 0 or less disables the automatic pause
- 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 missing BarcodeAr .NET APIs: BarcodeArView.LogoAnchor and BarcodeArView.LogoOffset to position the Scandit logo (iOS + Android); BarcodeArView.LogoStyle for minimal/extended logo style (iOS); BarcodeArView.ZoomControlOrientation for the zoom control's orientation (iOS); BarcodeArStatusIconAnnotation.Anchor plus the new BarcodeArStatusIconAnnotationAnchor enum (Top/Bottom/Left/Right) to anchor a status icon annotation (iOS + Android); and BarcodeArResponsiveAnnotation.CloseUpAnnotation and BarcodeArResponsiveAnnotation.FarAwayAnnotation to read the close-up/far-away annotation variations (iOS + Android).
- Added BarcodePickViewSettings.ZoomButtonPosition, ShowTorchButton, TorchButtonPosition, LogoAnchor, and LogoStyle (plus iOS TopLayoutAnchor and Android UiButtonsOffset); MinimumHighlightWidth and MinimumHighlightHeight on both Rectangular highlight styles; RectangularWithIcons.StatusIconSettings; and BarcodePickStatusIconStyle.WithIcon(ScanditIcon, string).
- Unified the .NET BarcodeCount API with native Android/iOS: added BarcodeCountStatus.ExpiringSoon, BarcodeCountView.ShouldShowStatusIconsOnScan/LogoStyle/LogoAnchor, and a public BarcodeCountNotInListActionSettings() constructor.
- Added the missing BarcodeFind .NET APIs: BarcodeFindSession plus IBarcodeFindListener.OnSessionUpdated, the BarcodeFind.SessionUpdated event, BarcodeFindView.LogoAnchor/LogoStyle, BarcodeFindItemSearchOptions raw-data and brush constructors/properties, and BarcodeFindViewSettings progress-bar color constructors and getters.
- Added missing BarcodeSelection .NET APIs: BarcodeSelectionSession.SelectUnselectedBarcodes(), BarcodeSelectionSettings.TapGestureForSelectionEnabled and SwipeGesturesEnabled, and the BarcodeSelectionSettings.Create(CapturePreset) factory.
- Added missing .NET BarcodeBatch and BarcodePick APIs: BarcodeBatchSettings.ExpectsOnlyUniqueBarcodes, BarcodeBatchSettings.SetArucoDictionary(ArucoDictionary), BarcodeBatchBasicOverlay.DotRadius, the previously-missing TrackedObject class (Location, Identifier, Data), and BarcodePickSession.TrackedObjects/AddedObjects exposing the new TrackedObject.
- Added BarcodeSequence support to .NET, with MAUI consumption.
- Added BarcodeGenerator for .NET to generate barcode/2D-code images from text or byte[] at a configurable width, with foreground/background color customization. Supports Code 39, Code 128, EAN-13, UPC-A, Interleaved 2 of 5, QR Code, Data Matrix, Aztec, and PDF417.
- Added various Barcode AR APIs:
BarcodeArPopoverAnnotation.Anchorand theBarcodeArPopoverAnnotationAnchorenum (Left/Right/Bottom/Top, defaults toBottom).BarcodeArCircleHighlight.Pulsingto enable/disable the pulsing highlight animation.BarcodeArAnnotationTrigger.BarcodeScan, showing AR annotations immediately on scan with no tap-to-toggle.IBarcodeArFilterfunctionality.
- Extended BarcodeBatch on Android so that setting the overlay brush to null clears the highlights of tracked barcodes, matching iOS.
- Extended the support for DotCode features by adding support for:
- Extended Channel Interpretation (ECI). 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.
- Message envelopes as defined in ISO/IEC 15434.
- Structured append. 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 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.
- 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. On our internal datasets, we measured an improvement of more than 20% true positives.
- Improved MicroQR decoding for rotated codes and cluttered backgrounds. On our internal datasets, we measured an improvement of more than 40% true positives.
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 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.
- Fixed a crash (NoClassDefFoundError: kotlinx/serialization/json/JsonKt) when starting ID Capture in apps targeting net10.0-android, caused by the kotlinx-serialization-json dependency not being packed into the app. ID Capture now scans correctly on net10.0-android.
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.
Deprecations
Barcode
- Removed the deprecated Barcode Sequence view settings API; configure the view's settings directly on the view.
- 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.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.
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.