Can an iPhone be used as an NFC terminal to read Apple Wallet passes from another iPhone?

Hi all,

I'm working on a use case where a customer checks in at a point of service (e.g., a cafeteria or restaurant) using their Apple Wallet pass (e.g., a digital employee badge). In this scenario, we would like to use an iPhone (with a custom iOS app) as the NFC terminal to read the pass directly from the customer's iPhone over NFC.

I’m aware that "Tap to Pay on iPhone" allows NFC-based payment acceptance, but it’s unclear if similar functionality is available or permitted for reading access-type passes from another iPhone via NFC.

Key questions:

Is it technically possible for an iPhone to act as an NFC reader for a Wallet pass on another iPhone?

If not, is this restricted due to Secure Element isolation or protocol limitations?

Is there any Apple-supported path for building such a solution — or is certified external hardware (e.g., HID, Wavelynx) the only option?

I’ve reviewed the Core NFC and PassKit documentation but couldn't find a definitive answer.

Thanks in advance for your clarification!

Answered by Engineer in 832970022

It is technically possible. But like you surmised it is restricted due to Secure Element isolation.

Basic CoreNFC APIs do not support identity or payment related AIDs. But there is a new NFC & SE Platform for secure contactless transactions

Information here: NFC & SE Platform for secure contactless transactions

Before investing time and resources, first you should examine the "Requirements and availability" section to make sure these are available for use in your or your client's region, and your use case and company specifics are suitable. If it is, then you can follow the instructions at that document to apply for access to the API. Any information not clarified/present at this link will be provided once you request access and sign a confidentiality agreement. Details are in the "Requesting access to the NFC & SE Platform" section.

Technically, you will be using the CredentialSession APIs

We cannot answer whether this API would be suitable for your specific use case. You would need to examine the public documentation and decide whether this is going to satisfy your requirements or not.


Argun Tekant  Developer Technical Support

Accepted Answer

It is technically possible. But like you surmised it is restricted due to Secure Element isolation.

Basic CoreNFC APIs do not support identity or payment related AIDs. But there is a new NFC & SE Platform for secure contactless transactions

Information here: NFC & SE Platform for secure contactless transactions

Before investing time and resources, first you should examine the "Requirements and availability" section to make sure these are available for use in your or your client's region, and your use case and company specifics are suitable. If it is, then you can follow the instructions at that document to apply for access to the API. Any information not clarified/present at this link will be provided once you request access and sign a confidentiality agreement. Details are in the "Requesting access to the NFC & SE Platform" section.

Technically, you will be using the CredentialSession APIs

We cannot answer whether this API would be suitable for your specific use case. You would need to examine the public documentation and decide whether this is going to satisfy your requirements or not.


Argun Tekant  Developer Technical Support

Follow up question to this. I am trying to do something similar -- create an iOS app that train conductors will use, and they would need to scan people's transit cards in the app to check how much credit they have left on their transit card. Most people have set their transit cards on express mode (no need for biometric authentication).

My question is, using the NFC & SE Platform entitlement, can developers read transit cards without it requiring user authentication? Or does the user need to unlock their phone before scanning, even if it is set to express mode?

@kocaatli in old versions of iOS it was possible to negotiate a session with an Apple Wallet pass if it was manually selected:

https://youtu.be/FKwzPYBX4aY

@swakitaki it is possible to read transit cards without authentication. It depends on the issuer's implementation but here's an example:

https://github.com/kormax/apple-device-as-access-card

The NFC @ SE Platform entitlement is for creating a credential that would be served by an application different from Apple Wallet, as I understand it. If you want to offer an iOS app for train conductors to scan people's transit cards and managing the issuance of these cards, your best bet is to use an external reader like so:

https://youtube.com/shorts/csC_rloFr90

Can an iPhone be used as an NFC terminal to read Apple Wallet passes from another iPhone?
 
 
Q