Deprecation warning

Please note that this is outdated documentation for an older release of the Scandit Barcode Scanner SDK.

We are deprecating the 5.x API on all platforms (except Linux). Release 5.19 in April 2021 will be our final. Applications running 5.x will continue to work, and we will continue to release critical bug fixes and security patches only, for one year. We encourage you to migrate to 6.x and take advantage of our latest / advanced features and improved performance.

You'll find the updated documentation at: Data Capture SDK Documentation for Android



The parser supports all standards of the Vehicle Identification Number (VIN).

Standards differ a little bit from each other. North America standard (used in the USA) is more strict than ISO 3779 standard and the standard used in the European Union. European Union standard doesn’t have to contain information about model year, plant or check digit.

VIN numbers encoded in barcodes

VIN numbers encoded in barcodes (Code39) sometimes contain more than 17 characters. These codes can also be parsed and are handled the following way: For 18 characters the first character is stripped. For 19 characters the first and the last character are stripped. For 20 characters first two and the last character are stripped.


Parsing the following code (without quotes):


will result in the following JSON output:

        "name": "WMI",
        "parsed": {
            "region": "USA",
            "fullCode": "5UX"
            "numberOfVehicles": ">2000",
        "rawString": "5UX"
        "name": "VDS",
        "parsed": "FG2C5",
        "rawString": "FG2C5"
        "name": "VIS",
        "parsed": {
            "modelYear" : [1983, 2013],
            "plant" : "L",
            "wmiSuffix" : null,
            "serialNumber" : "782277"
        "rawString": "DL782277"
        "name" : "metadata",
        "parsed" : {
            "checksum" : "0",
            "passedChecksum": true,
            "standard": "northAmerica"
        "rawString" : ""


The following fields are exposed for VIN code:

Data Element ID


Parsed Content


World Manufacturer Identifier

Dictionary with these key/value pairs:

  • ‘region’: String. English name of the region, e.g. Hungary, Japan, or USA.

  • ‘fullCode’: String. The full World Manufacturer Identifier (WMI), including the potential suffix from VIS (see wmiSuffix).

  • ‘numberOfVehicles’: String. Null or one of the following strings: ‘>2000’, ‘<2000’, ‘>500’, ‘<500’.


Vehicle Descriptor Section

String with vehicle data (contained information depends on manufacturer)


Vehicle Identification Section

Dictionary with these key/value pairs:

  • modelYear: Array of numbers. Building or model year of a vehicle. It is an array because that field is represented by only one digit in VIN code and is thus only unique within a period of 30 years.

  • plant: String. Manufacturer plant (assembly plant).

  • wmiSuffix: String. Null for >500/2000 vehicles/year for the model. The threshold of 2000 vs 500 cars depends on the standard used.

  • serialNumber: String. Serial number of the car. Six-digit for >2000 vehicles/year for the model. Three digit for <2000 vehicles/year for the model. The threshold of 2000 vs 500 cars depends on the standard used.


The metadata field provides more information about the parsing of the input’s fields. The dictionary encoded in the JSON string of the ‘parsed’ field contains the following entries:


Value Type




check digit value



true if checksum validation was successful



One of the following strings:

  • ‘northAmerica’

  • ‘ISO’

  • ‘EU’

Parser Options

The parser can be configured by providing a JSON string containing key / value pairs. Currently there is only one option available:


Value Type




Enabling this option allows the parser to fail for invalid checksums. Checksum verification results for the code are indicated using the ‘metadata’ field (with disabled strictMode).