Basic functionality requirements

To integrate with Google Wallet, the following basic functionalities must be implemented.

EMV certification

Terminals need to meet EMVCo Level 1 and 2 certification. For more details, see the EMVCo website.

Offline data authentication

To allow users quick passage through a terminal, transit terminals must support Offline data authentication (ODA). ODA is a cryptographic check that allows a payment terminal to perform offline authentication with a contactless payment card or mobile device. ODA provides a high level of trust that the card presented is genuine. It allows the transit gate to open without a need for the user to wait for the network to process the payment. ODA is also used when transit terminals are intermittently offline. When the transit terminal is back online, the payment is processed.

The ODA feature is ideal for transit stations that have terminals that aren't always online or have less-reliable connections. It's also used when payment processing time might slow the commuter down as they enter the gate. The gates usually open within 500 milliseconds of when the user taps their mobile device.

To use ODA, the transit terminal needs to be configured correctly. Contact your payment processor or system integrator for details on how to configure the terminals.

Google Wallet supports ODA for the following networks:

  • Visa
  • Mastercard
  • Amex

Polling and card clash

Physical NFC cards have a static UID. However, all Android mobile devices have a dynamic UID that changes on every transaction. This adds a level of privacy for users because it prevents tracking, but it can cause a "card clash," which is when transit terminals recognize more than one card in the NFC field.

As a user approaches a terminal with their phone, the NFC field strength increases and their device might start a transaction before the field is strong and stable enough to establish a connection. If the phone loses connection, it stops and retries the transaction. This causes the mobile device UID to change, and if the terminal is configured with card clash logic, it might falsely recognize more than one UID in a short span and stops the transaction. This situation is exacerbated when terminals with card clash logic have terminal polling speeds that are too high. To resolve this situation, either disable the UID card clash logic or lower the polling speed of the terminal.

AID select, PPSE, and ePPSE

For terminals that support both open loop and closed loop cards, it's best to set them up in the following order:

  1. All the closed loop cards that use AID select first.
  2. All open loop cards that use PPSE.


ePPSE is a new specification from EMVCo that helps provide information from the terminal to the mobile device about the type of transaction right before the transaction occurs. This allows the phone to choose a specific payment card, predefined by the user, for that particular type of transaction. For transit, this could mean setting a default card for transit, which would override the default payment card, when tapped on a transit terminal.

Google Wallet does not currently support ePPSE, however if you are interested in enabling ePPSE for transit, please indicate that when you submit the open loop transit form to Google Wallet.