Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Contactless Payments: Detect Mobile Device or Card

I'm trying to detect whether a contactless enabled smartcard or a mobile device equipped with ApplePay, Google Pay, or Samsung Pay was used for a contactless EMV transaction.

I have been researching via the EMV books, and there seems to be a tag 9F6E provides this sort of data:

EMV Book 3 - VISA enter image description here

EMV Book 4 - MasterCard enter image description here

Questions:

  1. VISA provides a 4 byte value in the field 9F6E, but I can't find a list of possible values and their meanings anywhere. The EMV book says "out of scope". Is there anyway to reliably convert this to a known form factor?
  2. MasterCard provides data 2 bytes for the form factor, but I'm seeing values that I don't undestand (32 31 ascii = 21). Is there a list of values and meanings somewhere for these?
  3. Is there an easy way to understand if CDCVM has been used for a given contactless transaction, so that I could separate contactless transactions from contactless with CDCVM transactions?
like image 884
raydowe Avatar asked Jan 02 '23 00:01

raydowe


1 Answers

Google Pay is using cloud-based payments while Apple is using an embedded secure element. You can find this tag on 9F6E form factor on Visa. However, it might be different for Master Card or Amex.

To fix this correctly, you might want to check the EMV tag 9F19 which returns to the token requestor ID. Check EMV payment tokenization for this spec. Token requestor ID looks like this:

MasterCard

  • 50110030273 – APPLE_PAY
  • 50120834693 – ANDROID_PAY
  • 50139059239 – SAMSUNG_PAY

Visa

  • 40010030273 – APPLE_PAY
  • 40010075001 – ANDROID_PAY
  • 40010043095 – SAMSUNG_PAY
  • 40010075196 – MICROSOFT_PAY
  • 40010075338 – VISA_CHECKOUT
  • 40010075449 – FACEBOOK
  • 40010075839 – NETFLIX
  • 40010077056 – FITBIT_PAY
  • 40010069887 – GARMIN_PAY
like image 75
R. Marcos Avatar answered Mar 05 '23 14:03

R. Marcos