EMV command analysis

When checking a payment card, the following mandatory steps and optional actions are performed as planned by the user.

  1. Initial analysis of the installed card.
    • ATR cards: 3B 6e 00 00 80 31 80 66 B0 84 0C 01 6e 01 83 00 90 00
    • contact mode is assumed
    • Protocol: t0
  2. Setting the verified payment application as the current application on the card (the operation that starts any payment transaction).
    • resets the credit card to eliminate the side effects of previous actions
    • install the current application using the select command
    • the following data was received in response to the command:
    6F 33 84 07 A0 00 00 00 04 10 10 A5 28 4D 50 0A
    61 73 74 65 72 43 61 72 64 5F 2D 04 72 75 65 6E
    87 01 01 0F BF 0C 9F 4D 02 0B 0A 9F 6E 06 07 43
    00 00 30 30 00
    • TL TLV structures:
    • 6F. 51 FCI template
    • 84.7 Selected File Name
    • A5. 40 corporate FCI template
    • An Application Shortcut 50.10
    • 5f2d. 4 language preferences
    • Application Priority Indicator 87.1
    • BF0C. 15 discretionary data of the FCI Issuer
    • Log entry 9F4D. 2
    • 9f6e. 7 third party data
    • data analysis is performed, Select Select (FCI analysis of the payment application)
    • the following objects were found in the payment application’s FCI that can be used when processing a transaction:
    • Selected File Name: A0000000041010
    • Application label: 4d617374657243617264 ‘MasterCard’
    • Application Priority Indicator: 01
    • Language preferences: 7275656E ‘ruen’
    • Log entry: 0B0A
    • Third Party Data: 06430000303000
    • Country Code: 0643
    • Unique ID assigned to MasterCard: 0000
    • Device Type: “00” (Card)
    • Own data: 30
    • the payment application will be processed in accordance with the Mastercard card specifications
  3. Getting the values of payment application objects, em EMV and detailed payment application specifications (get get data).
    • issue the get data command to get the value of the transaction counter application object (ATC)
    • the value of the payment application object was not received (the object is not in the payment application)
    • get get data to get the object value of the latest online ATC registry
    • the value of the payment application object was not received (the object is not in the payment application)
    • issue the get information command to get the value of the contact counter object
    • command execution time: 16 msec
    • the object value is saved for further processing
    • issuing a command to get data to get the input value of an object
    • command execution time: 46 msec
    • the object value is saved for further processing
    • get get data to get the value of the object card Issuer’s action code-reject
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the value of the card Issuer’s action code object-by default
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the value of the card Issuer’s action code object-online
    • command execution time: 31 msec
    • the object value is saved for further processing
    • issue you a command to get the object value counters data
    • command execution time: 31 msec
    • the object value is saved for further processing
    • issue the get information command to get the value of the CDOL1 object associated with the data length
    • command execution time: 32 msec
    • the object value is saved for further processing
    • get get data to get the value of the object risk management card country code
    • command execution time: 32 msec
    • the object value is saved for further processing
    • get get data to get the value of the object risk management card currency code
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the value of an object to reduce the total amount of offline transactions
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the value of an object the top cumulative amount of an offline transaction
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the value of the object card Issuer’s action code (contactless) – by default
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the value of the object card Issuer’s action code (contactless) – online
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the value of the object card Issuer’s action code (contactless) – reject
    • command execution time: 31 msec
    • the object value is saved for further processing
    • issue the “get data” command to get the value of the currency conversion object.
    • command execution time: 62 msec
    • the object value is saved for further processing
    • get get data to get the value of an object additional Control table
    • command execution time: 47 msec
    • the object value is saved for further processing
    • get get data to get the value of the application control object
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the default arpc response code object value
    • command execution time: 32 msec
    • the object value is saved for further processing
    • issue the get data command to get the value of the object application control (contactless)
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get to the data to obtain the value of the object Lower consecutive offline limit
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the value of the object upper sequential offline limit
    • command execution time: 31 msec
    • the object value is saved for further processing
    • get get data to get the value of the offline balance object
    • the value of the payment application object was not received (the object is not available in this context)
    • issue the “get data” command to get the value of the data recovery object.
    • the value of the payment application object was not received (the object is not in the payment application)
    • get get data to get the value of the application lifecycle data object
    • command execution time: 79 msec
    • the object value is saved for further processing
    • issuing the “get data” command to get the value of the security object limits the status
    • command execution time: 31 msec
    • the object value is saved for further processing
  4. Checking and interpreting the values of payment application objects to get data.
    • analysis of data received from the payment application
    • The attempt counter of PIN: 3 (03)
    • Log format: 9F27019F02065F2A029A039F36029F5206
    • 9F27. 1 information cryptogram (CHID)
    • 9f02. 6 the amount authorized (numeric)
    • 5f2a. 2 transaction currency Code
    • 9a. 3 transaction date
    • 9F36. 2 applying a transaction counter (ATC)
    • 9f52. 6 results of card verification (CVR)
    • Card Issuer Action Code-Rejection: 000000
    • Card Issuer’s Action Code-Default: 195000
    • Offline PIN verification failed
    • Pin attempt limit exceeded
    • The terminal mistakenly considers the Offline PIN code OK
    • Exceeded the upper sequential offline limit
    • Exceeded the upper cumulative offline limit
    • Card Issuer action code-online: 39FB00
    • Offline PIN verification is not performed
    • Offline PIN verification failed
    • Pin attempt limit exceeded
    • The terminal mistakenly considers the Offline PIN code OK
    • Lower sequential offline limit exceeded
    • Exceeded the upper sequential offline limit
    • Lower cumulative offline limit exceeded
    • Exceeded the upper cumulative offline limit
    • Internet access was set for the next transaction
    • Script received
    • The script has failed
    • Counters: 00380000000000000000
    • ATC: 0038
    • Global MAC in the script counter: 0
    • Bad Cryptogram Counter: 0
    • The CDOL1 related data length: 43 (2B)
    • Risk Management card Country Code: 0643
    • Risk Management Card Currency Code: 0643
    • Decrease In Cumulative Offline Transaction Amount: 1500.00
    • The Upper Cumulative Offline Transaction Amount: 1600.00
    • Card Issuer’s Action Code (Contactless) – By Default: 005800
    • Exceeded the upper sequential offline limit
    • Exceeded the upper cumulative offline limit
    • Internet access was set for the next transaction
    • Action code of the Issuer of the card (contactless) – online: 00F800
    • Lower sequential offline limit exceeded
    • Exceeded the upper sequential offline limit
    • Lower cumulative offline limit exceeded
    • Exceeded the upper cumulative offline limit
    • Internet access was set for the next transaction
    • Card Issuer’s Action Code (Contactless) – Rejection: 080000
    • Pin attempt limit exceeded
    • Currency Conversion Table: 06430000000643000000064300000006430000000643000000
    • Currency code: 0643
    • Conversion factor: not defined
    • Currency code: 0643
    • Conversion factor: not defined
    • Currency code: 0643
    • Conversion factor: not defined
    • Currency code: 0643
    • Conversion factor: not defined
    • Currency code: 0643
    • Conversion factor: not defined
    • Additional Control table: 000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
    • There is a format error in the additional control table:
    • Application control: 8C00
    • Activation of the magnetic stripe class Issuer (allows the card to accept transactions when the Issuer’s authentication data is not available
    gift)
    • Offline encrypted PIN verification is supported
    • Key MUS for offline encrypted pin for verified input
    • Offline verification of the PIN code in plain text is supported
    • Displaying your own MasterCard session key
    • Default ARPC response code: 0010
    • PIN attempt counter: 0
    • Approve an online transaction
    • Do not update the PIN attempt counter
    • Resetting Internet access on the next transaction
    • Update counters: do not update offline counters.
    • App Management (Contactless): 000080
    • The Issuer of the class a magnetic strip is not activated
    • Withdrawal of the MasterCard session’s proprietary key
    • Use static CVC3 (PayPass)
    • Lower Sequential Autonomous Limit: 05
    • Upper Sequential Autonomous Limit: 06
    • Information About The Application Life Cycle:
    03 10 19 12 00 09 00 00 A1 A2 A3 A4 A5 A6 A7 A8
    A9 AA AB AC AD AE AF B0 B1 B2 B3 B4 C1 C2 C3 C4
    C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3 D4
    • Version: M / Chip Select 4
    • Enter the confirmation code: 10191200090000
    • Application code of the Issuer: A1A2A3A4…B1B2B3B4
    • App code: C1C2C3C4…D1D2D3D4
    • The State Of The Safety Limits: 00
  5. Executing the command provides processing parameters for initiating a transaction and getting the information you need
    to perform a transaction.
    • no data is needed to initiate a transaction, since no PDOL is defined, and the command template object (tag 83) with zero length is provided as input to the command
    • the payment application sends the command to you for processing options
    • get get processing parameters completed successfully
    • command execution time: 78 msec
    • the following data was received in response to the command: 771682023900941010020201180101002001010028010200
    • TL TLV structures:
    • 77.22 Response Message Template Format 2
    • 82.2 Application Sharing Profile
    • 94.16 Application File Locator
    • analysis of data received in response to the get processing options command is performed
    • the team provided the following data:
    • App Sharing Profile: 3900
    • DVR supports
    • Supported the verification of the card holder
    • Terminal risk management must be performed
    • CDA is supported
    • App File Locator: 10020201180101002001010028010200
    • SFI 2, Entry 2, this entry participates in the ERP
    • SFI 3, record 1
    • SFI 4, record 1
    • SFI 5, records 1-2
  6. Read data from the file record of the payment application.
    • read read write to read write 2 C C ID 2
    • command execution time: 172 msec
    • the following data was received in response to the command:
    70 81 8C 5A 08 52 34 00 25 98 34 76 18 5F 24 03
    21 11 30 5F 25 03 18 10 01 02 06 28 5F 5F 43 34
    01 00 02 06 03 06 8S 21 9F 9F 9F 1A 02 95 05 5F
    2A 02 03 01 37 9A 9B 9F 9F 9F 9F 04 35 01 45 02
    4C 9F 34 08 03 8D 0C 91 0A 8A 02 95 05 9F 37 04
    9F 4C 08 8E 14 00 00 00 00 00 00 00 00 42 01 44
    03 41 03 42 03 1E 03 1F 03 9F 07 02 FF 00 9F 0D
    05 BC 50 BC 88 00 9F 0E 05 00 00 00 00 9F 0S
    05 70 BC 98 00 02 06 43 42 9F 9F 4A 01 82
    • TL TLV structures:
    • 70.140 reading the record template
    • 5A. 8 pan application
    • 5F24. 3 Application Expiration date
    • 5f25. 3 date of entry into force of the application
    • 5f28. 2 Issuer country Code (numeric)
    • 5f34. 1 application tray sequence number
    • 8C. 33 risk Management for DOL 1 cards (CDOL1)
    • 8d. 12 risk Management for DOL 2 cards (CDOL2)
    • 8E. 20 list of MVO
    • 9f07. 2 monitoring application usage
    • 9f0d. 5 IEC-default
    • 9F0E. 5 Pxx-failure
    • 9f0f. 5 MAC-online
    • 9f42. 2 application currency Code
    • 9f4a. 1 list of static data authentication tags
    • objects from the read record are saved for further processing (all elementary data objects from the record will be used for offline data authentication)
    • read read write to read write 1 C C ID 3
    • command execution time: 266 msec
    • the following data was received in response to the command:
    70 E0 81 01 8F 90 81 05 B0 79 94 ED BD 7B 06 12
    46 39 D0 89 1E B3 BF EA AC 5A A1 44 9F 45 09 ed
    3E C5 E1 99 BD AC EF 5B 01 4D C8 C4 02 60 55 55
    6A 01 97 D8 AC 62 29 61 F8 A5 1F 0E 2E 11 86 02
    05 18 AD E1 BB 98 88 39 12 22 35 58 2D 8D 4A 68
    59 25 18 01 BA 74 DB C0 C9 59 4A ED 35 D2 E6 41
    9F E1 C2 80A 69 63 61 16 6F BC B8 B8 64 4A E4
    5B 83 69 37 49 9B 6C 74 52 9E FE FC DC D8 D9 8A
    76 55 CE 63 C3 E3 E5 91 B5 50 F9 31 F1 F1 C5 7A
    48 E7 ED B4 D4 C5 4B 30 16 99 1F CA 6C E5 7C 6F
    91 EA CA 65 6E 20 20 EA C7 14 F4 EB DA 6D 1B 48
    42 46 30 92 F3 3F 61 47 70 92 24 C9 BC 26 10 83
    1D F1 A7 A2 A6 DB E9 E6 33 40 54 1A 0F 40 57 BD
    56 49 15 8E E3 F8 2C 03 22 0A 3C 45 F7 ED B6 9F
    32 01 03
    • TL TLV structures:
    • 70.224 reading the record template
    • 8F. 1 CA key index
    • Issuer’s Public Key Certificate 90.176
    • 92.36 Balance The Public Key Of The Issuer
    • 9f32. 1 Exhibitor of the Issuer’s public key
    • objects from the read record are saved for further processing
    • read read write to read write 1 C C ID 4
    • command execution time: 31 msec
    • the following data was received in response to the command: 70049f470103
    • TL TLV structures:
    • 70.4 reading a record template
    • 9f47. 1 ICC public key indicator
    • objects from the read record are saved for further processing
    • read read write to read write 1 C C ID 5
    • command execution time: 93 msec
    • the following data was received in response to the command:
    70 47 9F 1F 0D 31 30 31 38 36 30 30 30 30 30 32
    30 38 57 13 52 25 98 00 34 34 76 18 D2 11 12 01
    10 18 60 00 00 20 8F 5F 20 1A 53 4F 52 44 49 4F
    56 2F 56 4C 41 44 49 4D 49 52 20 20 20 20 20 20
    20 20 20 20 9F 08 02 00 02
    • TL TLV structures:
    • 70.71 reading a record template
    • 9f1f. 13 Track 1 discretionary data
    • 57.19 Track 2 Equivalent Data
    • 5f20. 26 name of the cardholder
    • 9f08. 2 app version number
    • objects from the read record are saved for further processing
    • read read write for read write 2 C C ID 5
    • command execution time: 219 msec
    • the following data was received in response to the command:
    70 81 BA 9F 46 81 B0 91 7D 25 34 98 48 68 E3 4D
    09 43 52 74 91 2C 8C 5F B1 E2 80 18 74 83 53 20
    87 6F B6 75 2D C2 DD 5A 71 71 93 E5 AD A3 08 1D
    63 D7 D1 69 BF FF 83 20 25 39 99 D7 9D E2 F8 B7
    69 68 39 05 F4 C6 1D 16 3A F6 6E AB CF 56 D4 65
    5D 7A C6 B2 D9 4A 30 55 44 59 66 53 BD EA B8 80
    06 80 6F A9 F3 81 91 B1 06 9B 73 10 E8 E5 95 62
    19 8C 39 60 59 50 73 72 A4 E0 06 52 07 BF B1 66
    5B FC 64 60 EE CB D5 AE 3D B8 99 B0 70 7A F6 AA
    70 D8 E6 9E 07 A9 1C CD D8 FB 3E B0 8F E2 64 31
    DC 60 24 C0 3E 1A 59 D4 10 E8 3D 0A 1D 58 91 97
    7F 69 08 01 DC 6V 9F 9F 03 49 03 37 04
    • TL TLV structures:
    • 70.186 reading the record template
    • ICC 9f46 public key certificate. One hundred seventy six
    • 9f49. 3 dynamic authentication of DOL data (DDOL)
    • objects from the read record are saved for further processing
  7. Analysis and interpretation of data read from payment application files, em EMV.
    • known objects stored in the database of the terminal
    • Application tray: 5225980034347618
    • Application tray sequence number: 00
    • Date Of Entry Into Force Of The Application: 01.10.2018
    • The Period Of Bid Validity: 30.11.2021
    • The Application Version Number: 0002
    • The Currency Code Of The App: 0643
    • The name of the card holder: 5349444F524F562F564C4144494D495220202020202020202020 ‘ Sidorov / Vladimir ‘
    • Issuer country code (numeric): 0643
    • Control use of the application: FF00
    • valid for internal cash transactions
    • valid for international cash transactions
    • valid for domestic products
    • valid for international products
    • valid for household services
    • valid for international services
    • valid at ATMs
    • valid in terminals other than ATMs
    • CVM list: 000000000000000042014403410342031E031F03
    • The Sum X = 0
    • The Sum Y = 0
    • 4201 (encrypted PIN code verified online, if unsupervised cash, apply the following rule)
    • 4403 (encrypted pin for input verified in the execution of the ICC, if the terminal supports MVO, apply the following rules)
    • 4103 (clear text PIN verification performed by ICC if the terminal supports CVM, apply the following rule)
    • 4203 (encrypted PIN verified online, if the terminal supports CVM, apply the following rule)
    • 1E03 (signature if the terminal supports CVM, cardholder verification failed)
    • 1F03 (no CVM required, if the terminal supports CVM, the cardholder cannot be verified)