All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Find the API documentation here!

Find the release on GitHub!


Release Date: 2023-04-28


  • [Tire] Added validationRegex to tinConfig, tireSizeConfig & commercialTireIdConfig

  • [Tire] Added new Tire Make scanner supporting 49 manufacturers

  • [Universal ID] Added new templates for Latin script:

    • BE_IDC_O_10002_F

    • PL_IDC_O_05001_F

    • BW_DVL_O_01001_F_v2

    • MZ_DVL_O_R500_F

  • [Meter] Added functionality to define a maximum number of decimal digits for the AUTO_ANALOG_DIGITAL_METER scan mode


  • [Barcode] Fixed a bug where barcode was not able to handle special Unicode characters


  • [Universal ID] Modified templates for Latin script:

    • DE_IDC_O_02004_F

    • BW_DVL_O_01001_F

    • DE_DVL_O_02006-02003-02002-02001_F (errors reading names in German driving licenses)

  • [Tire] Improved accuracy and smaller SDK size for Universal TIN

  • [OCR] ocrConfig now uses models instead of model and can set an array of models instead of one model specifically


  • [Tire] Removed DOT_STRICT scan mode from Tire Identification Number (DOT) technical capability


Release Date: 2023-03-23


  • Added new mode parallelFirstScan for composite scanning

  • [Barcode] Added base64value to barcode object in the barcode result

  • [Tire] Added productionDate, tireAgeInYearsRoundedDown, resultPrettified to TIN result

  • [Tire] Added option to disable production date validation for TIN

  • [ID] Added the following layouts for American ID cards

    • US-CO_DVL_0_R421_F

    • US-NV_DVL_O_R421_F

    • US-NV_IDC_O_R421_F

    • US-OK_DVL_O_R421_F


  • [ID] Fixed a bug where the MRZ scanner would not recognize 'H' on mexican ID’s

  • Fixed a bug where startScanDelay would not be applied correctly


  • [Barcode] The coordinates in the barcode result are now relative to the full image instead of the scanned region

  • [Tire] Improved accuracy for TIN/DOT recognition & detection

  • [ID] Improved performance for ID scanning

  • [ID] Improved accuracy scanning Turkish IDs


  • [Barcode] Removed isBase64 from barcode object in the barcode result

  • [ID] Removed layoutDefinition, drivingLicenseString & idFrontString from ID result


Release Date: 2022-02-06

Breaking Changes

This release introduces fundamental changes & improvements to how the Anyline SDK works. To upgrade from a prior SDK version to version 46.1.0, check out the migration guide.


  • Added Anyline.SDK.PluginConfigs for describing configuration data

    • Added a type of configuration for each scanning capability

  • Added Anyline.SDK.PluginResults.PluginResult for describing result data

    • Added a type of plugin result for each scanning capability

  • Added ScanPlugin EventHandlers for subscribing to events

    • Added ScanPlugin.ErrorReceived to receive errors during runs

    • Added ScanPlugin.VisualFeedbackReceived to receive visual feedback

    • Added ScanPlugin.ScanInfoReceived to receive intrinsic run information

    • Added ScanPlugin.ScanRunSkipped to receive info for unsuccessful runs

    • Added ScanPlugin.ResultReceived to receive scan results

    • Added ViewPluginComposite.AllResultsReceived to receive all scan results when using composite scanning

  • [Tire] Added tire size specification fields to the result

  • [Barcode] Added AAMVA parsing for PDF417 codes on driving licenses

  • [ID] Restructured ID results in a way that every field can contain date- & multi-language information


  • Changed the SDK architecture from inheritance & generics to a composition approach with event-driven input-& output logic

    • Instead of distinctive subclasses like MeterScanViewPlugin, IDScanViewPlugin, etc. the SDK offers a ScanViewPlugin regardless of the type

    • Instead of listening to results through specified generics of IScanResultListener<T>, results are now pushed through the ScanPlugin.ResultReceived event regardless of the type

  • Changed the structure of how scanning use-cases are constructed through JSON

  • Introduced configuration types for every scanning use-case with a corresponding result type

  • Changed JSON framework from System.Text.Json to Newtonsoft.Json

  • Changed the way the Camera provides new frames to the scanner


  • Because of the fundamental nature of changes, there is no deprecation in this version


  • Removed most prior components in the Anyline.SDK.Plugins and Anyline.SDK.ViewPlugins namespace due to the architectural changes

    • Removed the Anyline.SDK.Plugins.Barcode namespace and all its classes

    • Removed the Anyline.SDK.Plugins.Composite namespace and all its classes

    • Removed the Anyline.SDK.Plugins.ID namespace and all its classes

    • Removed the Anyline.SDK.Plugins.LicensePlate namespace and all its classes

    • Removed the Anyline.SDK.Plugins.Meter namespace and all its classes

    • Removed the Anyline.SDK.Plugins.OCR namespace and all its classes

    • Removed the Anyline.SDK.Plugins.Tire namespace and all its classes

    • Removed the Anyline.SDK.Core.Exceptions namespace and all its classes

  • Removed the previous ImageProvider

  • Removed the previous ScanController