Dave Durbin
Dave Durbin

Reputation: 3642

GET PROCESSING OPTIONS returns 6984 code unexpectedly on a Visa contactless card

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

Answers (3)

Janko Acimovic
Janko Acimovic

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

Trung
Trung

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

Michael Roland
Michael Roland

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

Related Questions