Aztec Code Reader
Read Aztec codes from a photo, screenshot or camera. Train tickets are unpacked into route and dates, boarding passes into flight and seat. Also reads QR, Data Matrix and PDF417.
Built by Toolsque Team · last updated October 13, 2026 · checked against our testing process
Drop a photo or screenshot of the code here
Or paste one with Ctrl+V. Read on your device, never uploaded.
How to read an Aztec code
- Add the image: choose a photo or screenshot, drop it on the box, or paste it with Ctrl+V.
- Or use the camera on a phone or laptop, holding the code inside the frame about 15 to 25 cm away.
- Read the result: the format it found, what kind of data it is, and the full text.
- For boarding passes, the name, booking reference, airports, flight, date, cabin and seat are split out. Train tickets are unpacked into route, dates and ticket text.
- No code to hand? Try the train ticket or boarding pass sample.
- Copy the text if you need it, or read another code.
What an Aztec code is
An Aztec code is a square 2D barcode with a bullseye of nested squares in the middle. The bullseye is how a scanner finds it, so unlike a QR code it needs no white border around the edge and still reads when printed close to other text. That makes it popular where space is tight or the code is shown on a phone screen: airline boarding passes, rail and transit tickets, and event tickets.
Many phone camera apps only look for QR codes and ignore anything else, which is why a ticket code can seem unreadable. This reader looks for five formats in every image: Aztec, QR, Micro QR, Data Matrix and PDF417, and tells you which one it found. It uses zxing-cpp, the same open source decoder many phone scanner apps are built on, running inside your browser.
Other names for an Aztec code
Few people know the word Aztec, so the same code turns up under many names. If you searched for any of these, this is the code you have:
- Aztec barcode, Aztec 2D code or Aztec symbol: the formal names. The standard is ISO/IEC 24778.
- Bullseye barcode or target barcode: after the nested squares in the middle, which look like the top of a stepped Aztec pyramid and gave the code its name.
- Square barcode or square code: what most people call any square 2D code. It could also be a QR code or Data Matrix, so the reader tells you which one it found.
- 2D barcode or matrix barcode: the family name for codes made of squares instead of bars.
- Ticket barcode, mobile ticket code, e-ticket code or boarding pass barcode: what you are told to show at the gate or on the train.
- QR code: a common mix-up. Many people call every square code a QR code, which is why a QR scanner app can refuse a ticket that is really Aztec.
- Aztec rune: a tiny variant, just a bullseye with a ring of data around it, used for very short numbers.
The code was invented in 1995 by Andrew Longacre Jr. and Robert Hussey at Welch Allyn, an American scanner maker, and became an ISO standard in 2008.
Where you see Aztec codes in the US, and what is not one
In the US the place most people meet an Aztec code is an airline app: many mobile boarding passes show one instead of the striped barcode on a paper pass. Mobile tickets for some transit systems and events use them too, and anyone traveling by train in Europe will find one on the ticket.
Several codes that look similar are something else:
- The barcode on the back of a US driver's license or state ID is PDF417, the wide striped rectangle. Paper boarding passes usually carry PDF417 as well. This reader reads it, and the PDF417 reader explains each license field in plain words.
- The round bullseye on a UPS shipping label is MaxiCode: a round target surrounded by a honeycomb of small dots, not squares. This reader does not read MaxiCode.
- A square code with three big squares in the corners is a QR code, even when it sits on a ticket. This reader reads that too.
How to tell an Aztec code from a QR code
- Aztec code: one bullseye of nested squares in the center.
- QR code: three large squares in three corners.
- Data Matrix: a solid L along two edges and a dotted pattern along the other two, with no squares inside.
- PDF417: a wide rectangle of stacked rows, often on printed boarding passes and US driver licenses.
If you only need to make one, the Aztec code generator creates Aztec codes, and the Data Matrix generator and PDF417 generator cover the others.
Reading a boarding pass barcode
Boarding passes follow one standard from IATA, the airline industry body, called BCBP. Mobile boarding passes usually carry it as an Aztec or QR code and paper ones as PDF417. The first 60 characters are fixed fields in fixed positions, so the reader splits them out for you:
| Characters | Field | Example |
|---|---|---|
| 1 | Format code, always M | M |
| 2 | Number of flights in the pass | 1 |
| 3 to 22 | Passenger name, SURNAME/GIVEN | DOE/JOHN |
| 23 | E for an electronic ticket | E |
| 24 to 30 | Booking reference (PNR) | ABC123 |
| 31 to 36 | From and to airport codes | JFK LAX |
| 37 to 44 | Airline and flight number | AA 0123 |
| 45 to 47 | Date of flight as day of the year | 289 (16 October) |
| 48 | Cabin class code | Y |
| 49 to 52 | Seat | 012A |
| 53 to 57 | Check-in sequence number | 0045 |
Anything after these fields is optional data each airline adds, such as frequent flyer numbers, and often a security signature. The date is a day of the year rather than a calendar date, which is why the reader converts it.
Do not post boarding pass barcodes online. The name and booking reference inside are enough for someone to open the booking on the airline's website, change seats or cancel the trip. Decode them here, where nothing leaves your device, rather than in a tool that uploads the image.
Reading a train ticket barcode
Most European rail tickets carry an Aztec code in the UIC 918.3 format, which starts with #UT. The ticket details inside are compressed, so a plain barcode app shows a jumble of symbols. This reader unpacks them and shows what the railway stored:
- The railway, from its company code, and the country it belongs to.
- The ticket reference and when it was issued.
- The ticket text as printed on the ticket, when the railway includes it.
- Route, class, travelers and validity dates for Deutsche Bahn style tickets, which store them as separate fields.
Every UIC ticket also carries a digital signature. Only the railway's own scanners can check it, with a key they keep private, so this page reports that a signature is present but cannot confirm the ticket is genuine. Some operators, including UK rail, encrypt their barcodes instead; for those the reader shows the raw bytes. Press Try a train ticket sample above to see a fictional ticket unpacked.
Getting a clean read from a photo
- Use a screenshot when you can. A ticket in a wallet app or email reads instantly from a screenshot, with no glare.
- Keep the whole code in the picture, including the outer edge. Cropping is fine as long as nothing is cut off.
- Avoid glare. A shiny ticket or a phone screen photographed under lights can hide parts of the code.
- Turned or slightly blurry photos are fine. The decoder rotates, inverts and rescales the picture itself, and tries a second time with noise removed.
- Blurry photos of QR codes can be rescued with the blurry QR code reader, which runs extra sharpening passes.
If the result is a web link, check where it goes before you open it: the safe QR code scanner shows the real destination. For ordinary product barcodes, use the barcode scanner.
Frequently Asked Questions
How do I read an Aztec code online?
Choose or paste a photo or screenshot of the code above. The reader finds the code, shows its text and tells you the format, all inside your browser.
Why will my phone camera not scan an Aztec code?
Many camera apps only look for QR codes. This reader also looks for Aztec, Data Matrix and PDF417, so it reads codes the camera app skips.
What is the difference between an Aztec code and a QR code?
An Aztec code has one bullseye in the center and needs no blank border. A QR code has three corner squares and needs a white margin around it.
Can I decode a boarding pass barcode?
Yes. The reader splits out the passenger name, booking reference, airports, flight number, date and seat from the standard airline format.
Can I read a train ticket barcode?
Yes, for European tickets in the UIC 918.3 format. The reader unpacks the railway, ticket reference, issue date, ticket text and, on Deutsche Bahn style tickets, the route and validity. It cannot check the signature, and encrypted tickets such as UK rail show as raw bytes.
Is my image uploaded anywhere?
No. The image is decoded in your browser and never sent to a server, which matters for tickets and boarding passes that carry personal details.
What else is an Aztec code called?
People call it a bullseye or target barcode, a square barcode, a 2D or matrix barcode, a ticket or boarding pass barcode, and often, by mistake, a QR code. Its formal name is Aztec code, standardized as ISO/IEC 24778.
Is the bullseye barcode on a UPS label an Aztec code?
No. UPS labels use MaxiCode, which has a round bullseye surrounded by small dots in a honeycomb pattern. An Aztec code has a square bullseye surrounded by square modules.
