First to Tap and Pay: NFC with Tim Hortons

Editors note: Below is a guest post by Clearbridge Mobile. Clearbridge implemented NFC mobile payment feature for the TimmyMe app available in BlackBerry World.


At Clearbridge Mobile, we create immersive mobile experiences across all platforms for clients across many industries. Our world-class team of developers and mobile strategists evaluate, design and implement solutions using a broad range of technologies to ensure our clients remain atop of mobile trends.

This article is the first part of a guest blog series. We will share our experience working with Tim Hortons integrating new mobile payment technology with Near Field Communication (NFC) for their TimmyMe app.

Project Summary in High Level

Rather than emulating a MasterCard or Visa, the Tim Horton’s solution leverages Tim Horton’s gift card. This solution is one of the first of its kind, anywhere in the world. The potential is huge, since many retailers have their own gift card and can offer a similar solution. Using gift cards lets the retailer control the entire program and utilize customer usage data to form a stronger bond with customers.

Being the first team to implement this feature was a challenge, but also an exciting undertaking. In the end, we successfully developed a great app that many BlackBerry users can enjoy.

The systems involved are NFC (client-end requesting and sending the card number), Point of Sales (POS) Terminal (client-end for receiving data and transaction processing), Mobile Service Server (back-end responsible for managing the services), and Transaction Process Service (back-end for Tim Card transactions and verifications)

Implementing NFC Payment Process

The transmission protocol used to communicate between the BlackBerry device and POS terminal is ISO14443 ver 4. This standard protocol is proprietary and only available for paid members.

The process to implement NFC payments was simpler and quicker than anticipated for BlackBerry 10. The NFC API provides a card emulator interface and like most of the system services, we are provided BlackBerry Platform Services (BPS) libraries, allowing us to listen for all NFC events. If the event type is ISO14443 ver 4 (used by Tim Cards) we initiate the handshake between the device and the terminal.

The following pseudo-code describes how the NFC communication is implemented:


Get NFC Event Get event Type from the NFC event If event Type is ISO14443 ver4 then      get the NFC target      from the NFC target get incoming data      process the incoming data      send the response data back to NFC

At the end of the handshake between the terminal and the device, the TimmyMe app responds with the track data. The track data consists of a series of characters associated with magnetic stripe cards that is passed to the POS system for processing. This is the key information passed to the terminal for processing the payment. The details of the byte level data cannot be shared since the format is proprietary, but you can find more information on track data and the various formats on Wikipedia.

With NFC payments, we know whether the NFC handshake passed or failed. Testing to validate that correct data is passed to the terminal and transaction details are correctly updated required lab and in-store testing with the Tim Horton’s POS and backend systems. Performing testing with the POS allowed us to uncover use cases of the app that would not typically be discovered during development.

  • POS Terminal success/failure and application timeouts behaviors
  • Transactions statuses and types (Success/Fail, Purchase, Refund, Reload, Balance, Merging)
  • Backend and NFC responses for invalid, inactive cards
  • NFC success/failures responses
  • Network offline Tap to Pay

You can also find a NFC sample application posted by BlackBerry on GitHub.

Testing Process

With most people starting their day with a cup of Tim Horton’s coffee, beta testing was quite smooth.  It allowed us to refine the NFC tap-to-pay experience to what’s in BlackBerry World today.

Given the great consumer response to the TimmyMe application, and the intuitive nature of tap to pay, we would say that using NFC for mobile payments would be the preferred method over carrying multiple cards any day. We look forward to seeing many more apps enabled for NFC tap-to-pay emerging in BlackBerry World in the near future.

For more information on our experience with NFC, drop us an email at

TimmyMe with NFC payments is available for BlackBerry 10 now!


About BlackBerry

BlackBerry is an enterprise software and services company focused on securing and managing IoT endpoints.