Skip to main content

Enabling NFC for Google Wallet Passes

How to provision Google Wallet NFC credentials without an NFC-Enabled Apple Certificate

Danny Allen avatar
Written by Danny Allen
Updated this week

If your PassKit account already has an NFC-enabled Apple Certificate uploaded, you don't need to do anything - Google Wallet NFC Credentials are automatically provisioned for you.

Introduction

By default, Google Wallet NFC credentials are automatically provisioned when your account has an NFC-enabled Apple Certificate uploaded.

This guide explains how to manually provision Google Wallet NFC credentials if your account does not have an NFC-enabled Apple Certificate.

This can be useful if:

  • You want to begin developing and testing your integration while waiting for Apple NFC credentials.

  • You only plan to enable NFC for Google Wallet users.

⚠️ Important: If you choose to only support Google Wallet, you’ll need to plan how you will handle iPhone users, since Apple Wallet requires its own NFC-enabled certificate.


Step 1 - Request NFC Signing Credentials

  1. In the PassKit portal, go to Account → Developer Tools.

  2. Click on NFC Signing Credentials.


Step 2 - Provide OTP for private key encryption

  • You’ll be prompted to enter a one-time password (OTP) to encrypt your private key.

  • Save this OTP securely — you’ll need it later to decrypt your private key after it’s emailed to you.


Step 3 - Download Credentials from Email

  • Check your email for the credentials package.

  • Follow the included instructions to securely download and encrypt your NFC credentials.


Step 4 - Enable NFC on Your Pass Template

⚠️ Important: This step can only be done via the API, not the web portal

Step 4.1 - Get Your Pass Template ID

  • Find the Pass Template ID from the Portal URL

Step 4.2 - Retrieve the Full Template Record

{ 
"id": "xxxx",
...
"nfcEnabled": {
"enabled": false,
"payload": ""
}
...
}

Step 4.3 - Update the NFC Configuration

  • Change enabled to true and add your NFC payload:

{ 
"id": "xxxx",
...
"nfcEnabled": {
"enabled": true,
"payload": "${pid}"
}
...
}
  • Replace ${pid} with your desired NFC Payload.

  • In the above example, the payload is set to the unique PassKit ID for the pass record.

Step 4.4 - Update the Pass Template via API

⚠️ Important: Send the entire template object you retrieved in Step 4.2 with your edits applied.

  • Do not just send the nfcEnabled block — the update call replaces the whole template.

Step 4.5 - Create a New Pass Record

  • Generate a new pass record from your updated template.

  • The pass will now be NFC-enabled for Google Wallet

  • Remember: Apple Wallet passes will only support NFC if you’ve uploaded an NFC-enabled Apple Certificate to your project.


Step 5 - Verify on Android Device

  1. Install the pass on a device with Google Wallet.

  2. Use a SmartTap-enabled NFC reader configured with your Google Pay Collector ID and Private Key.

  3. Confirm that the reader can successfully decrypt the NFC payload.


Additional Resources

Did this answer your question?