Free EMV TLV Decoder
Paste EMV TLV hex from a card, a terminal log or field 55 to see every tag named, nested and explained.
What is an EMV TLV Decoder?
Chip cards and terminals exchange data as BER-TLV: a tag, a length and a value, repeated and nested. A purchase leaves behind strings such as 9F02060000000012505F2A020840. This decoder splits them into named tags and explains what they say.
It reads tags of one to three bytes, long lengths and nested templates, and names 73 EMV tags. Bit fields such as the TVR, TSI and AIP are listed bit by bit, amounts are scaled by the transaction currency, cryptogram and CVM results are explained, and card numbers are masked.
Key Features
Every Tag Named
73 EMV tags from Book 3 and Book 4, from 4F and 57 to 9F26, 9F27 and 9F10.
Bits Explained
TVR, TSI and AIP bits each listed by name, the quickest way to see why a card declined.
Values Decoded
Amounts in the transaction currency, dates, country and currency codes, AIDs and cryptogram types.
Card Data Masked
PANs and track 2 show only the first six and last four digits.
Nothing Uploaded
Card data is decoded in your browser and never leaves your device.
Perfect for everyone
- Payment terminal developers
- Acquirer and issuer support engineers
- Certification testers and EMV students
How to Use the EMV TLV Decoder
Paste the hex and read the tags.
Find the TLV Data
Copy field 55 from an ISO 8583 log, a card response from a terminal trace, or a kernel log.
Paste the Hex
Spaces, colons and line breaks are ignored, so copy it as your tool prints it.
Read the Tree
Each tag shows its length, name, value and meaning, nested inside its template.
Export as JSON
JSON gives the same objects for scripts and test reports, with card numbers masked.
EMV Data, Decoded
Each row is EMV TLV data as a terminal or host logs it, and each answer is this decoder’s output in the mode on the chip. The card data is a public test card.
“9F26081A2B3C4D5E6F70819F2701809F100706010A03A000009F37049BADBCAB9F36020042950500000080009A032610279C01009F02060000000012505F2A020840820220009F1A0208409F3303E0F0C89F34031F00029F3501228407A0000000031010”
“6F288407A0000000031010A51D500A564953412044454249548701019F38039F1A02BF0C059F4D020B0A”
“703957134761739001010010D28122011234567890000F5F200D5445535420434152442F454D565F24032812315F280208405F3401019F0702FF00”
“95058000048000”
“82025800 9B02E800”
“9F270140 9F3403410302”
“9F0206000000001250 5F2A020978 9F1A020276”
“9F0206000000001500 5F2A020392”
“9F0206000000001250 5F2A020840 9F2608AABB”
“9F0”
Tags Worth Knowing
A field 55 can carry thirty tags or more. These ten answer most questions about a transaction.
9F26 Application Cryptogram
The card’s eight-byte MAC over the transaction data, checked by the issuer.
“How long is 9F26?”
9F27 Cryptogram Information
Which cryptogram the card produced: AAC to decline, TC to approve offline, ARQC to go online.
“What does 80 mean?”
95 TVR
Five bytes of flags the terminal sets when a check fails or a rule triggers.
“How many bytes is the TVR?”
9F10 Issuer Application Data
Scheme-specific data for the issuer, including the card’s verification results.
“Is 9F10 the same for every scheme?”
9F36 ATC
The application transaction counter, which goes up by one with every transaction.
“What does a jump in the ATC suggest?”
9F37 Unpredictable Number
Four random bytes from the terminal, so each cryptogram is unique.
“Who generates 9F37?”
9F02 Amount, Authorised
The amount in minor units as six bytes of BCD, so 000000001250 is 12.50.
“What is 000000001250 in USD?”
82 AIP
What the card supports: SDA, DDA, CDA, cardholder verification and issuer authentication.
“Which bit says CDA is supported?”
9F34 CVM Results
Which cardholder verification method was used and whether it worked.
“What does 1F mean?”
84 DF Name
The application selected, whose first five bytes identify the card scheme.
“Which scheme is A000000003?”
How BER-TLV Is Encoded
EMV borrows its encoding from ASN.1’s Basic Encoding Rules. A few rules decide how every tag and length is laid out, and knowing them makes raw hex readable by eye.
Tag Class and Type
The first tag byte’s top bits give the class, and bit 6 says whether the value is constructed, holding more TLV inside.
Multi-Byte Tags
If the low five bits of the first byte are all ones, more tag bytes follow, as in 9F26 and 5F2A.
Short Lengths
A length under 128 is a single byte giving the number of value bytes.
Long Lengths
81 or 82 means the length sits in the next one or two bytes, used for certificates and long records.
Templates
Tags such as 6F, 70 and 77 are constructed: their value is a list of further TLV objects.
Padding
Card records may pad with 00 or FF between objects. The decoder skips it as EMV readers do.
Reading the TVR
The terminal verification results record what went wrong or what forced a decision. Each of the five bytes covers one stage of the transaction, so the byte that has bits set tells you where to look.
Byte 1, Authentication
Whether offline data authentication ran, and whether SDA, DDA or CDA failed.
Byte 2, Card Rules
Version mismatches, expired or not-yet-effective applications, and services the card doesn’t allow.
Byte 3, Cardholder Verification
Failed or unrecognised CVMs, PIN try limits, a missing PIN pad, and online PIN entry.
Byte 4, Risk Management
Floor limits, offline counters and random selection, which push transactions online.
Byte 5, Issuer
Issuer authentication and script processing results after the online response.
When to Decode EMV TLV
Whenever a chip transaction needs explaining from its raw data.
Declined Transactions
Read the TVR and cryptogram type to see whether the card, terminal or issuer declined.
Terminal Integration
Check the tags your kernel sends in field 55 match what the acquirer expects.
Certification Testing
Compare test card output with the expected tags and values in a test plan.
Support Tickets
Turn a hex blob from a log into a readable list for a bug report.
Learning EMV
See how a card and terminal agree a transaction, tag by tag.
EMV Data Pitfalls
Things that trip people up with EMV TLV.
Logging Full PANs
Logs with unmasked 5A or 57 fall under PCI DSS. Mask them before sharing, as this decoder does.
Scheme-Specific Tags
9F10, 9F6E and many proprietary tags differ between Visa, Mastercard and others.
Amount Exponents
Amounts are minor units. Yen and won have no decimals, so 1500 means 1500, not 15.00.
Bit Numbering
EMV numbers bits 8 to 1 from the left, so byte 4 bit 8 is 0x80 in the fourth byte.
Proprietary Templates
Tags under BF0C or in DF ranges are issuer or scheme defined and may not be in any public list.
TLV Versus DOL
PDOL and CDOL list tags and lengths without values, so they don’t parse as TLV objects.