Reputation: 85
I'm working with a MasterCard EMV Contactless card.
I've selected the MasterCard application (AID A0000000041010
) with success (9000
).
The card responds to the SELECT APPLICATION
command as follows:
6F 3B
84 07 A0 00 00 00 04 10 10
A5 30
50 0A 4D 61 73 74 65 72 63 61 72 64
87 01 01
9F 11 01 01
5F 2D 08 65 73 65 6E 70 74 66 72
BF 0C 0F
9F 4D 02 0B 0A
9F 6E 07 01 52 00 00 30 30 00
As you can see, there is no PDOL tag (9F38
). It is my understanding that when no PDOL is sent by the card, GET PROCESSING OPTIONS
(GPO) needs to be constructed with an empty PDOL like this:
80 A8 00 00 02 83 00 00
But the card then responds with (SW1 & SW2) 6985
, that according to EMV 4.4 Book 3 means "Command not allowed; conditions of use not satisfied".
I don't understand why the GPO command fails if an empty PDOL is sent, even though the card does not contain a PDOL when selecting the application.
Is there any additional step that is needed in the case of a Contactless MC card before GPO?
PS: These steps work just fine when using the same card but with Contact EMV chip instead, and GPO results in a success response with AIP & AFL.
Upvotes: 0
Views: 59
Reputation: 1237
The status word 6985 may mean multiple things. It is hardly possible to provide an insight without knowing the card application running inside, but generally speaking, when Get Processing Options is received, it is the point during the transaction when all transient data are initialized and ATC incremented. Some data may be shared between contact and contactless interfaces depending on implementation, but it might also be that they are kept completely separate, so you may observe different behaviors. Not really something that can be answered from your question.
It may be as simple as that your card application has reached a limit of ATC or other risk management control has kicked-in disabling the ability to perform transactions over contactless interface.
In your question you only said you are "working" with the application without really providing any information about what you are trying to achieve and what are the conditions. My suggestion is to do any development with test cards where you know what is the expected behavior.
Upvotes: 0
Reputation: 111
Did you try with a GPO with a PDOL field with 2 bytes at 0?
80 A8 00 00 04 83 02 00 00 00
It should be the same than what you sent with empty PDOL field, but maybe this specific card is expecting a PDOL with some data. From other answers found on StackOverflow, this PDOL formatting may be required by some MC cards:
https://stackoverflow.com/a/69540076/23786564
https://stackoverflow.com/a/50253256/23786564
I sadly don't have anymore the MasterCard specification (which can add some additional requirements to EMVCo standard), so I don't remember exactly if there was a requirement somewhere related to this.
Upvotes: 0