Skip to main content
Aztec is a square 2D barcode built around a bullseye in its center. It needs no quiet zone around it, which makes it a good fit for crowded tickets and small phone screens.

Decode one

Scan or paste a barcode and see every part of it.

Make one

Generate a valid barcode from fields.

Where you’ll see it

  • Mobile train tickets, on many European rail networks.
  • Airline boarding passes, especially on phones.
  • Transit and event tickets.

Anatomy

Aztec is read from the center out:

Compact and full-range

Aztec comes in two forms: The largest full-range code holds up to 3,832 digits, 3,067 letters and digits, or 1,914 bytes.

No quiet zone

Because a scanner finds the code from its center, Aztec doesn’t need a margin around it. That makes it easier to fit on a busy ticket, and more forgiving when a phone screen is cropped or partly covered.

Error correction

Aztec’s error correction is a percentage of the data, from 5% to 95%. The recommended minimum is 23% plus 3 codewords. Use the minimum for tickets on screens, and 50% or more for codes printed on things that get handled roughly. See How much error correction should I use? The bullseye isn’t protected by error correction. If it’s damaged, the scanner can’t find the code.
  • Aztec Runes: tiny 11×11 codes that hold a single byte, used as markers.
  • QR Code: needs a quiet zone and finds the code from its corners rather than its center.
  • PDF417: the other common barcode on boarding passes, especially printed ones.

Gotchas

  • Something over the center. A logo, a fold or a thumb over the bullseye makes the code unreadable, however much error correction it has.
  • Mistaken for QR Code. Both are square and black and white. If your app reads tickets, enable both.

Scanning it in your app

Specification

  • ISO/IEC 24778: the Aztec barcode specification.