Free Boarding Pass Barcode Decoder

Paste the raw text from the barcode on your boarding pass. This tool splits it into IATA BCBP fields, translates the codes into plain English, and flags which fields identify you.

Nothing you paste leaves your device. This decoder is plain JavaScript running in your own browser. Your name, booking reference and frequent flyer number are never uploaded, logged or stored. That matters more here than on most tools — a boarding pass barcode is unencrypted personal data.

Scan the PDF417 or Aztec code on your boarding pass with any scanner app, then paste the raw text here. It always starts with the letter M. Spaces are meaningful — paste the string exactly as your scanner returned it.

Try a sample pass (all fictional)

How a Boarding Pass Barcode Is Structured

Every airline boarding pass in the world encodes the same string format, defined by IATA Resolution 792 as the Bar Coded Boarding Pass (BCBP). It is plain text — not encrypted, not a database key — laid out as fixed-width fields in a fixed order. Because the order and widths are fixed, you can decode it by counting characters.

The string is built in four parts, in this order:

  1. 23 mandatory characters describing the passenger — the format code M, how many flights are encoded, the passenger name padded to 20 characters, and the electronic ticket indicator.
  2. 37 mandatory characters per flight — booking reference, origin and destination airports, carrier, flight number, day of the year, class, seat, check-in sequence number and passenger status. The last two characters are a hexadecimal length telling the reader how much optional data follows.
  3. An optional block whose length that hex number gave — version marker, how you checked in, when the pass was issued, baggage tag numbers, ticket number, frequent flyer number, screening indicators, and a free-form section each airline uses for its own purposes.
  4. An optional digital signature, marked by a caret. Some airlines sign the pass so gate readers can detect tampering. The signature protects against forgery — it does not hide anything, because the passenger data before it is still readable.

That structure is why a minimal boarding pass is exactly 60 characters, and why a pass with baggage, loyalty and signature data can run past 400. The decoder above reports the length so you can see where yours sits.

When You Would Use This

Checking what you would give away by sharing a photo

The most common reason people find this page. Decode your own pass and you can see exactly which fields a stranger would read from a photo of it — usually your full name, booking reference and frequent flyer number. That is the concrete answer to whether posting it is a good idea.

Confirming a pass before you travel

The printed face of a boarding pass and the barcode are generated separately, and they can disagree. Decoding the barcode shows what the gate reader will actually see — the seat, the flight, and whether your status field says you are checked in.

Developers and airline systems work

If you are building or testing a check-in flow, a gate reader integration or a travel app, this gives you a field-by-field reference decode without wiring up an SDK. Item numbers from Resolution 792 are shown next to each field so you can cross-reference the specification.

Understanding a pass that will not scan

If a gate reader rejects a pass, the barcode is often truncated or the optional-section length is wrong. The decoder reports both as warnings rather than failing silently.

Related Tools & Guides

Frequently Asked Questions

Is my boarding pass data sent to a server?

No. The decoder is plain JavaScript that runs entirely in your browser, and nothing you paste is uploaded, logged or stored. This is the one category of barcode where that genuinely matters: a boarding pass carries your full name, booking reference and frequent flyer number in clear text, so pasting one into a server-side tool hands all of it to a third party.

What barcode format is on a boarding pass?

Printed passes almost always use PDF417, a stacked 2D format that holds far more than a retail barcode. Mobile passes commonly use Aztec, and some airlines use a QR Code or Data Matrix. The symbology differs but the text inside is the same IATA BCBP string, so this decoder works regardless of which one your pass uses.

Why does the decoder not show the year of my flight?

Because the year is not in the barcode. The date of flight field is three digits holding only the day of the year, from 001 to 366, so day 326 could be any year. The decoder shows the matching calendar date for the year you are in now and labels it as an assumption rather than presenting it as fact.

Can someone misuse my booking reference?

A booking reference plus a surname is what many airline websites ask for to open a reservation, and both are in the barcode. Depending on the airline that can be enough to view an itinerary, and sometimes to change a seat or cancel a flight. This is the main reason security researchers advise against posting boarding pass photos, and against leaving used passes behind in the seat pocket.

What does the compartment code letter mean?

It is the airline's own booking class letter, not a standard cabin code. Y is very often economy and J is very often business, but airlines assign these letters themselves and reuse them differently, so the same letter can mean different fare products on different carriers. This decoder deliberately shows the raw letter rather than guessing at a cabin name.

What is the caret and the block of characters at the end?

That is the optional security section. The caret marks its start, followed by a type character, a two-digit hexadecimal length, and a digital signature. Airlines that use it can detect a forged or altered pass at the gate. It does not encrypt anything — every field before it is still plain text.

Why does my pass show a different number of fields to the examples?

Only the first 60 characters are mandatory for a single-flight pass. Everything after that is optional, and each airline decides how much to include. A low-cost carrier may emit close to the bare minimum, while a full-service airline may add baggage tags, ticket numbers, frequent flyer data and a signature. The decoder lists only the fields your pass actually carries.

Does this work for train or event tickets?

No. This decoder implements the IATA BCBP format used by airlines, which is why it requires the string to begin with M. Rail operators and ticketing platforms use their own formats, including UIC barcodes in Europe, and those will be rejected rather than mis-parsed.

Read the Barcode on Your Pass

The Scan & Generate app reads PDF417 and Aztec — the two formats airlines use on boarding passes — and shows you the exact raw text, ready to paste into this decoder.