Which symbologies are supported

The Scandit SDK supports the following 1D and 2D barcode symbologies. Configuration options for each symbology can be found on the C API symbologies page. Details about the supported GS1 Composite Codes can be found on the Scan composite codes page.

Retail 1D Symbologies

European Article Number (EAN)

ean13
  • Also known as Japanese Article Number (JAN).
  • Encodes a Global Trade Identification Number (GTIN).
  • Contains 8 (EAN-8) or 13 (EAN-13) numerical digits.
  • Last digit serves as a mod10 checksum.
  • Additional data can be stored in an EAN-2 or EAN-5 add-on code.
  • It has been standardised under ISO/IEC 15420.

Universal Product Code (UPC)

upca
  • Encodes a Global Trade Identification Number (GTIN).
  • Contains 6 (UPC-E) or 12 (UPC-A) numerical digits.
  • Last digit serves as a mod10 checksum.
  • Additional data can be stored in an EAN-2 or EAN-5 add-on code.
  • It has been standardised under ISO/IEC 15420.

EAN-2 / EAN-5 Add-On

ean13 with add-on code
  • Encode additional product data like issue number, date or price.
  • Can only be used in combination with an EAN-8, EAN-13, UPC-A or UPC-E code.
  • EAN-2 encodes two digits, EAN-5 encodes five digits.
  • Additional information can be found on the Scan add-on / extension codes page.

GS1 DataBar

GS1 DataBar Expanded Stacked
  • Used to encode a Global Trade Identification Numbers (GTIN) along with variable additional information defined by application identifiers (AI). Examples are price, weight or expiry date.
  • Valid application identifiers (AI) are defined in the GS1 specification.
  • Supports variable length data content.
  • Barcode data is verified by an implicit checksum.
  • Does not require quiet zones around the barcode.
  • It has been standardised under ISO/IEC 24724.
  • DataBar-14 is supported in the omnidirectional, truncated and stacked flavour.
  • DataBar Expanded is supported in the normal and stacked flavour.
  • DataBar Limited is supported since SDK version 4.11.

Industrial 1D Symbologies

Code 128

code128
  • Used in a wide range of applications.
  • The barcode data can be encode numerical data only, two different subsets of the ASCII table or Latin-1 (ISO-8859-1) data. Combinations of the four different modes can be used in a single code.
  • Supports variable length data content.
  • A mandatory checksum is verified.
  • It has been standardised under ISO/IEC 15417.
  • Includes support for EAN-128 and GS1-128.

Code 32

code32
  • It is used for labelling pharmaceutical products in Italy.
  • Also known as Italian Pharmacode, IMH, Codice 32 Pharmacode, Codice Farmaceutico Italiano and Radix 32.
  • Contains nine numerical digits.
  • Last digit serves as a mandatory checksum.
  • Narrow to wide bar ratios of 1:2.5 is recommended.
  • Specification can be found in Allegato A Caratteristiche tecniche del bollino farmaceutico from 18-7-2014 GAZZETTA UFFICIALE DELLA REPUBBLICA ITALIANA Serie generale - n. 165
  • Support has been added in the SDK version 5.9.

Code 39

code39
  • Mostly used in logistics to encode application specific identifiers.
  • The standard version can encode numbers 0-9, capital letters A-Z, symbols -.$/+% and space.
  • Supports variable length data content.
  • Narrow to wide bar ratios from 1:2 up to 1:3 are supported. 1:2.5 is recommended.
  • By default no checksum is verified, but an optional mod43 checksum can be enforced.
  • All ASCII characters including control characters encoding support can be enabled on demand.
  • It has been standardised under ISO/IEC 16388.

Code 93

code93
  • Mostly used in logistics to encode application specific identifiers.
  • Data in standard encoding (numbers 0-9, capital letters A-Z, symbols -.$/+% and space) and Full ASCII mode (including control characters) are supported.
  • Supports variable length data content.
  • Two mod47 checksums are verified.

ITF (Interleaved 2 of 5)

itf
  • It is used primarily in the distribution and warehouse industry.
  • Encodes an even number of numerical characters.
  • Supports variable length data content.
  • Narrow to wide bar ratios from 1:2 up to 1:3 are supported. 1:2.5 is recommended.
  • By default no checksum is verified.
  • It has been standardised under ISO/IEC 16390.
  • An optional mod10 checksum can be enforced.
  • Alternative names for this symbology include Leitcode, or Identcode. Both of these have a mandatory mod10 checksum.

