Release notes

  • This page documents major changes to the Google Wallet Smart Tap protocol, organized by date.

  • Updates include protocol simplifications, new features like transit passes, and revised test tools and procedures.

  • The page also provides a history of draft documentation for previous Smart Tap 2.1 protocol versions.

  • Developers can find details on changes such as new service object types, updated merchant apps, and revised test configurations.

  • Key information for testing and certification, including ADB controls and required test suites, is also included.

This page lists the major changes to the Google Wallet Smart Tap protocol. The release notes are ordered and identified by date, and include descriptions of the changes.

2021-10-01

  • Simplified the site structure
  • Clarified that the terminal must support NFC A and NFC B
  • Clarified that the terminal must comply with ISO/IEC 14443 and ISO/IEC 7816-4
  • Clarified that the terminal must take special care when performing automatic polling.
  • Published a new version of the merchant app: 2.7.210610
  • Removed the Terminal app, refer to the sample terminal code for ideas on how a terminal should work
  • Removed the test config files, now tests are preloaded into the merchant app
  • Added the default private test key as a separate file
  • Greatly reduced the number of tests in the merchant app while keeping the same coverage
  • Added tests to exercise the key version and the select OSE response optional fields
  • Made tests more lenient when the are multiple accepted terminal behaviors
  • Added checks in the merchant app to verify the NFC configuration
  • Defined new Google Wallet tests for which we require video proof
  • Added extra details to the reference documentation

2021-02-07

  • Published new version of Smart Tap test tools:
    • merchantapp -> 2.6.32
    • testconfigs -> 20210207
  • Reduced the number of service object records used in tests that stress Get Additional Data (accommodates the fact that the max APDU size was reduced from 253 to 251 bytes)

2020-07-10

  • Published new version of Smart Tap test tools:
    • merchantapp -> 2.6.31
    • terminalapp -> 1.6.25
    • testconfigs -> 20200710
  • Deprecated tests 10.27 and 16.30
  • Made validation independent of zlib support
  • Fixed validation to allow optional fields even in tests that do not expect them
  • Fixed validation to not require optional fields except in tests that specifically look for them
  • Added tests 1.31 and 3.20 for boarding passes
  • Added tests 1.32 and 3.21 for transit passes
  • Made test names and expected terminal behaviours more accurate
  • Fixed minor typos

2020-05-12

  • Added new Service Object NDEF Record type: Transit

2020-04-13

2020-01-30

  • Published new version of merchantapp -> 2.6.30
  • Added measure for NFC session end time

2019-11-26

  • Published new version of Smart Tap test tools:
    • merchantapp -> 2.6.29
    • terminalapp -> 1.6.25
    • testconfigs -> 20191126
  • Deprecated tests: 7.1, 8.3, 8.4, 10.28, 10.29, 16.31, 16.32
  • Changed Payment validation to just check for PPSE request and response

2019-10-03

  • Added pseudo code for format parsing
  • Changed first SSR and NSR records in the SPR record from O to C

2019-07-26

  • Added extra material to prepare for certification involving payment to Certify results
  • Clarified Issuer NDEF Record structure
  • Clarified Merchant ephemeral public key is in compressed format in the negotiate smart tap session command

2019-04-05

  • Added Android Debug Bridge (ADB) controls for the merchant app in Test the implementation
  • Defined which test suites need to be completed for each feature implemented
  • Made push data implementation optional

2019-02-06

  • Modified the merchant app test_suite_*.json configuration files to support the following:
    • The get additional data command can be five or six bytes long
    • Changed the default Collector ID set in validation to accept binary or BCD format
    • Removed the get additional data validation from files 3.14 to 3.15 and 17.12
    • Allowed balance update payloads to have 0 padding in files 5.10 to 5.13 and 5.20

2019-01-18

  • Added details on the expected materials you need to prepare to Certify results

2019-01-15

  • Updated the merchant app to support a max APDU length of 253 bytes for Smart Tap 2.1
  • Updated the merchant app test suites so that they're compatible with the new merchant app

2018-11-05

2018-08-30

2018-08-27

  • Published the online Smart Tap developer docs. For a list of changes made in prior versions of the protocol, see our Draft documentation history

Draft documentation history

This online Google Wallet Smart Tap developer documentation is the most up-to-date source of truth. The following list details previous draft versions of the shared Smart Tap 2.1 protocol:

  • Revision 0.5, 2015-09-04 - First draft
  • Revision 0.6, 2015-09-07 - Added transaction flow diagrams
  • Revision 0.7, 2015-09-10 - Added APDU and Tags definitions
  • Revision 0.82, 2015-09-24 - Updated miscellaneous features and cleaned up the presentation of the material
  • Revision 0.83, 2015-09-25 - Updated Crypto, Security, and Tags
  • Revision 0.91, 2015-10-02 - Updated to Cipher, Commands, and Flows
  • Revision 0.92, 2015-10-26 - Added NDEF for data messages
  • Revision 0.93, 2015-12-10 - Included Negotiate smart tap Secure Session
  • Revision 0.94, 2016-01-13 - Updated SELECT OSE and fixed issues with NDEF lengths
  • Revision 0.95, 2016-02-08 - Added push data fields
  • Revision 0.951, 2016-02-17 - Clarified inputs for message signature
  • Revision 0.952, 2016-02-18 - Fixed minor issues with session NDEF status and primitive record
  • Revision 0.960, 2016-02-25 - Modified Handset public key to be returned in the negotiate response, removed PPSE service record, added wallet issuer ID to customer record, added signup service type for new service record, and clarified the more data status word
  • Revision 0.961, 2016-03-01 - Clarified terminal requirements and renamed handset to mobile device
  • Revision 0.970, 2016-07-07 - Modified multiple features for smart tap 2.1, modified VAS over payment, clarified status words, and introduced chunking.
  • Revision 0.971, 2016-07-28 - Finalized chunking and added POS Capabilities Record to push data
  • Revision 0.972, 2016-08-05 - Updated "get data response record bundle" section and corrected OSE response fields
  • Revision 0.973, 2016-08-30 - Added additional OSE tags and status words 9502, 9404, 9405, and 9406
  • Revision 0.974, 2016-09-29 - Added Master Nonce
  • Revision 0.975, 2016-12-09 - Added cryptography key concept, added Appendix C: Key management, clarified live auth, defined 9407 and 9408, clarified the byte ordering of transaction details, clarified "mdn" inclusion in the Record ID field, and clarified "oid" for the service status record
  • Revision 0.976, 2017-03-21 - Updated the expected terminal behavior descriptions for given status words and clarified the tap time performance requirement
  • Revision 0.977, 2017-05-10 - Removed text-related formats from the primitive format types
  • Revision 0.978, 2017-09-10 - Clarified the long-term key version format, clarified when negotiate is needed, clarified signature and IV, added C3 to the OSE response, and changed MER and SLR records in the SRQ record from C to M
  • Revision 0.979, 2018-04-25 - Added two new Service Object NDEF Record types: Event Ticket and Flight