I have successfully retrieved CDOL1 which is
9F02 06 - Authorised amount of the transaction (excluding adjustments)
9F03 06 - Secondary amount associated with the transaction representing a cashback amount
9F1A 02 - the country of the terminal
95 05 - Status of the different functions as seen from the terminal
5F2A 02 - the currency code of the transaction
9A 03 - Local date that the transaction was authorised
9C 01 - the type of financial transaction
9F37 04 - Value to provide variability and uniqueness to the generation of a cryptogram
How do I create the Generate AC command based on this CDOL1?
Based on CDOL1 you would next assemble the CDOL1 related data (i.e. a list of the data object values referenced by the tags in CDOL1):
[9F02 06 (Amount, authorized, numeric)]: 000000001000 (that's 1.00)
[9F03 06 (Amount, other, numeric)]: 000000000000 (that's 0.00)
[9F1A 02 (Terminal country code)]: 0040 (Austria)
[95 05 (Terminal verification results)]: 0000000000 (or whatever TVR you need)
[5F2A 02 (Transaction currency code)]: 0978 (Euro)
[9A 03 (Transaction date)]: 150528 (2015-05-28)
[9C 01 (Transaction type)]: 00 (whatever transaction type need)
[9F37 04 (Unpredictable number)]: 12345678
You would then wrap that data into the DATA field of the GENERATE AC command APDU:
80 AE 5000 1D 000000001000 000000000000 0040 0000000000 0978 150528 00 12345678 00
In response to this, you would either get a response message data field wrapped in tag 77 (format 2) that consists of several data objects. E.g. if no CDA is performed, this could look like:
77 xx
[Cryptogram Information Data] 9F27 01 80
[Application Transaction Counter] 9F36 02 001B
[Application Cryptogram] 9F26 08 B31B2D16 69860BD5
[Issuer Application Data] 9F10 yy ...
9000 [SW: success]
Alternatively you could also get response message data field wrapped in tag 80 (format 1). In that case, the value is a concatenated list of implicit data objects (tag + length fields are not present):
80 xx
[9F27 01 (Cryptogram Information Data)]: 80
[9F36 02 (Application Transaction Counter)]: 001B
[9F26 08 (Application Cryptogram)]: 9F26 08 B31B2D16 69860BD5
[9F10 yy (Issuer Application Data)]: ...
9000 [SW: success]