飛行機の搭乗券に印刷されたバーコードには、どんな情報が入っているか?
飛行機の搭乗券に印刷されたバーコード
飛行機に乗る際に発行されるチケット、つまり搭乗券。
この搭乗券には大抵、バーコードが記載されている。
そして、そのバーコードには色んな情報、例えば氏名やマイル口座番号、行き先や出発日などの情報も含まれるらしい。
詳しくはWebをチェック↓
飛行機の搭乗券に印刷されたバーコードを読み取ると個人情報など意外にも多くの情報が書かれていた – GIGAZINE
さて。
ちょっと気になったので、実際に自分の搭乗券のバーコードを読み取って、どんな情報が入っているか確認してみた。
そのメモにて。
搭乗券のバーコード(PDF417/QRコード)
ANAの国際線の搭乗券は、便名や座席番号の他に、下記のようなバーコードが記載されている。

※https://www.ana.co.jp/amc/reference/tameru/flightmile/int/retro.html
※これはあくまでサンプル画像です
このバーコードのフォーマットは、「PDF417」。
世界的によく使われている2次元バーコードの一種。
PDF417|アイニックス株式会社
国内線チケット(ANA)の方はどうだろうか?

こっちのバーコードは、「QRコード」。
日本のデンソーが作った2次元バーコードの仕様である。
QRコード – Wikipedia
「PDF417」であれ、「QRコード」であれ、この中には情報が入っているんだな。
そして最近では、スマホアプリのバーコードリーダーで簡単に内容を読み取ることができる。
アプリは「PDF417」とかで検索すれば色々見つかる。
自分が今回使ったのは、「Scandit」というアプリ。
こうしたアプリで実際にバーコードを読み取ってみると、以下のようなアルファベットと数字の羅列がでてきた。
M 1 TANAKA/TARO E XXXXXX HND SIN NH 0843 214 Y 010K 0031 1 XX >5 XX X 7214 B XX NH NH XXXXXXXXXX Y * X X XX XXXXXXXXXX
※サンプル文字列です
この時点で、名前などが見て取れるんだが、他の文字列にはどんな情報が入っているのか?
データフォーマットが分からないと、意味が分からないが・・・。
BCBPのデータフォーマット
こうした「搭乗券のバーコード」のデータ・フォーマットは、BCBP(BAR CODED BOARDING PASS)として規定されていた。
バーコード・ボーディングパス=BCBP。
仕様書は、IATAからpdfでゲット可能。
BAR CODED BOARDING PASS(BCBP) IMPLEMENTATION GUIDE
上記のpdfでフォーマットについての記載があるのは「4.2.2. Encoding one flight leg」の項。

