Boarding Pass Barcode Decoder

Decode boarding pass barcodes to read passenger, flight and seat details

BCBP

Our free boarding pass barcode decoder reads IATA BCBP (Bar Coded Boarding Pass) data from airline QR, Aztec, Data Matrix or PDF417 codes. It extracts available passenger names, flight numbers, origin and destination airports, travel dates and seat details from the encoded boarding-pass record.

Need to decode BCBP barcodes in your app?

Copy the example below to get started using our free Barcode Parser API. No API key needed.

cURL Node.js Python C# Go PHP Java HTML
barcode=$'M2LASTNAME/FIRSTNAME  EABC123 YULFRAAC 0834 226F001A0025 100DEF456 FRAGVALH 3664 227C012C0002 100'
curl -sS -G https://parser.orcascan.com/ \
    --data-urlencode "barcode=$barcode" \
    --data-urlencode 'type=bcbp'
// Node.js 18+
var barcode = "M2LASTNAME/FIRSTNAME  EABC123 YULFRAAC 0834 226F001A0025 100DEF456 FRAGVALH 3664 227C012C0002 100";
var url = "https://parser.orcascan.com/?barcode=" + encodeURIComponent(barcode) + "&type=bcbp";

fetch(url)
    .then(function(res) { return res.json(); })
    .then(console.log);
import json
from urllib.parse import quote
from urllib.request import urlopen

barcode = "M2LASTNAME/FIRSTNAME  EABC123 YULFRAAC 0834 226F001A0025 100DEF456 FRAGVALH 3664 227C012C0002 100"
url = "https://parser.orcascan.com/?barcode=" + quote(barcode, safe="") + "&type=bcbp"

with urlopen(url) as response:
    print(json.load(response))
using System;
using System.Net.Http;

var barcode = "M2LASTNAME/FIRSTNAME  EABC123 YULFRAAC 0834 226F001A0025 100DEF456 FRAGVALH 3664 227C012C0002 100";
var url = "https://parser.orcascan.com/?barcode=" + Uri.EscapeDataString(barcode) + "&type=bcbp";

using var client = new HttpClient();
Console.WriteLine(await client.GetStringAsync(url));
package main

import (
    "io"
    "net/http"
    "net/url"
    "os"
)

func main() {
    barcode := "M2LASTNAME/FIRSTNAME  EABC123 YULFRAAC 0834 226F001A0025 100DEF456 FRAGVALH 3664 227C012C0002 100"
    endpoint := "https://parser.orcascan.com/?barcode=" + url.QueryEscape(barcode) + "&type=bcbp"
    res, err := http.Get(endpoint)
    if err != nil { panic(err) }
    defer res.Body.Close()
    io.Copy(os.Stdout, res.Body)
}
<?php
$barcode = "M2LASTNAME/FIRSTNAME  EABC123 YULFRAAC 0834 226F001A0025 100DEF456 FRAGVALH 3664 227C012C0002 100";
$url = "https://parser.orcascan.com/?barcode=" . rawurlencode($barcode) . "&type=bcbp";

echo file_get_contents($url);
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.*;
import java.nio.charset.StandardCharsets;

class BarcodeParser {
    public static void main(String[] args) throws Exception {
        String barcode = "M2LASTNAME/FIRSTNAME  EABC123 YULFRAAC 0834 226F001A0025 100DEF456 FRAGVALH 3664 227C012C0002 100";
        String url = "https://parser.orcascan.com/?barcode=" +
            URLEncoder.encode(barcode, StandardCharsets.UTF_8) + "&type=bcbp";
        var request = HttpRequest.newBuilder(URI.create(url)).build();
        var response = HttpClient.newHttpClient().send(
            request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.body());
    }
}
<!doctype html>
<html>
<body>
<pre id="result">Loading...</pre>
<script>
var barcode = "M2LASTNAME/FIRSTNAME  EABC123 YULFRAAC 0834 226F001A0025 100DEF456 FRAGVALH 3664 227C012C0002 100";
var url = "https://parser.orcascan.com/?barcode=" + encodeURIComponent(barcode) + "&type=bcbp";
fetch(url)
    .then(function(res) { return res.json(); })
    .then(function(json) {
        document.getElementById("result").textContent = JSON.stringify(json, null, 2);
    });
</script>
</body>
</html>

Need to decode lots of BCBP barcodes?

Import a spreadsheet of barcodes and automatically extract their data into separate columns.

Decode barcodes in bulk →

Need to extract BCBP data as you scan?

Scan barcodes with your phone and automatically capture their data in a shared spreadsheet.

Scan with your phone →

Frequently asked questions

What does the first M mean in an IATA boarding pass barcode?

In the commonly used IATA BCBP format, the initial M is the format code. The following character gives the number of flight legs encoded in the mandatory data.

Which fields can an IATA BCBP decoder extract?

The standard record can include passenger name, reservation reference, origin and destination, carrier, flight number, Julian flight date, cabin class and seat details.

Can one boarding pass barcode encode connecting flights?

Yes. IATA BCBP supports multiple flight legs in one record. A decoder uses the leg count and fixed-length fields to separate the segments.

Need help tracking BCBP barcodes?

We've helped organizations of all sizes tackle barcode challenges, chat with our team live for help to find a solution.