Empowered with Segment Decoding™ and MatrixSight® technologies, our solution offers streamlined VIN barcode scanning for quick and accurate vehicle identification.

appstore link appstore link
appstore link

VIN Scanning Mode

In the automotive industry, VINs serve as unique identifiers for vehicles, carrying crucial information about their make, model, year of manufacturing and other specific details. Traditionally, barcodes like Code 39 or Code 128 have been used to encode VINs on vehicle components and related paperwork. These barcodes are effective for basic identification purposes, but they have limitations when it comes to data capacity and quick readability.

Our barcode scanning SDK solution offer a specially tailored VIN reading mode that supports both the traditional Code 39 and Code 128 barcode formats, as well as the newer QR Code and Data Matrix VIN variants.

VIN Encoding With Code 39 Barcodes

Code 39 has played a historical role and can still be found on many older cars that are currently in use. Recognized for its simplicity and widespread acceptance, Code 39 efficiently encodes alphanumeric characters, serving as a reliable method for tracking and managing vehicle information.

Code 39 has an alphanumeric compatibility, capable of encoding both letters (A-Z), numbers (0-9), and a few special characters, which makes it the perfect candidate for representing a VIN which is alphanumeric in its nature.


When used in VINs, the Code 39 symbology adheres to some specific rules inherited from the nature of the VIN itself. These are:

  • Fixed length: This means that instead of the variable length of the data, when used to encode a VIN barcode the length is fixed and it's typically 17 characters long.
  • Check character: Another specific feature of VIN codes is the check character, which is optional for a normal Code 39 barcode, but required when Code 39 is utilized as a VIN code.

These constraints make VIN Code 39's much safer for a barcode scanner to “know” it's dealing with a VIN-empowered barcode, but they also force us to use the scanner in a specific VIN mode. Our demo app Barcode Scanner by barKoder, available for both iOS and Android via Google Play Store and Apple App store, features this specifically tailored VIN Scanning mode that showcases the ability to decode these barcodes with ease. We're yet to encounter a solution which comes even close in terms of performance and reliability.

However, the barKoder Barcode Scanner SDK doesn't stop there. Empowered with the Segment Decoding® algorithm it can scan barcodes with significant deformation alongside the Z-axis, which makes it ideal for scanning VIN numbers that are slightly deformed,printed on paper for listing inventory, or taped to a car window.

Empowered with the Segment Decoding® technology, the barKoder Barcode Scanner SDK handles these barcodes with extreme efficiency.

To fully experience the barKoder VIN scanning mode, start with downloading our demo apps from the public app stores for either iOS or Android powered smart devices.

Afterwards, simply follow the next steps:


Use the VIN mode for optimal VIN barcode decoding experience.


When the scanner starts make sure to go to the settings via the respective button in the top right corner and ensure that scanning misshaped codes is enabled (disabled by default).


The specific setting is termed Enable Misshaped Code Capture (circled with green on the image).

  • Also worth mentioning is to have Decoding Speed setting at SLOW and Barkoder Resolution at Full HD. These settings are not a requirement, and the decoder will work even on Normal/HD, however some very damaged or otherwise altered barcodes will be scanned much faster if the settings are set as specified.
  • Another thing worth mentioning is that due to the nature of VIN barcodes (they are 17 characters long), the best way to decode the misshaped VIN samples is via Landscape mode.

Code 128 Barcodes & VIN Implementation

Code 128, a high-density, alphanumeric 1D barcode symbology, stands out in the automotive industry for encoding VINs. Known for its versatility, Code 128 efficiently represents alphanumeric characters, making it a good choice for encoding the diverse information embedded in VINs.

Code 128 is often considered superior when it comes to encoding VINs to Code 39, due to a few key features:

  • Higher Data Density:

    Code 128 has a higher data density compared to Code 39, which means that Code 128 can encode more information in a smaller space. VINs, which often contain a specific set of alphanumeric characters, benefit from the increased efficiency of Code 128 in terms of data representation.

  • Higher Data Security:

    Code 128 includes a built-in error-checking mechanism which Code 39 lacks, further enhancing data security. It uses a checksum formula to verify the accuracy of the encoded data during the scanning process. This greatly helps in ensuring that the scanned VIN is correct and reduces the likelihood of errors in data transmission.

  • Wide character set

    A Code 128 barcode can encode a full 128 ASCII character set, while Code 39 barcodes can enCode 39 characters in total.

Similarly to Code 39, empowered with the Segment Decoding® technology our barcode scanner SDK can easily recognize highly distorted and deformed Code 128 VIN codes:

Again, as in the case with Code 39, to experience this feature you'll need to Enable Misshaped Code Capture within the VIN Mode.


QR Code Utilization In VIN-enabled Scenarios

QR codes, or Quick Response codes, have gained widespread popularity due to their quick readability and ability to store a substantial amount of data in a two-dimensional format. While they find extensive uses across a variety of industries, their application in encoding Vehicle Identification Numbers (VINs) within the automotive sector is not as prevalent as the respective 1D barcode types (Code 39 and Code 128).

However, there are specific applications and scenarios where QR Codes have been employed for VIN-related purposes.

The primary advantage of QR Codes lies in their efficiency in storing information. They can encode alphanumeric characters, binary data and even special characters, providing a versatile means of representing diverse types of information. This flexibility makes QR Codes valuable in numerous applications, ranging from marketing and logistics to healthcare and finance.

QR codes are fairly easy to scan even with open-source solutions. However, if there's any damage present to their finder patterns most of the barcode scanners will fail scanning such samples. Not barKoder. Using the cutting-edge MatrixSight® decoding algorithm, we can recognize significantly damaged QR barcodes. MatrixSight® enables the barKoder API with a capability of capturing the data even in VIN QR Codes that have damage to both the finder pattern and the alignment pattern.

We won't go into detail of how it works, but we will show a few damaged QR VIN codes that the barKoder SDK can reliably scan.

Data Matrix & VINs - Match Made In Heaven


As technology advances, 2D barcodes like Data Matrix will continue to gain prominence. Data Matrix can store a significant amount of data in a compact space, providing a huge advantage over 1D barcodes. While not as commonly used for VINs, it finds applications in more data-intensive scenarios, offering increased information capacity.

As in the case of the capacity to capture QR Codes, MatrixSight® empowers the Barcode Scanner SDK to smoothly capture the data even within severely damaged Data Matrix samples that are not only missing their critical finder and/or timing patterns, but also ones with random damage throughout the data section of the barcode:

VIN - Multiscan

Finally, with our demo app you can scan multiple VIN barcodes on a single page, enable continuous scanning in the settings, and try it out on the image below: