Reputation: 3642
I'm using Java code and Android NFC capabilities to communicate with contactless payment cards.
I have code which works with a bunch of Visa and MasterCards but I have run into an issue with a specific subcategory of Visa card.
Here are the steps I have taken and the issues I encountered:
At this point I get a 6984 return code which - as far as I can see - translates to PIN Try Limit exceeded but I have not been able to see that this is a legitimate response from a GPO.
Nor would I expect to have seen this given there's been no auth attempt, and it's a contactless transaction. Does this suggest that the card has been invalidated elsewhere ?
I should note that the code I'm writing is performing minimal steps required to access Track2 data from the card, it is not trying to recreate the full EMV kernel processing.
Thanks
Upvotes: 3
Views: 3737
Reputation: 11
I had similar issue to this one just 2 days ago. I was working on VISA contactless card that client uses, I would also get 6984 from GPO but my issue was resolved by simply sending specific country and currency code to the card.
I find it very annoying that you will get "try another interface", which basically means contact or magnet-stripe (which does work) and you have no way to get a hint that you are sending wrong currency and country code to the card for contactless. Or at least that is how it looked from my point of view.
Upvotes: 1
Reputation: 1655
I ran into the same problem you mentioned above. In my case, it's Visa Blink card.
=> 80 A8 00 00 02 83 02 00
<= 67 00
=> 80 A8 00 00 04 83 02 00 00 00
<= 69 84
I figured out that the card doesn't like short GPO command (even though the short command works fine with Mastercard). So solution is using long GPO command.
1/ Use longer GPO command with no country code:
80A8000023832180000000000000000000000000000000000000000000000000000000000000000000
2/ Use better GPO command with passing country code:
80A80000238321A0000000000000000001000000000000084000000000000840070203008017337000
In either case (passing country code or not), it works.
Upvotes: 3
Reputation: 40849
As the EMV application has a Visa AID, I would assume that it's built for contactless kernel 3. The kernel 3 specification defines that if a card returns the status code 6984
in response to the GET PROCESSING OPTIONS command, the reader should use another interface (e.g. EMV contact interface) to communicate with the card.
Upvotes: 3