How do I know if ODA is performed or not?


If you want to reject a card with no ODA (Offline Data Authentication) capabilities, you can get ODA capabilities from the tag DFEF7F.

DFEF7F: 88 or 82: ODA performed and success

DFEF7F: not present or other value: Card not request ODA or ODA failed

Please refer to the following definition of DFEF7F in detail:

 Bit 7 – ODA/Online performed: 1 performed, 0 Not performed

 Bit 6 – RFU

 Bit 5 – RFU

 Bit 4 – RFU

 Bit 3 – fDDA performed: 1 performed, 0 Not performed

 Bit 2 – fDDA failed: 1 Failed,  0 Succeed

 Bit 1 – SDA performed: 1 performed, 0 Not performed

 Bit 0 – SDA failed: 1 Failed,  0 Succeed


The VISA kernel in our reader is VCPS(Online + offline) + Online ODA function.

For Transit transactions, if you want to get Online request + Online ODA.

Here is the recommended config if you do a Visa transit transaction using the current Visa Kenel:

TTQ: 27 00 40 00 (Online ODA support)

9F1B: 00 00 00 00 (Can go online)

For the transaction result:

Online request + DFEF7F(88 0r 82): Online ODA performed and success

Any result + DFEF7F(00) or DFEF7F not present: The Card doesn't request Online ODA, this kind of card does not meet the requirement for transit transactions.

Declined + DFEF7F (Present and Not 88 or 82 or 00): ODA performed and failed.

For TTQ in transaction results, because our reader will go online, we will always set Byte 2 bit 8=1 whatever the setting is.

In Transit Spec, this bit can be 0 or 1. In VCPS TTQ byte 2 bit 7-8 is dynamic, not static.