glebmachine / bcbp

Encoding/decoding library for the IATA Bar Coded Boarding Pass

Home Page:https://www.npmjs.com/package/bcbp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status

BCBP

Encoding/decoding library for the IATA Bar Coded Boarding Pass

  • Supports version 6 of the BCBP standard
  • Supports any number of legs

Getting started

Installation

Add BCBP to your project by executing npm install bcbp.

Usage

Here's an example of basic usage:

const decode = require("bcbp").decode;

let output = decode("M1DESMARAIS/LUC       EABC123 YULFRAAC 0834 226F001A0025 100");

console.log(output.passengerName); // DESMARAIS/LUC

User guide

.encode(object)

Converts an object to a BCBP string. Any of the following parameters can be skipped (except legs).

Object

Name Description Example values
passengerName Passenger Name
  • DESMARAIS/LUC
  • DOE/JOHN
passengerDescription Passenger Description
  • 0 - Adult
  • 1 - Male
  • 2 - Female
  • 3 - Child
  • 4 - Infant
  • 5 - No passenger (cabin baggage)
  • 6 - Adult travelling with infant
  • 7 - Unaccompanied minor
checkInSource Source of check-in
  • W - Web
  • K - Airport Kiosk
  • R - Remote or Off Site Kiosk
  • M - Mobile Device
  • O - Airport Agent
  • T - Town Agent
  • V - Third Party Vendor
boardingPassIssuanceSource Source of Boarding Pass Issuance
  • W - Web
  • K - Airport Kiosk
  • X - Transfer Kiosk
  • R - Remote or Off Site Kiosk
  • M - Mobile Device
  • O - Airport Agent
  • T - Town Agent
  • V - Third Party Vendor
issuanceDate Date of Issue of Boarding Pass
  • 6225
  • ISO 8601 formatted string
  • Moment.js object
  • JavaScript date object
documentType Document Type
  • B - Boarding Pass
  • I - Itinery Receipt
boardingPassIssuerDesignator Airline Designator of boarding pass issuer
  • AC
baggageTagNumber Baggage Tag Licence Plate Number(s)
  • 0014123456003
firstBaggageTagNumber 1st Non-Consecutive Baggage Tag Licence Plate Number
  • 0014123456003
secondBaggageTagNumber 2nd Non-Consecutive Baggage Tag Licence Plate Number
  • 0014123456003
securityDataType Type of Security Data
  • 1
securityData Security Data
  • GIWVC5EH7JNT...
legs Repeatable legs data
  • Array - See table below

Legs

Any of the following parameters can be skipped.

Name Description Example values
operatingCarrierPNR Operating carrier PNR Code
  • ABC123
departureAirport From City Airport Code
  • YUL
arrivalAirport To City Airport Code
  • FRA
operatingCarrierDesignator Operating carrier Designator
  • AC
flightNumber Flight Number
  • 0834
flightDate Date of Flight
  • 226
  • ISO 8601 formatted string
  • Moment.js object
  • JavaScript date object
compartmentCode Compartment Code
  • F
seatNumber Seat Number
  • 001A
checkInSequenceNumber Check-in Sequence Number
  • 0025
passengerStatus Passenger Status
  • 0 - Ticket issuance/passenger not checked in
  • 1 - Ticket issuance/passenger checked in
  • 2 - Bag checked/passenger not checked in
  • 3 - Bag checked/passenger checked in
  • 4 - Passenger passed security check
  • 5 - Passenger passed security gate exit (coupon used)
  • 6 - Transit
  • 7 - Standby
  • 8 - Boarding data revalidation done
  • 9 - Original boarding line used at time of ticket issuance
  • A - Up- or down-grading required at close out
airlineNumericCode Airline Numeric Code
  • 014
serialNumber Document Form/Serial Number
  • 1234567890
selecteeIndicator Selectee indicator
  • 0
internationalDocumentationVerification International Documentation Verification
  • 0 - Travel document verification not required
  • 1 - Travel document verification required
  • 2 - Travel document verification performed
marketingCarrierDesignator Marketing carrier designator
  • AC
frequentFlyerAirlineDesignator Frequent Flyer Airline Designator
  • AC
frequentFlyerNumber Frequent Flyer Number
  • 1234567890123
idIndicator ID/AD Indicator
  • 0
freeBaggageAllowance Free Baggage Allowance
  • 20K
fastTrack Fast Track
  • Y
  • N
  • true
  • false
airlineInfo For individual airline use
  • LX58Z

Demo

let output = encode({
	passengerName: "DESMARAIS/LUC",
	legs: [
		{
			operatingCarrierPNR: "ABC123",
			departureAirport: "YUL",
			arrivalAirport: "FRA",
			operatingCarrierDesignator: "AC",
			flightNumber: "0834",
			flightDate: "226",
			compartmentCode: "F",
			seatNumber: "001A",
			checkInSequenceNumber: "0025",
			passengerStatus: "1",
		}
	]
});

console.log(output); // M1DESMARAIS/LUC       EABC123 YULFRAAC 0834 226F001A0025 106>60000

.decode(string)

Converts a BCBP string to an object. The returned object uses the same keys as .encode() (see the above tables).

Demo

let output = decode("M1DESMARAIS/LUC       EABC123 YULFRAAC 0834 226F001A0025 106>60000");

console.log(output);
/*
{
	passengerName: 'DESMARAIS/LUC',
	legs: [
		{
			operatingCarrierPNR: 'ABC123',
			departureAirport: 'YUL',
			arrivalAirport: 'FRA',
			operatingCarrierDesignator: 'AC',
			flightNumber: '0834',
			flightDate: '2018-08-14T00:00:00.000Z',
			compartmentCode: 'F',
			seatNumber: '001A',
			checkInSequenceNumber: '0025',
			passengerStatus: '1'
		}
	],
}
*/

License

GNU General Public License v3.0

About

Encoding/decoding library for the IATA Bar Coded Boarding Pass

https://www.npmjs.com/package/bcbp

License:GNU General Public License v3.0


Languages

Language:JavaScript 100.0%