NFC Wallet pass glossary
This glossary defines the core terms you will meet when setting up or reading contactless passes in Apple Wallet and Google Wallet, with links to the full guides and the nfcpasses.com demo.
Passes, protocols, and readers
Apple Wallet NFC pass
An Apple Wallet NFC pass is a contactless pass in Apple Wallet that lets users tap at the register to check in—rather than providing a phone number or physical card—and passes a near-field communication (NFC) payload from the device to an Apple Pay terminal. In the pass file, the message payload transmitted to the terminal can be no more than 64 bytes (longer messages are truncated by the system). Read more in How to read an Apple Wallet NFC pass and An NFC loyalty card for your café.
Apple VAS (Value Added Services)
Apple Pay Value Added Services (VAS) is the protocol Apple names for contactless passes, which can be implemented on contactless terminals and uses NFC to communicate with supported Apple devices. It lets customers tap to check in separately from a transaction or combine payment and loyalty check-in in a single tap when paying with Apple Pay in stores. Read more in Apple VAS and ECP explained.
ECP (Enhanced Contactless Polling)
Enhanced Contactless Polling (ECP) is the name NFC chip and reader vendors give the Apple reader feature their hardware supports: NXP lists "Apple® Enhanced Contactless Polling" on its NFC controller page, and PassNinja offers reader certification services using the labels ECP1 (Apple VAS) and ECP2 (Apple Access). In Apple's description of the contactless-pass experience, customers hold their iPhone to the NFC reader, waking the device and instantly pulling up the relevant pass from Apple Wallet. Read more in Apple VAS and ECP explained.
NFC entitlement (Apple)
Apple's permission to add NFC to a Wallet pass: "Adding NFC to a Pass requires a special entitlement issued by Apple", and a pass carrying an NFC payload must be signed with an Apple Value Added Services (Apple VAS) certificate before Wallet accepts it. Apple is selective about who gets one. A business doesn't need its own: PassNinja signs its customers' NFC passes itself, under its own entitlement, so they skip Apple's approval process. A business that wants its own applies to Apple at developer.apple.com/contact/passkit, which typically takes several weeks. Read more in How to read an Apple Wallet NFC pass.
Google Wallet Smart Tap
Smart Tap is Google's contactless technology that lets customers redeem passes in their wallet by holding their phone to a compatible NFC terminal. To set up Smart Tap, developers configure their passes to be redeemable via the Smart Tap protocol and either establish a relationship with a Smart Tap capable terminal provider or confirm that the existing terminals they are using are compatible with the Smart Tap protocol. PassNinja issues Google Wallet passes as well as Apple Wallet passes. Read more in Google Smart Tap vs Apple VAS.
VAS reader
A VAS reader is a contactless NFC terminal that implements Apple Pay Value Added Services and receives the NFC payload a device passes from an Apple Wallet pass; for store payment terminals, Apple notes that the terminals must already accept Apple Pay and be certified for VAS. You can choose from PassNinja's list of NFC reading hardware that works with PassNinja-issued passes (including ID TECH's Kiosk V; the VP3300 isn't on that list). In a self-managed key setup, you store the private key in your NFC / VAS reader and put the public key into the pass.json for your pass; or, when you order a Socket Mobile S550 from PassNinja and have existing pass templates created in your account, PassNinja pre-configures that reader with the credentials that allow the reader to work out of the box with your passes. Read more in How to read an Apple Wallet NFC pass.
WebHID
The WebHID API is a browser capability that provides a way to implement device-specific logic in JavaScript: initial access to a human interface device (HID) requires the user to take active steps to select that device in response to a user prompt, while previously granted devices can be retrieved via navigator.hid.getDevices(). In MDN's compatibility data, Chrome added support in version 89, Edge and Opera mirror Chrome, and Firefox, Safari, and Chrome on Android do not support it. Read more in VP3300 WebHID setup.
ID TECH VP3300
The ID TECH VP3300 is a contactless reader that, along with traditional EMV payments, supports mobile loyalty programs such as Apple VAS and Google SmartTap 2.1. The nfcpasses.com demo is tested with the VP3300 USB on firmware NEO 1.01.182. Read more in VP3300 WebHID setup.
Pass type identifier
In an Apple Wallet pass (Pass), passTypeIdentifier is the pass type identifier registered with Apple, and its value needs to be the same as the distribution certificate that signs the pass. Read more in How to read an Apple Wallet NFC pass.
Encryption public key
In an Apple Wallet pass's nfc dictionary (Pass.NFC), encryptionPublicKey is the public encryption key that the Value Added Services protocol uses. In a self-managed key setup, you put this public key into the pass.json for your pass and store the matching private key in your NFC / VAS reader—or use the S550 PassNinja sets up for you when you order it with pass templates in your account, as described under VAS reader above. Read more in How to read an Apple Wallet NFC pass and Apple VAS and ECP explained.
Sources
- PassNinja — Socket Mobile S550 NFC reader
- Loyalty passes — Apple Wallet — Apple Developer
- Pass — Apple Developer Documentation
- Pass.NFC — Apple Developer Documentation
- How Can I Enable NFC Functionality in an Apple Wallet Pass? — Apple Developer Forums
- PassNinja — Create and deploy a digital Wallet pass in 10 minutes
- PassNinja — Services
- PN7150X NFC controller with support for Apple ECP — NXP
- PassNinja — Apple Wallet and Google Wallet passes
- PassNinja — NFC reader certification
- PassNinja — How to create Apple Wallet NFC encryption keys
- Google Wallet — Smart Tap overview
- ID TECH — Recertifies contactless kernels for the VP3300/VP8300
- Chrome for Developers — Connecting to uncommon HID devices
- MDN Browser Compatibility Data — WebHID API (
api.HID)