Documentation

Everything you need to know about creating, signing, and distributing Apple Wallet passes with PassMaker.


Pass Structure

An Apple Wallet pass is a compressed ZIP archive (renamed to .pkpass) containing a JSON description, image assets, and a digital signature.

1pass.json

The core file defining the pass type, structure, content, and visual appearance.

2manifest.json

A JSON file containing SHA1 checksums for every file in the pass package.

3signature

A detached PKCS#7 digital signature of the manifest file, verifying the issuer's identity.

4Images

Standard assets like icon.png, logo.png, and strip.png (plus @2x and @3x variants).

Pass Types

Apple Wallet supports five distinct pass styles, each designed for a specific use case.

✈️

Boarding Pass

For flights, trains, and other transit. Displays origin, destination, and boarding information prominently.

🎟️

Event Ticket

For concerts, movies, and sporting events. Highlights the event name, venue, and seat details.

✂️

Coupon

For discounts and special offers. Focuses on the offer value and expiration date.

💳

Store Card

For loyalty programs and gift cards. Displays current balance or points.

🎫

Generic

For anything that doesn't fit the other categories, like gym memberships or coat check tickets.

Fields & Data

Passes display information using three main field types, each with a specific visual priority.

pass.json
{
  "boardingPass": {
    "primaryFields": [
      {
        "key": "origin",
        "label": "SAN FRANCISCO",
        "value": "SFO"
      }
    ],
    "secondaryFields": [
      {
        "key": "gate",
        "label": "GATE",
        "value": "A12"
      }
    ],
    "auxiliaryFields": [
      {
        "key": "seat",
        "label": "SEAT",
        "value": "4A"
      }
    ]
  }
}

Primary Fields

The most important information, displayed prominently at the top (e.g., Flight Number, Balance).

Secondary Fields

Supporting details, usually displayed in rows below the primary fields.

Auxiliary Fields

Additional info, often displayed in the last row or on the back of the pass.

Validation

To ensure your pass works correctly in Apple Wallet, it must pass several validation checks. Use our Validator tool to check your files.

  • Required Keys: passTypeIdentifier, teamIdentifier, serialNumber, etc.
  • Valid JSON: The pass.json file must be valid JSON with no syntax errors.
  • Asset Checksums: Every file in the package must have a corresponding SHA1 hash in manifest.json.
  • Valid Signature: The signature file must be a valid PKCS#7 signature of the manifest, signed by a valid Apple Developer certificate.