Search code examples
javaandroidkotlinnfcgoogle-pay

Can't read Google Pay Pass event card through another phone's NFC reader


I need to make an app that is able to read the Google Pay Pass event ticket through NFC. But I can't find any way how to deal with it. I saw some top apps in Google Play, as PassWallet and Passes, which works with such event tickets.

But they all could add a new ticket through scanning barcode only, not through NFC touch. I tried to open a ticket in Google Pay app and read it through another phone's NFC reader but didn't receive any information about the ticket, I always receive my default credit card info even when I open needed card.

So my question is that is it possible to read Google Pay Pass event ticket through another phone's NFC, as in the picture below?

If yes, could you share with me some example codes on how to do it?


Solution

  • Yes it is possible.

    For a Google Pay issued pass the pass must be saved to google pay on the mobile device and that passes class must be set to enable smart tap and the pass itself must have the smartTapRedemptionValue field set as below:

    {
     ...
     "smartTapRedemptionValue": "Value to Transmit",
     ...
    }
    

    The device acting as the terminal (reads the pass) must implement the Smart Tap Protocol and present the collector id, and signed payload to the mobile device to authenticate the terminal and send passes that it can redeem.

    The passes class also has the field redemptionIssuers can specify which terminal's collector id can redeem it.

    In order to implement Smart Tap Protocol you can request access to the NDA protected docs via a form and that has the details on how to configure a device acting as a terminal to read passes.

    There are also already certified supported terminal providers available.