Wallet

From The Apple Wiki

Wallet (formerly 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 11 June 2012 (2012-06-11) and finally released with iOS 6 on 19 September 2012 (2012-09-19).

Features

The Wallet application displays 2D barcodes of following types:

  • Aztec
  • PDF417
  • QR

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

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

Wallet 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.

Wallet Passes

Pass files are stored on disk as a zip file 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 Wallet

The following services currently support Wallet 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 Wallet.

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

Online Pass Creators

The following websites allow you to create Wallet content.

Name URL
PassKit https://create.passkit.com/
PassKit Visual Designer https://pkvd.app/
PassSlot https://passslot.com/
PassSource https://www.passsource.com/info

iPhone Apps

The following Apps allow you to create Wallet passes.

Software

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

Language Name License URL
C# dotnet-passbook MIT https://github.com/tomasmcguinness/dotnet-passbook
PassKitHelper MIT https://github.com/justdmitry/PassKitHelper
Java jpasskit Apache-2.0 https://github.com/bitzeche/jpasskit
passkit4j Apache-2.0 https://github.com/ryantenney/passkit4j
JavaScript PassGenerator MIT https://github.com/ihiroshi27/passgenerator-js
passkit-generator MIT https://github.com/alexandercerutti/passkit-generator
PHP PassGenerator GPL-3.0 https://github.com/thenextweb/passgenerator
passkit.php MIT https://github.com/SimonWaldherr/passkit.php
php-pkpass MIT https://github.com/includable/php-pkpass
Python applepassgenerator MIT https://github.com/twopointone/applepassgenerator
passbook MIT https://github.com/devartis/passbook
Ruby passbook MIT https://github.com/frozon/passbook
passkit MIT https://github.com/coorasse/passkit
Swift PassEncoder MIT https://github.com/aydenp/PassEncoder
WalletPassGenerator MIT https://github.com/ljw980105/WalletPassGenerator

Bank cards and services

In addition to storing passes, Wallet hosts also Apple Pay-enabled bank cards, access passes, public transit cards and government-issued ID cards.