The QR code won the phone, but it is one of about a dozen two-dimensional codes in daily use. Some are older, some are better at a particular job, and a handful are private patterns owned by a single app. Knowing them helps you recognise what is on a boarding pass or a pill packet, and stops you trying to scan a Spotify Code with your camera.
The open standards
Data Matrix. Invented by International Data Matrix Inc. in the late 1980s and standardised as ISO/IEC 16022, first published in 2000 and now in its 2024 edition. Its finder is two solid edges in an L shape with alternating timing patterns on the other two edges. A symbol holds up to 2,335 alphanumeric characters or 1,556 bytes. It is the code on medicine packs, surgical instruments and electronic components, because it stays readable when tiny and has no corners to lose (Wikipedia). The GS1 DataMatrix variant carries retail data; the retail article compares it with QR.
Aztec Code. Designed by Andrew Longacre Jr and Robert Hussey at Welch Allyn in 1995, published by AIM in 1997 and now ISO/IEC 24778:2024. Its finder is a bullseye in the centre of the symbol, and it needs no quiet zone, which is why it fits on the small screen of a phone boarding pass and on Eurostar, Deutsche Bahn and National Rail tickets (Wikipedia).
PDF417. Created by Ynjiun Wang at Symbol Technologies in 1991 and standardised as ISO/IEC 15438. It is a stacked linear code, several rows of bar patterns between start and stop bars, so an ordinary laser scanner can read it a row at a time. It is on the back of every US driving licence, on printed boarding passes and on US postage (Wikipedia).
MaxiCode. Developed for United Parcel Service by Donald Chandler and Eric Batterman, standardised as ISO/IEC 16023. It uses hexagonal dots around a central bullseye, is a fixed one inch (2.5 cm) square, and holds about 93 characters, enough for a postcode, country and service class, which is all a sorting machine needs from a fast-moving parcel (Wikipedia).
Han Xin Code. Invented in 2007 by the Article Numbering Center of China, partly to have a Chinese-owned alternative to QR, and standardised as ISO/IEC 20830:2021. Like QR it is a square grid, but with four finder patterns and native support for Chinese characters (Wikipedia, ISO).
JAB Code. “Just Another Bar Code”, developed by the Fraunhofer Institute for Secure Information Technology and standardised as ISO/IEC 23634:2022. It uses colour, four or eight colours per module, to pack more data into the same area, and can chain several symbols together (Wikipedia, ISO). Phone support is limited to dedicated apps.
| Feature | QR code | Data Matrix | Aztec | PDF417 | MaxiCode | Han Xin | JAB Code |
|---|---|---|---|---|---|---|---|
| Year | 1994 | late 1980s | 1995 | 1991 | 1987 (UPS) | 2007 | 2022 (ISO) |
| ISO/IEC standard | 18004 | 16022 | 24778 | 15438 | 16023 | 20830 | 23634 |
| Finder | 3 corner squares | L-shaped border | Central bullseye | Start/stop bars | Central bullseye | 4 corner patterns | Colour corner marks |
| Quiet zone needed | ✓ | ✓ | ✕ | ✓ | ✓ | ✓ | ✓ |
| Phone camera reads it | ✓ | ✓ | ✓ | ✓ | ✕ | ✕ | ✕ |
| Home turf | Everything consumer | Pharma, electronics | Boarding passes, rail | ID cards, postage | Parcels | China | Research |
The proprietary family
Between 2015 and 2020 several apps launched their own scannable patterns. None is a QR code. Each encodes a short identifier that only the owning app can look up, which gives the company a branded look and complete control, and gives users a code their phone camera ignores.
| Code | Owner | Launched | What it does | Source |
|---|---|---|---|---|
| Snapcode | Snapchat | 27 Jan 2015 | Dots around a ghost logo; adds friends, opens lenses and websites from 2017. Built on technology from Scan Inc., bought for about 50 million US dollars in 2014. Moved to a QR-based design in late 2022. | Wikipedia |
| Kik Code | Kik | Sep 2015 | Connects users and brands inside the Kik messenger. | TechCrunch |
| Messenger Code | Apr 2016 | Dots and dashes around a profile photo; opened a chat with that person or page. Discontinued 15 Aug 2019 in favour of m.me links in ordinary QR codes. | Time, Uniqode | |
| Spotify Code | Spotify | May 2017 | A row of bars of varying height beside the Spotify logo; opens a song, album, artist or playlist in the app. | TechCrunch |
| SmileCode | Amazon | Jan 2018 | A code with the Amazon smile in the centre, scanned in the Amazon app for discounts and lockers. Printed on shipping boxes later that year. | TechCrunch |
| App Clip Code | Apple | Dec 2020 (iOS 14.3) | A round code encoding a URL, optionally with an NFC tag, that launches an App Clip without installing the app. Generated with Apple’s AppClipCodeGenerator. | NFCW |
The pattern is consistent. A proprietary code gives a company three things: a look that says “this is ours”, certainty that the scan opens their app and not a browser, and an encoding they can change at will. It costs the user the universal camera. Facebook gave up after three years. Snapchat kept the yellow branding but moved the data into a QR code. Spotify’s bars survive because they are printed on merchandise next to the logo, where the context tells you which app to open. Apple’s is the exception that may last, because Apple controls the camera that reads it.
Three things to take from this
- The finder pattern is the family name. Three squares means QR. An L means Data Matrix. A bullseye means Aztec, or MaxiCode if the dots are hexagons. Rows of bars between two thick edges means PDF417.
- Niches are sticky. Data Matrix owns pharmacy because regulators wrote it into law before QR was common. PDF417 owns driving licences for the same reason. QR owns the consumer because Apple and Google put it in the camera.
- Proprietary codes die when the app loses interest. Anything you print for the long term should be an open standard that any phone reads. That is the static QR code argument in another form.
Note
QR Studio makes QR codes only. If you need a GS1 DataMatrix for a medicine pack or a PDF417 for an ID card, use a tool built for that symbology and the regulator’s rules that go with it.
▸Why a bullseye and why an L
Every 2D code needs something a scanner can find before it knows the grid. QR uses three corners so it can also work out rotation and skew from their positions. Aztec’s bullseye is cheaper in area, and its rings give scale and centre, with orientation read from small marks around the outer ring; the price is that a damaged centre kills the code, whereas QR survives a damaged corner as long as two finders remain readable. Data Matrix’s L is the cheapest of all, two solid edges, but it gives no explicit scale, so the timing patterns on the opposite edges do that job. Each choice trades area against robustness, and each symbology’s home niche reflects the trade it made.
Try it yourself
Photograph a code on a parcel, a medicine box or a boarding pass and drop it into the decoder. It tells you which symbology it found and what the text says.