Parse EMV Tag-Length-Value data structures.
TLV (Tag-Length-Value) is the binary data-encoding scheme that powers EMV chip card communication, ISO 7816 smart cards, and the vast majority of contactless payment protocols. Each data element is encoded as three back-to-back fields: a Tag identifying the semantic meaning of the data, a Length specifying how many bytes the value occupies, and the Value containing the actual bytes. This format is self-describing and extensible — a parser that does not recognize a tag can still skip it cleanly using the Length field. The EMV specifications (originally Europay, Mastercard, Visa; now maintained by EMVCo with American Express, Discover, JCB, UnionPay) define hundreds of tags spanning card authentication, transaction processing, terminal risk management, and issuer-to-card script commands. Tags fall into two classes: primitive tags carry raw data directly (e.g., tag 5A is the Application PAN), while constructed tags are containers whose value field is itself a sequence of nested TLV objects (e.g., tag 70 is the Application Proprietary Template that wraps several primitives). Tags can be one or two bytes; lengths can be one byte (≤127) or use BER encoding for longer values. Our parser handles all variants automatically and resolves tag names from the full EMV tag dictionary.
Below is a typical Format 2 response from a GENERATE AC command — the moment the chip returns its ARQC during an online authorization. Tag 77 is constructed, so its value is itself a sequence of TLV objects:
Input: 771E9F2701809F3602003C9F26088A1B2C3D4E5F60719F100706010A03A00000 Decoded: 77 Response Message Template Format 2 (constructed, 30 bytes) ├─ 9F27 Cryptogram Information Data 80 → ARQC requested ├─ 9F36 Application Transaction Counter 003C → ATC = 60 ├─ 9F26 Application Cryptogram 8A1B2C3D4E5F6071 └─ 9F10 Issuer Application Data 06010A03A00000
The tags you will meet in almost every EMV transaction log. Paste any of them into the parser above, or browse the complete dictionary with formats and full descriptions in the EMV Tag Dictionary & Decoder.
| Tag | Name | Why it matters |
|---|---|---|
| 4F | Application Identifier (AID) | Which payment application the card selected |
| 57 | Track 2 Equivalent Data | PAN + expiry + service code as encoded on the chip |
| 5A | Application PAN | The card number |
| 5F34 | PAN Sequence Number | Distinguishes multiple cards on one PAN; ARQC input |
| 82 | Application Interchange Profile (AIP) | Which authentication methods the card supports |
| 95 | Terminal Verification Results (TVR) | Every check the terminal ran and its outcome |
| 9B | Transaction Status Information (TSI) | Which processing steps were performed |
| 9F02 | Amount, Authorised | Transaction amount; ARQC input |
| 9F10 | Issuer Application Data (IAD) | Card-proprietary data incl. CVR; scheme-specific |
| 9F26 | Application Cryptogram | The ARQC / TC / AAC itself |
| 9F27 | Cryptogram Information Data (CID) | Says whether 9F26 is an ARQC, TC, or AAC |
| 9F34 | CVM Results | How the cardholder was verified (PIN, signature…) |
| 9F36 | Application Transaction Counter (ATC) | Card's transaction counter; session-key input |
| 9F37 | Unpredictable Number | Terminal randomness that makes each ARQC unique |