注意点として、BCBPのフォーマットにはバージョンがある。
上記の仕様書は、ver5のもの。
BCBPの文字列の中にある「>」の後に続く文字がバージョン番号を示している。
M 1 TANAKA/TARO E XXXXXX HND SIN NH 0843 214 Y 010K 0031 1 XX >5 XX X 7214 B XX NH NH XXXXXXXXXX Y * X X XX XXXXXXXXXX
※サンプル文字列です
ANAのチケットのバージョン番号をみたら「>5」(ver5)とあったので、↑の仕様書でそのまま中身を把握できそう。
ということで、最近使った自分のチケット(ANA国際線/国内線)から、データの詳細を見てみる。
実際の搭乗券から読み取ってみたデータ
以下は、自分が今年になってから乗った国際線(PDF417)/国内線(QRコード)の搭乗券から読み取ったデータ。
(両方ともver5であった)
便名や名前などは、適当に文字を修正している。
そのほか「X」は、適当な修正候補がないので、とりあえず伏せ字とした箇所。
「-」は、「半角空白文字」が入っていたか、値が入ってなかった箇所。
| 項目 | 文字数 | 実際のチケット | 意味 |
|---|---|---|---|
| Format Code | 1 | M | [s]ingle leg か [m]ultiple legsか |
| Number of Legs Encoded | 1 | 1 | 記載されるレグ数 |
| Passenger Name | 20 | TANAKA/TARO | 氏名 |
| Electronic Ticket Indicator | 1 | E | [E]チケットを意味する |
| Operating carrier PNR Code | 7 | XXXXXX | PNRコード(予約番号) |
| From City Airport Code | 3 | HND | 出発地の空港コード |
| To City Airport Code | 3 | SIN | 目的地の空港コード |
| Operating carrier Designator | 3 | NH | 運行会社(NH=ANA) |
| Flight Number | 5 | 0843 | 便名 |
| Date of Flight (Julian Date) | 3 | 214 | 出発日(ユリウス通日) |
| Compartment Code | 1 | Y | 座席クラス |
| Seat Number | 4 | 010K | 座席番号 |
| Check-in Sequence Number | 5 | 0031 | チェックイン番号(連番) |
| Passenger Status | 1 | 1 | 乗客ステータス(定義不明) |
| Field Size of variable size field (Conditional + Airline item 4) | 2 | XX | 以降のデータサイズ |
| Beginning of version number | 1 | > | バージョン番号開始文字 |
| Version Number | 1 | 5 | BCBPバージョン |
| Field Size of following structured message – unique | 2 | XX | 以降のデータサイズ |
| Passenger Description | 1 | X | 乗客についての備考番号? |
| Source of check-in | 1 | – | チェックイン場所 |
| Source of Boarding Pass Issuance | 1 | – | 搭乗券の発行場所 |
| Date of Issue of Boarding Pass (Julian Date) | 4 | 7214 | 搭乗券の発行日(ユリウス通日) |
| Document Type | 1 | B | [B]ording Pass? |
| Airline Designator of boarding pass issuer | 3 | XX | 搭乗券の発行会社? |
| Baggage Tag Licence Plate Number (s) | 13 | – | バゲージタグの番号 |
| 1st Non-Consecutive Baggage Tag Licensce Plate Number | 13 | – | 1つ目の荷物の番号 |
| 2nd Non-Consecutive Baggage Tag Licensce Plate Number | 13 | – | 2つ目の荷物の番号 |
| Field Size of following structured message – repeated | 2 | – | 以降のデータサイズ |
| Airline Numeric Code | 3 | – | 航空会社番号 |
| Document Form/ Serial Number | 10 | – | 文書のシリアル番号 |
| Selectee indicator | 1 | – | なんかインジケータ |
| International Documentation Verification | 1 | – | なんか証明的な |
| Marketing carrier designator | 3 | NH | 販売元 |
| Frequent Flyer Airline Designator | 3 | NH | FFP会社 |
| Frequent Flyer Number | 16 | XXXXXXXXXX | マイル口座番号 |
| ID/AD Indicator | 1 | – | なんかインジケータ |
| Free Baggage Allow ance | 3 | – | 無料荷物の数 |
| Fast Track | 1 | Y | Fast Trackが使えるか? |
| For individual airline use | Var | X | 以降、セキュリティーデータ |
| Beginning of Security Data | 1 | X | – |
| Type of Security Data | 1 | X | – |
| Length of Security Data | 2 | XX | – |
| Security Data | 100 | XXXXXXXXXX | – |
※「文字数」の定義通り、半角空白で埋めてあったりする
※ユリウス通日は1/1からの通算日。例えば「7214」の場合、201[7]年の「214」日目という意味。3桁の場合は「年」なしで通算日のみ。
※データサイズを示す項などの数字は16進数で、例えば「D6」=「214」
※途中でデータシーケンスについていけず、放棄した箇所もあり
航空会社によって、使っている項目と使ってない項目があるっぽい。
ブッキングクラスとか書いてあるのかな?と思ったんだが、そうでもないようだった。
バゲージタグの番号が空白だったのは、なんでかな。
オンラインチェックインとかすると、荷物預ける前なので空白になるとかあるんだろうか。
ちょっと気になるのは、「Passenger Status」(乗客ステータス)かな。
どういう意味があるのか、ちょっと分からなかった。
「Fast Track」あたりも定義不明。
「Y」だと、ダメってことなのか?
どうなんだろう。
ちょっと国際線・国内線の1チケットずつしか確認してないので、定義が分かんないところがちょこちょこあった。
そんな感じ。



