PKPASS
Generated by scripts/gen-format-pages.py from docs/data/format-metadata/, FILE_FORMATS.csv and docs/formats-master.csv. Do not edit by hand: change the source, then run the script.
Apple Wallet Pass Preview.
At a glance
| Purpose | An Apple Wallet pass: a ZIP holding pass.json (the pass's fields, barcode and style), images, a manifest and a signature. |
| Extensions | .pkpass |
| Poka parser | poka-pkpass |
| Viewer | poka-tree-viewer |
| Depth tier | Parser with a shared viewer (see Depth tiers) |
| Breadth tier | B3 Core (see Breadth tiers) |
How much Poka reads
B3 Core. Only the main content type or types are decoded (for example geometry but not materials, layers or annotations, or only one version family). The list of gaps is substantial.
Confidence: medium (the reviewer read the code). Basis: Reviewed 2026-10-26: read parsers/poka-pkpass/src/main.rs (574 lines) and plugin.json. No unit tests or tests/samples.rs; the corpus has sample.pkpass, read by no test. Covers .pkpass. The tree reads pass.json: the pass style, organisation, description, logo text, serial number, dates and voided flag, the barcode (format and message), colours, the number of locations, and every visible field grouped by area (header, primary, secondary, auxiliary, back) as label: value; it lists the bundle files, the images present and whether manifest and signature exist. Judgement: B3: the pass's text content is decoded, but it is not drawn and its images and barcode are not shown.
What Poka does not read
- The pass is not drawn: no layout, colours applied or images (icon, logo, strip, thumbnail, background)
- The barcode is described, not drawn
- Localised strings (*.lproj/pass.strings) are not applied, so localised labels show their keys (judgement from the code)
- Date, number and currency formatting styles on fields are not applied
- Location coordinates, beacons, NFC and web-service details are not shown
- The manifest hashes and the signature are not verified
Libraries
Libraries Poka uses or has assessed for this format, with the status, licence and language the registry records.
- serde_json (used; MIT OR Apache-2.0; Rust)
- zip (used; MIT; Rust)
- pkpass (Dart) (candidate; EUPL-1.2; Dart; https://pub.dev/packages/pkpass) — Native Dart pass parser with checksum check, barcode and localisation support; does not verify the PKCS#7 signature.
- PassKitSharp (candidate; licence unconfirmed; C#/.NET; https://github.com/Redth/PassKitSharp) — Reads and writes PassKit files; README says incomplete, verifies manifest hashes only. No licence shown on repo page.
- kpkpass (candidate; licence unconfirmed; C++; https://github.com/KDE/kpkpass) — KDE Apple Wallet pass reader (Qt/QML API); repo uses REUSE layout but licence type not visible when fetched.
Sources
- parsers/poka-pkpass/src/main.rs
- parsers/poka-pkpass/plugin.json