Quick answer: identify the format first (square with three corner squares = QR; square with a bullseye centre = Aztec; wide stacked strip = PDF417; lines only = Code 128). Your phone camera reads QR codes natively; for PDF417, Aztec and Data Matrix use a multi-format scanner app. What you get back is usually a random ticket ID or a signed token — not readable details. Boarding passes are the big exception: they hold your name, flight and seat in plain text, which you can decode with our boarding pass decoder.
1. Identify the barcode format
You can tell almost every ticket barcode apart by shape alone:
| What it looks like | Format | Typical tickets |
|---|---|---|
| Square, three big squares in the corners | QR Code | Concerts, cinemas, museums, mobile tickets |
| Square, a small bullseye in the centre | Aztec | Rail and metro e-tickets, mobile boarding passes |
| Wide rectangle of stacked, jagged rows | PDF417 | Printed boarding passes, some event tickets, ID cards |
| Small square, L-shaped solid border on two sides | Data Matrix | Small-format tickets, labels, some transit |
| Vertical lines only, with digits underneath | Code 128 / linear | Older paper tickets, wristbands, parking |
For a deeper side-by-side, see the format comparison.
2. Scan it with your phone
- QR codes: the built-in camera on iPhone and Android reads them. Point, wait for the yellow/blue banner, and tap it — or use our private QR code reader, which shows the full contents without opening anything.
- PDF417, Aztec, Data Matrix, Code 128: most stock camera apps ignore these. Install a general-purpose "barcode scanner" app that lists support for all 1D/2D formats, or use Google Lens, which reads several of them.
- A ticket on the same phone: take a screenshot, then open it in the scanner app's "scan from image" option.
Tip: scan from a screen at full brightness with the code filling about half the frame. Most read failures are glare or the code being too small in the image — the same fixes as at the gate (see scanning tips).
3. Interpret what you get
Decoding gives you a string of characters. It will look like one of these:
- A short random-looking ID (e.g.
7F3K9Q2M8TXB) - The most common result. It is a lookup key: the event, seat and owner live in the issuer's database, not in the code. There is nothing more to "read" — the meaning only exists on the issuer's side.
- A long block of letters, digits and symbols
- Usually an encrypted or signed token. Scanners verify the signature offline; you cannot read it meaningfully without the issuer's keys. Rotating app tickets produce this kind of payload.
- A web link
- Some tickets encode a URL to a ticket page. Check where it goes before opening it — our QR reader flags suspicious links.
- Readable fields with a fixed layout (e.g.
M1SAMPLE/ALEX …) - A structured standard. Airline boarding passes (IATA BCBP) are the classic example — paste the text into the boarding pass decoder to see each field.
- Binary-looking gibberish starting with
#UTor similar - A compressed, signed rail ticket (common on European rail, e.g. UIC 918.3). Only the railway's validators read it.
What different tickets contain
- Concert, sports and theatre tickets: a ticket ID or signed token. Seat and event details are printed beside the code, not inside it. See event tickets and sports tickets.
- Movie tickets: usually a booking ID that the cinema's system looks up. See cinema tickets.
- Boarding passes: name, booking reference, route, flight, date, seat and sequence number in readable text. See boarding pass barcodes.
- Train and transit: anything from a simple ID to a signed binary record with route, validity and fare class. See train & transit.
The number printed under the barcode
The digits or letters under or beside a barcode are normally the same ticket ID in human-readable form. Staff type it in when a scanner can't read the code, which is why you should never crop it out. On some tickets the printed number is a separate order or reference number — if the barcode won't scan, show both.
If your phone can't read it
- The code may be rotating or animated — screenshots of these decode to an expired value. See rotating barcodes.
- The format isn't supported by your app — try a multi-format scanner.
- The image is too small, blurred or cropped — leave a margin of white space around the code.
- There is no barcode at all, just a reference — see my ticket has no barcode.
A word on privacy
Anyone who can photograph your ticket can decode it. For a single-use ticket that means they could get in before you; for a boarding pass it exposes your name and booking reference. Don't post ticket barcodes online, and decode only tickets you own.
Frequently asked questions
How do I read a barcode on a ticket?
Identify the format, then scan it: the phone camera reads QR codes, while PDF417, Aztec and Data Matrix need a multi-format barcode scanner app. The decoded text is usually a ticket ID that only the issuer's system can interpret.
Can I see my seat or event details by scanning my ticket?
Usually not. Most event and cinema tickets encode only an ID or a signed token; the seat and event details are stored by the issuer. Airline boarding passes are the main exception and contain readable flight details.
Why does my scanner app show random characters?
Because the barcode holds a random identifier or an encrypted token. That is normal and is part of what makes the ticket hard to forge.
Is the number under the barcode the same as the barcode?
Usually yes — it is the human-readable copy of the ticket ID so staff can enter it manually if the scan fails.