Skip to main content
Online Tool

Aztec Code Generator

Encode boarding passes, transit tickets and structured payloads as a 2D Aztec barcode. Tunable error correction and layer count, PNG and SVG output — fully client-side.

59 / 3000 characters. Aztec encodes ASCII, digits and Latin-1 binary.

23%

Spec default is 23%. Higher = more tolerance to print damage at the cost of a bigger symbol.

3x

2-ring bullseye, 1–4 layers — smaller symbol for short payloads (~110 chars max).

Sets the reader-init flag for scanner-config Aztec codes. Leave off for data.

Encoded payload
M1DOE/JOHN EABC123 LHRJFKBA 0179 226Y012A0001 100

Files are generated on your device — nothing is uploaded.

About the Aztec code generator

Aztec is a 2D matrix barcode that packs a few characters or up to ~3000 of them into a square symbol with a central bullseye finder pattern. It scans without a quiet zone (which is why it works so well on phone screens with thin status bars), tolerates partial damage, and is the symbology behind IATA mobile boarding passes, Eurostar / SNCF / Deutsche Bahn tickets, and many transit cards.

This generator renders Aztec entirely in your browser with the open-source bwip-js library. Pick an error-correction percentage (the spec default is 23%), choose compact vs full-range, force a layer count for a fixed label size, then download as SVG for print or PNG for screen.

When to use it

  • Generating IATA BCBP mobile boarding-pass payloads for proofing.
  • Issuing transit / rail tickets that need to scan from glossy phone screens.
  • Marking small parts where Aztec's no-quiet-zone requirement saves real estate.
  • Producing reader-config codes that re-programme handheld scanners.
  • Embedding short structured data (gate, seat, member ID) on a printed pass.
  • Replacing a damaged Aztec on an existing ticket / pass with a re-issue.

How it works

  1. 1Step 1
    Paste your data

    ASCII text, digits or Latin-1 binary up to ~3000 characters.

  2. 2Step 2
    Set the EC percentage

    Stay at the 23% spec default for general use. Raise for harsher surfaces / lower-DPI printers.

  3. 3Step 3
    Pick compact or full-range

    Compact for short payloads (~110 chars). Full-range for everything else.

  4. 4Step 4
    Optionally force layers

    Auto picks the smallest symbol that fits; force a count to hit a label size.

  5. 5Step 5
    Download SVG or PNG

    SVG scales without artefacts to any size; PNG is fine for screens.

What to avoid

  • Don't drop EC below 23% for boarding passes or laminated tickets — wear destroys low-EC symbols quickly.
  • Don't force compact mode for a payload over ~110 characters — the encoder will reject it.
  • Don't enable Reader Programming for normal data payloads — most scanners refuse to decode it as data.
  • Don't print on phone screens with the brightness turned low; Aztec relies on contrast that auto-brightness sometimes kills.
  • Don't expect every legacy scanner to read full-range Aztec at 32 layers — verify with the actual reader you're targeting.

Tips & tricks

  • Aztec doesn't need a quiet zone — but a thin white margin still helps screen scans through phone bezels.
  • For airline / rail use, follow the IATA BCBP or UIC-918 field layout exactly; downstream readers reject anything off-spec.
  • Export SVG and rasterise to PNG only for the final asset — vector means you can resize without quality loss.
  • Round-trip-test by scanning the rendered Aztec with the actual scanner that will read it in production.
  • If your scanner supports both, prefer Compact Aztec for ticket-size labels — it scans faster from short distances.

Private by default

Aztec codes are rendered locally with bwip-js. The text you encode never touches our servers.

Frequently asked questions

Related tools