— Developer Tools

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.

— Samples
Objects 16Unknown tags 0Valid
Live

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.

1

Find the TLV Data

Copy field 55 from an ISO 8583 log, a card response from a terminal trace, or a kernel log.

2

Paste the Hex

Spaces, colons and line breaks are ignored, so copy it as your tool prints it.

3

Read the Tree

Each tag shows its length, name, value and meaning, nested inside its template.

4

Export as JSON

JSON gives the same objects for scripts and test reports, with card numbers masked.

Worked Examples

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.

REF_001ISO 8583 field 55 from a purchase

“9F26081A2B3C4D5E6F70819F2701809F100706010A03A000009F37049BADBCAB9F36020042950500000080009A032610279C01009F02060000000012505F2A020840820220009F1A0208409F3303E0F0C89F34031F00029F3501228407A0000000031010”

REF_002A SELECT response

“6F288407A0000000031010A51D500A564953412044454249548701019F38039F1A02BF0C059F4D020B0A”

REF_003A READ RECORD response, masked

“703957134761739001010010D28122011234567890000F5F200D5445535420434152442F454D565F24032812315F280208405F3401019F0702FF00”

REF_004A TVR with three bits set

“95058000048000”

REF_005AIP and TSI

“82025800 9B02E800”

REF_006Cryptogram type and CVM result

“9F270140 9F3403410302”

REF_007Euro amount as JSON

“9F0206000000001250 5F2A020978 9F1A020276”

REF_008A yen amount with no decimals

“9F0206000000001500 5F2A020392”

REF_009A cryptogram cut short

“9F0206000000001250 5F2A020840 9F2608AABB”

REF_010An odd number of hex digits

“9F0”

Key Tags

Tags Worth Knowing

A field 55 can carry thirty tags or more. These ten answer most questions about a transaction.

01 / 9F26

9F26 Application Cryptogram

The card’s eight-byte MAC over the transaction data, checked by the issuer.

“How long is 9F26?”

02 / 9F27

9F27 Cryptogram Information

Which cryptogram the card produced: AAC to decline, TC to approve offline, ARQC to go online.

“What does 80 mean?”

03 / 95

95 TVR

Five bytes of flags the terminal sets when a check fails or a rule triggers.

“How many bytes is the TVR?”

04 / 9F10

9F10 Issuer Application Data

Scheme-specific data for the issuer, including the card’s verification results.

“Is 9F10 the same for every scheme?”

05 / 9F36

9F36 ATC

The application transaction counter, which goes up by one with every transaction.

“What does a jump in the ATC suggest?”

06 / 9F37

9F37 Unpredictable Number

Four random bytes from the terminal, so each cryptogram is unique.

“Who generates 9F37?”

07 / 9F02

9F02 Amount, Authorised

The amount in minor units as six bytes of BCD, so 000000001250 is 12.50.

“What is 000000001250 in USD?”

08 / 82

82 AIP

What the card supports: SDA, DDA, CDA, cardholder verification and issuer authentication.

“Which bit says CDA is supported?”

09 / 9F34

9F34 CVM Results

Which cardholder verification method was used and whether it worked.

“What does 1F mean?”

10 / 84

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.

Tip 01

Byte 1, Authentication

Whether offline data authentication ran, and whether SDA, DDA or CDA failed.

Tip 02

Byte 2, Card Rules

Version mismatches, expired or not-yet-effective applications, and services the card doesn’t allow.

Tip 03

Byte 3, Cardholder Verification

Failed or unrecognised CVMs, PIN try limits, a missing PIN pad, and online PIN entry.

Tip 04

Byte 4, Risk Management

Floor limits, offline counters and random selection, which push transactions online.

Tip 05

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.

Tip 01

Logging Full PANs

Logs with unmasked 5A or 57 fall under PCI DSS. Mask them before sharing, as this decoder does.

Tip 02

Scheme-Specific Tags

9F10, 9F6E and many proprietary tags differ between Visa, Mastercard and others.

Tip 03

Amount Exponents

Amounts are minor units. Yen and won have no decimals, so 1500 means 1500, not 15.00.

Tip 04

Bit Numbering

EMV numbers bits 8 to 1 from the left, so byte 4 bit 8 is 0x80 in the fourth byte.

Tip 05

Proprietary Templates

Tags under BF0C or in DF ranges are issuer or scheme defined and may not be in any public list.

Tip 06

TLV Versus DOL

PDOL and CDOL list tags and lengths without values, so they don’t parse as TLV objects.

Frequently Asked Questions