Legacy 1D Symbologies

Code 11

code11
  • Primarily used for labelling telecommunication equipment. Also known as USD-8.
  • The barcode data can be encode numerical data, the dash and dot character.
  • Supports variable length data content.
  • For up to 10 data digits a single check digit is used, otherwise two check digits are used.


Code 25

code25
  • Also known as Standard 2 of 5, Industrial 2 of 5 or Discrete 2 of 5.
  • Legacy numerical barcode format with a low data density.
  • Supports variable length data content.
  • By default no checksum is verified.
  • An optional mod10 checksum can be enforced.
  • Support has been added in the SDK version 4.13.

IATA 2 of 5

iata2of5
  • Also known as Computer Identics 2 of 5.
  • Used by International Air Transport Association (IATA) for managing air cargo.
  • Supports variable length data content.
  • By default no checksum is verified.
  • An optional mod1010 checksum can be enforced.
  • Support has been added in the SDK version 5.15.

Codabar

codabar
  • This symbology is used by U.S. blood banks, photo labs, libraries, and on FedEx airbills.
  • Encodes numbers and the characters –$:/.+
  • First and last symbols (the guard patterns) are one of A, B, C, or D. They are returned as part of the data string.
  • Supports variable length data content.
  • Some standards that use Codabar will define a check digit, but there is no agreed-upon standard checksum algorithm.
  • The width ratio between narrow and wide can be chosen between 1:2.25 and 1:3.
  • Different checksum algorithms are in use, though they are not standardized. Supported optional checksums are a mod11 and mod16 checksum.

MSI Plessey

msi plessey
  • MSI is used primarily for inventory control, marking storage containers and shelves in warehouse environments.
  • Encodes any number of numerical characters.
  • By default a mod10 checksum is verified. Alternative supported checksum options are mod11, mod1010 and mod1110.

2D Symbologies

QR Code

qr code
  • Supports variable length data content.
  • Data encoding modes support numeric, alphanumeric, binary data and kanji characters.
  • Different sizes (called versions) and error correction levels can be defined.
  • The Scandit SDK supports Model 1 codes. Mirrored, or color-inverted codes are not supported.
    • It has been standardised under AIM ISS 97-001.
  • The Scandit SDK supports Model 2 codes including color inversion, mirroring and GS1 data content.
    • It has been standardised under ISO/IEC 18004.

Micro QR Code

micro qr code
  • Miniature version of the standard QR code that supports variable length data content up to 35 characters
  • Different error correction levels can be defined with a data recovery rate of up to 25%
  • Optimized to transfer small amounts of data such as a phone number or a website URL
  • The Scandit SDK supports Rectangular Micro QR Code extension, standardized in ISO/IEC 23941
  • The Scandit SDK supports color inversion and mirroring

Data Matrix

data matrix
  • Supports variable length data content.
  • Encodings and sizes defined in the Data Matrix ECC 200 standard are supported.
  • Different error correction levels can be defined.
  • It has been standardised under ISO/IEC 16022.
    direct part marking
  • The decoder supports the Data Matrix Rectangular Extension (DMRE) as defined in the AIM-D Symbology Specification Revision 1.01.
  • Data Matrix code are often used for direct part marking (DPM). For scanning these types of codes, it is recommended to enable the direct_part_marking extension_mode.
  • Includes support for GS1 encoded data (GS1 Data Matrix).

PDF417

pdf417
  • Used in a wide range of applications such as transport tickets and document processing.
  • Supports variable length data content.
  • The number of rows and columns are configurable.
  • Different error correction levels can be defined.
  • It has been standardised under ISO/IEC 15438.
  • Truncated PDF417 (Compact PDF417) codes can be used to save space.

MicroPDF417

micropdf417
  • More space efficient version of PDF417 without start and end patterns.
  • Used in GS1 Composite Codes type A (CC-A) and B (CC-B).
  • Supports variable length data content using one to four columns and up to 44 rows.
  • All size versions have a fixed error correction level.
  • It has been standardised under ISO/IEC 24728.

Aztec Code

aztec code
  • Used for tickets in the transport industries, e.g. railway companies.
  • Data can be encoded in ASCII or extended ASCII.
  • Supports variable length data content.
  • Different error correction levels can be defined.
  • It has been standardised under ISO/IEC 24778.

MaxiCode

