Disclosure: As an Amazon Associate, CardWise earns from qualifying purchases at no additional cost to you. This does not affect our recommendations.

TLV/BER-TLV Parser Comparison — Decoding EMV's Data Language

EMV payment cards, smart cards, and PKI certificates all speak the same data language: BER-TLV (Basic Encoding Rules, Tag-Length-Value). Every piece of data — from your card number to the cryptogram — is encoded as a TLV object with a tag that identifies the data type, a length, and the value itself. Parsing TLV correctly is essential for EMV development, smart card debugging, and security auditing.

This comparison reviews the available TLV parsers and how they handle tag resolution, constructed objects, multi-byte tags, length encoding, and EMV-specific tag dictionaries.

TLV Structure

Tag (1-2 bytes)  Length (1-3 bytes)  Value (N bytes)
  |                 |                   |
  Identifies        Size of value       The actual data
  data type         that follows

Examples:
9F02 → Amount, Authorized (numeric, 6 bytes)
5A   → Application Primary Account Number (PAN)
9F36 → Application Transaction Counter (ATC)
8A   → Authorization Response Code
57   → Track 2 Equivalent Data

Some tags are constructed (bit 5 of the first tag byte = 1), meaning their value contains nested TLV objects. For example, tag 70 (EMV Reply Template for SDA) is constructed and contains primitive tags like 90 (Issuer Public Key Certificate) and 9F32 (Issuer Public Key Exponent).

Parser Comparison

FeatureCardWise EMV TLV Parseremv-lab.devPC/SC TLV Tools
PlatformWeb (browser, no install)WebDesktop (CLI/GUI)
EMV Tag DictionaryFull (EMV 4.3 Book 3 + kernel specs)Full EMV + payment scheme tagsBasic EMV tags
Constructed Object ParsingRecursive (unlimited depth)RecursiveRecursive
Multi-byte TagsYes (9Fxx, BFxx)YesYes
Length Encoding1-byte, 2-byte, 3-byte formsYesYes
Tag Name ResolutionEMV + ISO 7816 + GlobalPlatformEMV + payment schemeEMV only
PrivacyClient-side (no upload)Server-side (data sent to server)Local
Hex Input FormatFlexible (spaces, newlines, uppercase/lowercase)Requires clean hexRequires clean hex
Error HandlingReports exact offset of malformed TLVGeneric errorGeneric error

Privacy Consideration

Security note: TLV data from a real payment card can contain the card's PAN, track 2 data, and cryptogram information. If you paste this data into a server-side parser, the data is transmitted over the internet to the parser's backend. The CardWise EMV TLV Parser performs all decoding client-side in your browser — no TLV data ever leaves your device. This is critical when parsing data from production cards during security testing.

Common EMV Tags

TagNameDescription
4FApplication Identifier (AID)Identifies the card application (e.g., A0000000041010 for Visa Debit)
5AApplication PANPrimary Account Number (16 digits)
57Track 2 Equivalent DataPAN + expiration date + service code
5F24Application Expiration DateYYMMDD format
8AAuthorization Response Code00 = approved, 05 = declined, etc.
9F02Amount, AuthorizedTransaction amount in minor units (cents)
9F36Application Transaction CounterIncrementing counter for each transaction
9F26Application Cryptogram (AC)The EMV cryptogram (ARQC, TC, or AAC)
9F10Issuer Application DataCard-specific data for issuer verification
70EMV Reply Template for SDAConstructed: contains SDA certificates and data
How to parse EMV TLV: Capture the raw response from the card (e.g., the READ RECORD APDU response). Paste the hex string into the CardWise EMV TLV Parser. The parser will identify each tag, resolve its name, show the length, and recursively decode constructed objects. You can also use the EMV Tag Lookup to search for a specific tag by its hex code.
ACR122U NFC Reader ACR122U NFC Reader — Capture raw EMV TLV data from contactless payment cards. Use with the CardWise TLV Parser for instant client-side decoding. — Check Price on Amazon

Use Cases for TLV Parsing

Related Comparisons

Summary

The CardWise EMV TLV Parser stands out for client-side privacy and comprehensive tag resolution. When parsing TLV data from production cards, never paste it into a server-side tool. The CardWise parser decodes entirely in your browser, supports recursive constructed object parsing, and includes the full EMV tag dictionary plus ISO 7816 and GlobalPlatform tags.

Ready to decode TLV data? Try our EMV TLV Parser or the EMV Tag Lookup.