Home/Documents/Boarding Pass

Supported document type

Detect tampered and deepfake Boarding Pass

A fake boarding pass is usually about money rather than borders. The claim comes from an employee who cancelled the flight, flew a cheaper fare than the one expensed, or never travelled at all, and the pass is the receipt finance accepts without question. Almost every one is a genuine pass with a date, a name or a fare class painted over and the barcode left alone, which is the mistake: the barcode still says what the pass used to say. TamperCheck reads both.

API slug: boarding_pass

Last updated:

What a genuine boarding pass contains

A boarding pass carries the passenger name in airline format, surname first, the booking reference, the flight number with its two-character carrier code, origin and destination as IATA codes, the date, boarding and departure times, gate, seat, cabin or fare class, the sequence number recording the order of check-in, and frequent flyer tier where it applies. Alongside the printed detail sits a machine-readable barcode, PDF417 on a printed pass and Aztec on most mobile ones, holding the same information in the IATA BCBP format.

The barcode is why this document can be checked at all. It is a fixed-width text string containing the passenger name, the booking reference, origin and destination, the operating carrier, the flight number, the Julian date of departure, the compartment code, the seat and the check-in sequence number, and it is generated once, at check-in. Editing the printed side of the pass does not regenerate it. Any decoder reads the original values straight back out, so the print and the barcode disagree field by field.

How boarding pass forgeries are made

  • Printed fields repainted, barcode untouched

    The date, seat or fare class is edited in an image editor while the barcode stays as issued. Decoding it returns the original flight, date and sequence number, contradicting the print directly above. This is the most common expense-claim forgery and the fastest one to settle.

  • Barcode re-encoded to match the edit

    A more careful forger regenerates the barcode around the new values. The result is internally consistent, but it usually ignores the format's fixed field widths and conditional sections, so it decodes into fields of the right names and the wrong lengths.

  • Cabin upgrade for reimbursement

    Economy becomes business on the pass and on the receipt filed with it, so the difference can be claimed. The class is a single character in a small font and the edit is nearly invisible in print, but the compartment code also sits inside the barcode and in the check-in data behind it.

  • Screenshot recycling

    A mobile pass is captured once and resubmitted for trips that never happened, with the date changed each time. Repeat claims from one employee then share a seat, a gate and a sequence number, which no two genuine flights would ever produce.

  • Cancelled flights claimed as flown

    The pass was issued and the flight was never boarded, or the booking was cancelled after check-in. Nothing on the document is false, so the control is not forensic at all: it is whether a boarding pass, rather than an airline receipt, is accepted as evidence that a trip happened.

  • Passes built from blank templates

    Editable templates carrying airline branding circulate freely, and a convincing pass can be filled in from nothing. Type rendering gives them away: a real pass is printed by an airport thermal printer or rendered by an airline app, and neither produces the crisp vector text a filled template does.

What TamperCheck checks on a boarding pass

TamperCheck runs 200+ forensic checks across three layers and returns a risk score from 0 to 100 with plain-English findings tied to specific regions of the document. These three carry the most weight on this document class.

  • Barcode and QR payload comparison

    Encoded payloads are decoded and compared against the human-readable values printed alongside them. Editing the visible text without re-encoding the barcode is a common and highly detectable mistake.

  • Letterhead, logo, and issuer plausibility

    Issuer branding is checked for resolution and compression consistency against the body text it sits on. A logo lifted from a website carries the signature of its source, not of the document.

  • Date and validity consistency

    Issue, expiry, and period dates are checked against one another and against the file's own creation metadata, which catches backdating and validity extension.

  • And many more checks

    The three above are the layers that carry the most weight on a boarding pass. Every upload runs the full suite of 200+ checks regardless of document class, spanning file structure and metadata, pixel-level forensics, font and text rendering, optical and print characteristics, provenance signals, AI-generation signatures, and many more checks.

Who verifies a boarding pass, and why

Finance teams auditing travel expense claims and reimbursements. In each case the document is being used to unlock money, access, or a legal status, which is exactly what makes it worth forging.

How to verify a boarding pass in 4 steps

  1. Decode the barcode

    Read the PDF417 or Aztec code with any BCBP decoder. It returns the passenger name, booking reference, route, operating carrier, flight number, Julian departure date, compartment code, seat and sequence number as they stood at check-in.

  2. Compare the decoded string with the print

    Every decoded field should match the printed face of the pass. A date, name or class that differs between the two is the edit, and the barcode holds the value the pass was issued with.

  3. Match the pass to the fare receipt

    A boarding pass proves check-in, not payment. Pull the airline's itinerary receipt for the same booking reference and confirm the fare, the class and the form of payment are the ones being claimed.

  4. Run a forensic check on the image

    Where a pass was rebuilt rather than edited, the barcode agrees with the print because both were fabricated together. TamperCheck runs 200+ forensic checks over the image and returns a risk score from 0 to 100 within seconds, at $0.50 per document.

Frequently asked questions

How do companies detect fake boarding passes in expense claims?

By decoding the barcode and comparing it with the printed pass. The IATA BCBP payload holds the passenger name, booking reference, route, flight number, Julian date, cabin and sequence number as they were at check-in, and editing the visible pass does not change it. Finance teams also match the pass to the airline's fare receipt, since a pass proves check-in rather than payment.

Can a boarding pass be faked?

Yes, easily, and editable templates for most major airlines circulate openly. What is hard to fake convincingly is the relationship between the printed face and the barcode, and between the pass and the airline's own receipt for the same booking reference. Edited passes fail the first comparison; passes built from scratch usually fail the second.

Is a boarding pass proof of travel for expenses?

Not on its own. A boarding pass shows that someone checked in for a flight, not that the fare was paid at the rate claimed or that the flight was taken. The airline's itinerary receipt shows the fare, the class and the form of payment, which is why policies that ask for the receipt rather than the pass see far fewer inflated claims.

What does the barcode on a boarding pass contain?

A structured text string in the IATA bar-coded boarding pass format: passenger name, booking reference, origin and destination airport codes, operating carrier, flight number, the Julian date of departure, compartment code, seat number, check-in sequence number and passenger status, with optional airline-specific fields after them. Any standard decoder will read it back out in full.

TamperCheck analyses boarding pass uploads with a hybrid forensic and AI pipeline tuned for this document class. Upload endpoints accept PDF and common image formats; class is inferred automatically. See the API & MCP documentation for authentication, async jobs, and webhooks.

Related document types

All supported document types