Barcode tools · 2D matrix symbols
Aztec Code generator.
Build a compact or full Aztec symbol and see exactly how it is made: layers, mode message, bit stuffing and Reed-Solomon check words.
Symbol data
Aztec symbol
Worked example: “Wikipedia, the free encyclopedia”
The 32-character text above becomes 165 bits through the mode state machine (upper, lower, mixed and punctuation tables with latches and shifts). At 33% error correction the target is 165 × 33% + 11 = 65 check bits, so about 230 bits are needed. The smallest symbol that holds that is the compact 2-layer symbol, 19×19 modules with 6-bit words. Bit stuffing makes the data 168 bits, which is 28 words, leaving 12 of the 40 words for Reed-Solomon check words over GF(64). The mode message is 2-bit layers−1 (01), then 6-bit words−1 (011011), then 5 check words over GF(16): bits 0101 1011 0101 0011 0011 0010 1010. (Another encoder may choose a different but valid latch sequence, so the symbol is not always byte-for-byte identical across tools.)
How the symbol is built
A bullseye in the centre lets a reader find and orient the symbol. The mode message sits in the ring just outside it, and says how many layers and data words follow. Data words spiral outward in two-module-wide layers. Compact symbols have a core of 11×11 modules and a 2-ring bullseye; full symbols have a 15×15 core with a 3-ring bullseye plus a reference grid of alternating modules every 16th row and column. Aztec needs no quiet zone, but this page adds 2 modules of white margin to the downloads.
All symbol sizes
| Type | Layers | Size | Word bits | Field | Total words |
|---|
Ticketing use
Aztec Code is one of the 2D symbologies used for mobile boarding passes under the IATA Bar Coded Boarding Pass (BCBP) standard, and several rail operators use it for e-tickets. In those systems the barcode carries a carrier-defined payload, often with a digital signature. This tool only builds the symbol: it cannot create a valid ticket, and you should not use it to copy or alter one.
Sources and as-of date
As of 30 September 2026. The encoding rules and tables follow the open ZXing aztec encoder (github.com/zxing/zxing), the zxing-cpp encoder (github.com/zxing-cpp/zxing-cpp) and the structure and Reed-Solomon fields described in Wikipedia: Aztec Code; the standard is ISO/IEC 24778 (paid, not reproduced here). The symbols from this page were decoded back to the original bytes with zxing-cpp for every symbol size tested, and matched the ZXing reference encoder module for module on 396 random inputs. Unlike ZXing, this encoder can use the " character from the punctuation table, so output for text containing a double quote can be shorter.
Privacy: your text stays in the browser until you download the image. A generated symbol is not an issued ticket, pass or licence.
FAQ
What is the difference between a compact and a full Aztec symbol?
Compact symbols have a 2-ring bullseye, 1 to 4 data layers and measure 15x15 to 27x27 modules. Full symbols have a 3-ring bullseye, 1 to 32 layers, a reference grid every 16th row and column, and measure 19x19 to 151x151. Auto mode picks the smallest symbol that holds your data at the chosen error correction.
Why does the symbol show different Reed-Solomon fields?
The codeword size depends on the layer count: 6-bit words over GF(64) for 1 to 2 layers, 8-bit over GF(256) for 3 to 8, 10-bit over GF(1024) for 9 to 22 and 12-bit over GF(4096) for 23 to 32. The mode message always uses 4-bit words over GF(16).
Can I use this for airline or rail tickets?
Aztec Code is one of the 2D symbologies used for electronic boarding passes under the IATA Bar Coded Boarding Pass standard, and some rail operators also use it for tickets. This page encodes whatever text you give it, but a real ticket must be issued by the carrier: the payload layout, signatures and any security data are defined by their system, and a symbol made here will not be a valid ticket.
Why can a scanner show different characters for accented text?
This tool encodes text as UTF-8 bytes and does not add an ECI header. Readers that assume ISO 8859-1 may show accented letters incorrectly. Plain ASCII is read the same everywhere.
How much error correction should I use?
The default of 33% plus 11 bits follows the ZXing encoder rule. Use more for labels that may be scuffed or folded and less when you need the smallest possible symbol. ISO/IEC 24778 recommends at least 23% plus 3 codewords.
Does my data leave the browser?
No. The symbol is built entirely in your browser with a script on this page, and nothing you type is sent or stored.