💳 PHP class for creating passes for Wallet on iOS.
Latest commit 5bd717f Feb 7, 2017 @tschoffelen committed on GitHub Attempt at fixing issue #60
Failed to load latest commit information.
examples Clean up example files Apr 6, 2016
PKPass.php Attempt at fixing issue #60 Feb 7, 2017
composer.json Update composer.json Jul 1, 2016
readme.md Update readme.md Jul 1, 2016


PHP PKPass class for iOS Wallet

This class provides the functionality to create an Pass for Passbook in Apple's iOS 6 and newer on-the-fly. It creates, signs and packages the Pass as a .pkpass file according to Apple's documentation.


  • PHP 5.4
  • PHP ZIP Support (May be installed by default)
  • Access to filesystem (Script must be able to create temporary folders)



Run: $ composer require pkpass/pkpass

or add to your composer.json: "pkpass/pkpass": "dev-master"


Require PKPass.php file in your php files require('PKPass.php');


Please take a look at the example.php file for example usage. For more info on the JSON for the pass and how to style it, take a look at the docs at developers.apple.com. Another helpful PDF


Requesting the Pass Certificate

  1. Go to the iOS Provisioning portal
  2. Create a new Pass Type ID
  3. Request the certificate like shown
  4. Download the .cer file and drag it into Keychain Access
  5. Right click the certificate in Keychain Access and choose Export 'pass.<id>'…
  6. Choose a password and export the file to a folder

Getting the example.php sample to work

  1. Request the Pass certificate (.p12) and upload it to your server
  2. Set the correct path and password on line 6 and 7
  3. Download and import your WWDR Intermediate certificate to Keychain, export as .pem and set the correct path on line 8
  4. Change the passTypeIdentifier and teamIndentifier to the correct values, which can be found on the iOS Provisioning portal after clicking on 'Configure' next to the Pass ID, on line 15 and 17

After completing these steps, you should be ready to go. Upload all the files to your server and navigate to the address of the example.php file on your iPhone.

Support & documentation

Please read the instructions above and consult the Passbook Documentation before submitting tickets or requesting support.

Email me at tom [at] tomttb.com or tweet me @tschoffelen.

Send me a coffee

Like my work? Consider giving a small donation.