Skip to main content
All CollectionsAcceptUsing NFC
How do I provision Google Pay NFC credentials?
How do I provision Google Pay NFC credentials?

For an account that does not have an NFC enabled Apple Pass Certificate?

Danny Allen avatar
Written by Danny Allen
Updated over a year ago

If you have uploaded an NFC enabled Apple Certificate then this article doesn't apply, we automatically provision the Google credentials when the

NFC enabled Apple Certificate is used.

This article will show you how to provision Google Pay NFC credentials for an account that does not have an NFC enabled Apple Pass Certificate.

Step 1 - Get NFC Signing Credentials (Account >> Developer Tools):

Step 2 - Provide OTP for private key encryption:

Note: you need this when decrypting your private key after it’s emailed to you.

Step 3 - Check email and follow instructions to download and encrypt credentials:

Step 4 - Enable your Pass Template Design for NFC:

  • This is only possible via the API (not web portal).

  • Grab your template ID from the portal URL:

{ 
"id": "xxxx",
...
"nfcEnabled": {
"enabled": true,
"payload": "${pid}"
}
...
}
  • Replace the NFC payload with whatever you need the NFC payload to be. In the above case it's set to the unique PassKit ID for the pass record.

  • Use the "Update Pass Template" API method to update the pass template (make sure to use the whole object from the previous step this replaces the existing template): https://docs.passkit.io/common/templates/#operation/Templates_updateTemplate

  • Create a new pass record and notice it's now NFC enabled for Google Pay (please note that Apple Wallet will only work if there is an NFC enabled Apple Certificate attached to the project):

  • Verify all is working as expected by installing the pass in a Google Pay device and use a SmartTap enabled NFC reader configured with the Google Pay Collector ID and Private Key to read the pass and decrypt the NFC payload.

Note - Please have a look at this video for authenticating against the PassKit API.

Did this answer your question?