EMV CVM List Decoder
Parse EMV Cardholder Verification Method (CVM) Lists (Tag 8E) from payment cards. Decode CVM condition codes, CVM types, CVM amounts (X/Y), and CVM fail handling. Essential for EMV payment terminal developers and card application testing.
Paste CVM List (Tag 8E Data)
Decoded CVM Rules
EMV CVM List Structure
| Bytes | Field | Values |
|---|---|---|
| n × 2 | CVM Condition Code + CVM Type Code | Each CVM entry is 2 bytes |
| n × 2 | CVM Amount (X/Y) | Byte 1 = CVM Amount X, Byte 2 = CVM Amount Y (in reference currency) |
The CVM amount is always 2 bytes after the condition+type pair. If "Apply succeeding CVM rule" byte follows, it indicates "fail" handling.
How to Use
1. Extract CVM List from a payment card using SELECT + READ RECORD or GET DATA (Tag 8E).
2. Paste the CVM hex value into this tool.
3. Get instant human-readable CVM rules showing the order of verification methods the terminal should try.
Related Tools
EMV TLV Parser & DOL Builder — Full EMV data extraction | APDU Command Builder — Build EMV APDUs | EMV Tag Reference — Complete EMV tag list
Cardholder Verification Methods (CVM)
The CVM List (tag 8E) tells the terminal which cardholder verification methods are supported and in what priority order. Each entry in the CVM List is a 2-byte CVM Code followed by a 2-byte Amount/Condition. The terminal evaluates each entry in order and applies the first matching CVM.
CVM Types
Common CVM codes: 0x01 = Offline Plaintext PIN (verify PIN on the card). 0x02 = Online PIN (send PIN to issuer for verification). 0x03 = Plaintext PIN plus Signature. 0x04 = Offline Enciphered PIN. 0x05 = Enciphered PIN plus Signature. 0x1E = Signature on receipt. 0x1F = No CVM required. 0x7F = No CVM required if the terminal supports CVM capability. Each code is combined with a condition byte specifying whether the amount must be below or above a threshold.
Terminal Processing
The terminal reads the CVM List, iterates through entries, and for each entry checks: Is the CVM supported by the terminal? Does the amount condition match? If both conditions are met, the terminal executes that CVM. If a CVM fails (e.g., wrong PIN), the terminal may try the next entry or fail the transaction. The CVM Results tag (tag 9F34) records which CVM was attempted and whether it succeeded. Use our EMV Cryptogram Visualizer to see how CVM fits into the overall transaction flow.
Get the CVM Data Off a Real Card
The CVM list bytes this tool decodes are stored on the card itself - read them with a reader.
Disclosure: As an Amazon Associate, CardWise earns from qualifying purchases at no additional cost to you. This does not affect our recommendations.
ACR1252U Smart Card Reader (~$65) — Reads the CVM list from EMV cards in the same session as other 9F/DF tags.