Barcode types: 1D, 2D and postal symbologies
Compare the 19 barcode types the barKoder Barcode Scanner SDK reads, from Code 128 and EAN/UPC to QR Code, Data Matrix, PDF417 and postal codes, with the data each one holds and where it is used.
Compare the 19 barcode types the barKoder Barcode Scanner SDK reads, from Code 128 and EAN/UPC to QR Code, Data Matrix, PDF417 and postal codes, with the data each one holds and where it is used.
A barcode symbology is the set of rules that turns data into a printed pattern: which characters it can hold, how each one is drawn, how a reader finds the start and end, and how errors are caught. Each barcode type is a different symbology, and a scanner must support a symbology to read it.
1D (linear) barcodes store data in the widths of parallel bars and spaces, read along a single line. They usually carry a product number, a serial number or a tracking ID.
Stacked barcodes, such as PDF417 and the stacked DataBar versions, pile several short rows on top of each other to hold more.
2D matrix codes, such as QR Code and Data Matrix, store data in a grid of modules in both directions, so the larger ones hold thousands of characters in a small square and use error correction to survive damage.
Postal barcodes store data in the height of each bar instead of its width.
Each row links to the barcode type's own page, with its structure, variants, standards and how to scan it. Capacity is the largest symbol the standard allows. Most labels carry far less.
Linear, stacked-linear, composite and postal codes, read along a line.
Used on library books and cards, blood bank labels and airbills.
Used mainly to label telecommunications equipment and components.
A family of numeric codes. ITF-14 marks cases, cartons and pallets, and Interleaved 2 of 5 is common in warehousing and distribution.
Used in Italy on packs of medicines, where it encodes the AIC number for dispensing, pharmacy stock and distribution.
Used for VINs and automotive parts, defense and government logistics, and manufacturing and healthcare labels.
A denser relative of Code 39. Canada Post uses it for supplementary delivery data, and it also appears on logistics, retail inventory and industrial labels.
A dense code that encodes all 128 ASCII characters. Used on shipping labels (GS1-128), in warehouse inventory, on automotive parts and on medication and patient labels.
A compact GS1 family for fresh produce, variable-weight items, coupons and small retail items.
The barcodes on retail goods. They carry the product GTIN and are scanned at the point of sale, in inventory counts and in warehousing.
A linear barcode with a 2D component printed above it, adding batch, expiry or serial data next to the GTIN.
Used to mark shelves, bins and storage containers, mostly in inventory and warehousing.
Used by postal services to automate mail sorting and tracking, encoding routing and delivery information.
Used mainly by UK university and public libraries, and in the motor industry.
Matrix and stacked 2D codes that hold data in both directions.
A 2D code with a bullseye at its center and no quiet zone. Used on airline boarding passes, rail and event tickets and in patient identification.
A small square or rectangular 2D code, the standard for direct part marking. Widely used on medicine packs, electronics, aerospace and automotive parts.
A 2D code of separate dots, printed at high speed on cigarette packs, beverage lines and shipping labels.
A fixed-size 2D code with a central bullseye, developed by UPS for package labels, parcel sorting and tracking.
A stacked 2D code found on driver's licenses and ID cards, printed airline boarding passes and shipping labels.
The 2D code phones made popular: links on packaging, mobile payments, tickets, loyalty programs and menus.
Capacities are maximums under suitable encoding conditions, not guaranteed capacities for arbitrary text. Actual capacity depends on the symbology, symbol size, encoding mode, error correction and application rules. Byte counts are not necessarily character counts.
The barKoder Barcode Scanner SDK reads 1D and 2D barcode formats with the camera of the phones, tablets and browsers your app already runs on. It supports Android 5.0 (API 21) and above, iOS 15 and above, all major web browsers, and Flutter, React Native, .NET MAUI, Capacitor, Cordova and NativeScript apps. These features cover the hardest cases across barcode types.
Reads damaged Data Matrix, QR Code and Micro QR codes, including QR codes missing all three finder patterns and Data Matrix codes with missing rows or columns.
MatrixSight® algorithm →Reads Data Matrix and QR codes marked directly on metal, plastic and electronic components by laser marking, dot peen or engraving, on the phones and industrial mobile computers your teams already carry.
DPM Barcode Scanner SDK →Decodes several barcodes in one camera view, whatever their type or size: 1D codes and QR codes, in a neat grid or scattered, from a few to dozens per image.
Batch MultiScan →Turns raw GS1 barcode strings into labeled fields such as GTIN, batch or lot, expiry date, serial number and SSCC, and recognizes the symbology automatically, whether it is a DataMatrix, a QR code or a 1D barcode.
GS1 Barcode Parser →Install the free barKoder demo app, or open the web demo, and scan your own barcodes before you integrate the SDK.
iPhone and iPad
Scan with your camera, or point it at the QR code to open the App Store.
Android phones and tablets
Scan with your camera, or point it at the QR code to open Google Play.
Any modern browser
Runs the Web SDK in your browser, on desktop or mobile, with nothing to install.
Test with known samples. Print or display the testing sheet and scan each 1D and 2D barcode with the demo app. The data sheet summarizes the SDK for your team.
There are four main groups. 1D or linear barcodes, such as EAN/UPC, Code 128 and Code 39, hold data in the widths of bars and spaces. Stacked barcodes, such as PDF417, pile several linear rows into one symbol. 2D matrix codes, such as QR Code, Data Matrix, Aztec, DotCode and MaxiCode, hold data in a grid of modules or dots. Postal barcodes hold data in the height of each bar. Within each group there are many symbologies, each with its own character set, capacity and standard.
A 1D barcode stores data in one direction, in the widths of its bars and spaces, so it holds a short number or ID and grows longer as you add data. A 2D code stores data in both directions, so it holds far more in a small area: a QR Code holds up to 4,296 alphanumeric characters and a Data Matrix up to 2,335. Most 2D codes also carry error correction, such as Reed-Solomon in QR Code and Data Matrix, so a reader can still decode a symbol that is partly damaged. Phone and tablet cameras read both kinds.
Start from where the code goes and who scans it. Retail products sold at a till use EAN or UPC with a GS1 GTIN. Cases and cartons use ITF-14, and logistics labels use GS1-128, a form of Code 128. Small items, medicine packs and parts marked by laser or dot peen use Data Matrix. Codes that consumers scan with a phone, such as links and payments, use QR Code. Driver's licenses and ID cards use PDF417, and many boarding passes and tickets use Aztec. For internal labels in a closed system, Code 128 or Code 39 is usually enough.
In a discrete symbology, each character stands on its own and the gap between characters carries no data. Codabar, Code 11 and Code 39 are discrete. In a continuous symbology, characters run into each other with no gap, which makes the code denser. Code 128, EAN/UPC, MSI Plessey and Telepen are continuous. The difference matters to people who print and verify barcodes. A scanner that supports the symbology reads both kinds.
The barKoder Barcode Scanner SDK reads 1D, stacked, 2D and postal barcodes through one API on Android, iOS, the web and cross-platform frameworks. You enable the decoders your app needs, and Batch MultiScan can read 1D barcodes and QR codes of different sizes in the same camera view. Try your own barcodes in the web demo, or start a free trial that runs for 30 days on up to 25 devices.
Test the SDK on your own labels, packs and parts with a free 30-day trial, or talk to an SDK expert about the barcode types your project needs.