maxicode
  • Fixed size 2d symbology originally created by UPS in 1992.
  • Used for tracking and managing shipments of packages.
  • It has been standardised under ISO/IEC 16023.
  • Supports encoding of a Structured Carrier Message or data in extended ASCII.
  • Uses Reed-Solomon error correction.

GS1 DotCode

dotcode
  • Public Domain optical data carrier designed to be printed reliably at very high speed.
  • Flexible code shape: rectangular codes of virtually any size and width/height proportion can be used.
  • Strong error correction by using message encoding inspired by Code 128 and strengthened by Reed-Solomon.
  • Allows to apply real time data with GS1 application identifiers, such as expiration date, lot number and serial number to products at production line speeds.
  • It has been standardised in the AIM specification AIMD013 Revision 3.0.

ArUco Codes

aruco
  • Used mainly for camera pose estimation in augmented reality and robotics, developed at the University of Cordoba
  • Consists of an n x n bit matrix (n can be any integer value, most commonly used are values ranging from 4 to 7) and a one element wide black border
  • Does not store any data directly, the bit matrix uniquely identifies the marker in a dictionary (collection of markers of the same bit matrix size)
  • Requires a dictionary, it can be computed or an available preset can be used (we provide a subset of the OpenCV presets)

Postal Code Symbologies

RM4SCC (Royal Mail 4 State Customer Code)

RM4SCC
  • Postal code symbology used by Royal Mail and Singapore Post for encoding the destination address.
  • It enables UK postcodes as well as Delivery Point Suffixes (DPSs) to be easily read by a machine at high speed.
  • Uses a checksum digit for verifying data.

KIX (Klant Index)

KIX
  • Uses the same symbol alphabet as RM4SCC.
  • Does not use a checksum for data verification, nor does it have a start/end pattern.
  • KIX codes can be read from left-to-right or right-to-left. Depending on the reading direction, the data is completely different. To determine which of the two orientations is correct, the Scandit BarcodeScanner SDK matches the data against a set of encoding rules and returns the data that matches the rule.

Posi LAPA 4 State Code

  • Uses the same symbol alphabet as RM4SCC
  • Uses Reed-Solomon error correction. It can correct up to 8 erasures or 4 errors.
  • LAPA can be read from left-to-right or right-to-left. The direction can be determined by reading the leftmost or the rightmost bar.
  • Thanks to its fixed length and error correction, it offers better robustness than RM4SCC.

UPU (Universal Postage Union) S18 4-State

UPU S18 4-State
  • The UPU 4-State barcode is a variable-length and alphanumeric barcode.
  • It is used to add identifier tags to UPU postal items.
  • It has two possible encoding formats, 18C and 18D.
  • It can be either 19 or 25 symbols in length.
  • It uses a Reed-Solomon error detection and correction scheme.
  • The Universal Postage Union manages the UPU S18 4-State specification (CEN/TS 15844-4:2010).

Australian Post 4-State

Australian Post 4-State
  • This symbology is used by Australia Post for postal code and automatic mail sorting.
  • The Australian Post 4-State barcode specifies three formats. Each format corresponds to a fixed length barcode of a unique number of bars.
  • The Standard Customer Barcode has 37 bars, Customer Barcode 2 has 51 bars and Customer Barcode 3 has 67 bars.
  • All barcodes contain a two-digit Format Control Code Field and an eight-digit Sorting Code Field, also know as Delivery Point ID (DPID).
  • The Standard Customer Barcode has no Customer Information Field. Customer Barcode 2 and Customer Barcode 3 have respectively 16 and 31 bars for encoding customer information.
  • Australian post specifies two encoding tables. Table N encode numeric data and table C encodes alphanumeric characters and special symbols.
  • The Standard Barcode format only carries numeric values, while the Customer Information section of Barcode Formats 2 and 3 can carry alphanumeric information coded using Table N and Table C. Customers can also use their own scheme to encode data in the Customer Information field.
  • The symbology uses a Reed-Solomon error detection and correction scheme, and can correct up to 2 errors or 4 erasures.
  • Australian Post manages the Guide to Printing the 4-State Barcode specification (latest revision 16 Mar 2012).

French Post

French Post
  • This symbology is used by La Poste (France).
  • The French Post symbology consists of two codes: a Chronomark and a Routing code. The two codes are printed side by side.
  • The Chronomark has 38 positions and the Routing code has 46 positions.
  • La Poste manages the specifications.