Passbook

From The iPhone Wiki
Jump to: navigation, search

Passbook is an application in iOS that allows users to store coupons, boarding passes, and other forms of mobile payments. It was announced by Apple at the 2012 Apple Worldwide Developers Conference on June 11, 2012 and finally released with iOS 6 on September 19, 2012.

Features

The Passbook application displays 2D barcodes of following types:

  • Aztec
  • PDF417
  • QR

Each digital coupon or ticket is known as a "pass". When the user launches Passbook for the first time, they will be redirected to the App Store to download applications with Passbook integration. Passes can also be added using a webbrowser and the built-in Mail application as well, along with the corresponding OS X applications in OS X Mountain Lion.

Although the application is available in iOS 6 or later, it is currently only available on iPhone and iPod touch, but not on iPad.

Passbook has the following features

  • Displays 2D barcodes of following types: Aztec, PDF417 and QR.
  • Triggered by location.
  • Triggered by time of pass.
  • Can be updated by the pass provider or user himself.

Passbook Passes

Pass files are stored on disk as a zipped package with the pkpass file extension. The top level of the package contains the following files:

  • background.png

The image displayed as the background of the front of the pass.

  • footer.png

The image displayed on the front of the pass near the barcode.

  • icon.png

The pass’s icon. This is displayed in notifications and in emails that have a pass attached, and on the lock screen. When it is displayed, the icon gets a shine effect and rounded corners.

  • logo.png

The image displayed on the front of the pass in the top left.

  • manifest.json

A JSON dictionary. Each key is the path to a file (relative to the top level of the bundle) and the key’s value is the SHA-1 hash for that file. Every file in the bundle appears in the manifest, except for the manifest itself and the signature.

  • pass.json

A JSON (JavaScript Object Notation) dictionary that defines the pass. Its contents are described in detail in “Top-Level Keys.” Example: http://pastebin.com/y3Sgc3r6

  • signature

A detached PKCS#7 signature of the manifest.json file.

  • strip.png

The image displayed behind the primary fields on the front of the pass.

  • thumbnail.png

An additional image displayed on the front of the pass. For example, on a membership card, the thumbnail could be used to a picture of the cardholder.

Note: All of the pass’s images are loaded using standard UIImage image-loading methods. This means, for example, the file name of high resolution (retina) version of the image ends with @2x.png.

Transportation Services on Passbook

The following services currently support passbook passes.

  • Air China
  • Air Canada
  • American Airlines
  • Lufthansa
  • Porter Airlines
  • United Airlines
  • Virgin Australia Airlines
  • Amtrak

Loyalty Cards

The following loyalty cards are available on Passbook.

  • Gyft
  • Sephora
  • Staples
  • Starbucks
  • Target Corporation
  • Valpak
  • Walgreens

Online Passbook Creators

The following websites allow you to create Passbook content.

Name URL
PassKit http://passk.it & https://create.passkit.com
Passbook Generator http://www.passbookgenerator.com
Passfu http://passfu.com
iPass.pk http://ipass.pk
PassPages http://passpages.com
Passslot http://passslot.com
PassbookInfo https://passbookinfo.com/convert-card-to-passbook/

iPhone Apps

The following Apps allow you to create Passbook passes.

Software

To generate or validate Passbook passes, there are many tools, libs and classes in various programming languages available.

Name Language License URL
passbook Ruby MIT https://github.com/frozon/passbook
Passbook Ruby MIT https://github.com/mattt/passbook_rails_example
passbook Python MIT https://github.com/devartis/passbook
PHP-Passkit PHP N/A https://github.com/tschoffelen/PHP-Passkit
passkit PHP N/A https://github.com/laksgandikota/passkit
passkit.php PHP MIT https://github.com/SimonWaldherr/passkit.php
PassFactory.js node.JS MIT https://github.com/jetheis/PassFactory.js
jpasskit Java Apache https://github.com/bitzeche/jpasskit
passbook PHP MIT https://github.com/skyzyx/passbook
dotnet-passbook C# MIT https://github.com/tomasmcguinness/dotnet-passbook