NFC enabled prepaid reward card

As part of our mobile app for Electrical Vehicle (EV) charging, we are creating a NFC enabled prepaid reward card. Can you help us in understanding following data flow so that we can use this pass in our application in conjunction with charge station NFC reader and our backend server

1. We are able to create the Pass and add it in Apple Wallet. However the NFC reader is not able to read this pass. Is there anything else required to be done in order to enable this card for NFC data exchange?

2. Once exchanged via NFC, the reader is expected to send this data to our server for validation. We are unable to find any documentation on apple developer site on this data exchange front. Can you help us in understanding following

2.1 What data is exchanged over NFC for our pass? We are hoping data from pass.json is passed over NFC to the reader. Can we get a reference of which all data is exchanged over NFC? Is the exchange data encrypted?

2.2 As part of our use case, NFC reader is expected to pass this data to our backend server for validation. We are hoping that if any of the data from pass.json is exchanged over NFC than that data we shall be able to use to validate it on our backend. Can you please provide any documentation pointers for us to get this done.

2.3 After reading the pass data over NFC, is NFC reader required to talk to apple server for further decryption of data received via NFC?

Replies

Did you apply for and receive an NFC-certificate account upgrade?

If not, you won't be able to create passes that will load into Apple Wallet and interact with NFC terminals.


Have a look at the following documentation on NFC passes in the Wallet Developer Guide.


The NFC-enabled pass will not function without a terminal compatible with the Apple value added services protocol. Each NFC-enabled pass contains a 64-byte data element which can identify a customer. This data element can represent a rewards card for a loyalty program, a stored value card, or a ticket. Apple Wallet only transmits this data element to an NFC-enabled terminal that is compatible with the Apple value added services protocol.


NFC-Enabled Pass Keys

NFC-enabled pass keys support sending reward card information as part of an Apple Pay transaction.

Important: NFC-enabled pass keys are only supported in passes that contain an Enhanced Passbook/NFC certificate. For more information, contact merchant support at https://developer.apple.com/contact/passkit/.


Passes can send reward card information to a terminal as part of an Apple Pay transaction. This feature requires a payment terminal that supports NFC-entitled passes. Specifically, the terminal must implement the Value Added Services Protocol.

Passes provide the required information using the nfc key. The value of this key is a dictionary containing the keys described in NFC Dictionary Keys. This functionality allows passes to act as the user’s credentials in the context of the NFC Value Added Service Protocol. It is available only for storeCard style passes.

Key name

Type

Description

nfc

nfc dictionary

Optional. Information used for Value Added Service Protocol transactions. For this dictionary’s keys, see NFC Dictionary Keys.

Available in iOS 9.0.



NFC Dictionary Keys

Information about the NFC payload passed to an Apple Pay terminal.

Key name

Type

Description

message

string

Required. The payload to be transmitted to the Apple Pay terminal. Must be 64 bytes or less. Messages longer than 64 bytes are truncated by the system.

encryptionPublicKey

string

Optional. The public encryption key used by the Value Added Services protocol. Use a Base64 encoded X.509 SubjectPublicKeyInfo structure containing a ECDH public key for group P256.

Thanks FlonSolutions

Tag: FlonSolutions

Hi @FlonSolutions


Thank you for the explanation.


We are done with the following:

1.) Creating Pass in Apple wallet of type Store card

2.) RFID reader was able to receive the NFC message data in encrypted form.

3.) Every read attempt from the reader results into a different tag value:

eg: C8F8420FC06AE683B4A82767F66DC77542432F0883135FA1F678E42382D02F7660AEFE90A6452FE0EDBB8972860CFA9E99C391E7712DFC3FF1DC814795851F7B9C2C7B3FEF50ED==?


Question:

How to decrypt the tag to get the StoreCard message value out of it?


Any help will be appreciated.


Thanks

Happy New Year!

Did you solve the problem at last?

Did you find a solution to solve?

Work under the Access control system - have the same problem.