Next-Gen App & Browser Testing Cloud
Trusted by 2 Mn+ QAs & Devs to accelerate their release cycles

Paste a BER-TLV hex string and read a nested Tag, Length and Value breakdown with EMV tag names, decoded in your browser. This free tool is brought to you by TestMu AI (formerly LambdaTest), the team behind a unified software testing platform.
Input
A TLV decoder is a free online tool that reads data written in Tag-Length-Value form and splits it into labelled fields. You paste a hex string, and the decoder works out where each tag begins, how many bytes its value occupies, and what that value contains, then shows the whole message as a readable tree.
Every element in a TLV stream carries three parts. The tag identifies the data field, the length states the size of the value in bytes, and the value holds the payload itself. Because the length is declared up front, a parser can walk a message without knowing in advance what any particular field means.
This decoder parses BER-TLV, the encoding used by EMV payment cards and ISO 7816 smart cards. It recognises common EMV tags by name, expands constructed templates into their child elements, and runs entirely in your browser, so the hex you paste is not uploaded to a TestMu AI server.
Knowing the encoding rules makes the output far easier to read, and it explains why a stray byte can throw a whole message out of alignment. These are the rules this decoder applies:
Three byte tags fall outside what this parser handles, so a proprietary stream that uses them will not line up. For everyday EMV and ISO 7816 work the one and two byte forms cover the tags you meet.
Decoding a TLV string takes a paste and a click, and nothing needs to be installed. Follow these steps:
The sample button loads 6F1A840E315041592E5359532E4444463031A5088801025F2D02656E, a payment card directory response. It decodes to tag 6F, the File Control Information template, holding tag 84 with the value 1PAY.SYS.DDF01 and tag A5, which in turn holds a Short File Identifier and a language preference of en.
As a tool, the TLV decoder handles the fiddly parts of BER-TLV so you can read a message instead of counting bytes. Here are the features of our decoder:
TLV turns up wherever compact, self describing records travel between devices. These are the jobs the decoder shortens:
This decoder is maintained by TestMu AI (formerly LambdaTest), the team behind a unified testing platform, so it is shaped by the same debugging work that QA engineers do against real payment and device integrations.
Both tools take the same hex string, but they answer different questions. A hex viewer shows you the bytes, while a TLV decoder shows you the fields those bytes form. The table below sums up how the two differ:
| Aspect | TLV decoder | Hex viewer |
|---|---|---|
| What it reads | Tag, length, and value structure | A flat sequence of bytes |
| Output | A nested table of named fields | Offset columns with hex and ASCII |
| Field boundaries | Derived from the declared length bytes | You have to work them out yourself |
| Tag meaning | Looked up against an EMV tag dictionary | Not interpreted at all |
| Typical use | Card responses and TLV framed messages | Any binary blob, TLV or not |
A TLV decoder reads data written in Tag-Length-Value form and splits it into labelled fields. It takes a hex string, works out where each tag starts, how many bytes its value occupies, and what that value is, then shows the result as a readable tree.
It parses BER-TLV, the encoding used by EMV and ISO 7816. Tags of one byte, two bytes and three or more bytes are all supported, along with short form lengths below 128 and long form lengths that declare how many length bytes follow.
Yes. When a tag is marked as constructed, the decoder treats its value as another TLV sequence and parses it recursively. Each level is shown indented beneath its parent in the output table, so templates such as 6F and A5 expand into their child tags.
It ships with a built in dictionary of common EMV and ISO 7816 tags, covering entries such as 5A for the PAN, 5F24 for the expiry date, and 9F02 for the authorised amount. Anything outside that list is still parsed but is labelled Unknown.
Value Ext is the printable reading of a value. When every byte of a primitive tag falls in the printable ASCII range, the decoder also shows the value as text, which is how tag 84 resolves to 1PAY.SYS.DDF01 in the sample string.
Yes. Separate the strings with a space or a line break and each one is parsed as its own top level element. That is handy when you are comparing several card responses or several captured messages side by side in one pass.
The decoder rejects input that contains anything other than hexadecimal characters, and it rejects a string with an odd number of characters because bytes are read two characters at a time. Stray prefixes such as 0x and truncated captures are the usual causes.
The copy and download icons both produce the same indented plain text breakdown, listing each tag with its description on one line and its value beneath it. The download is saved as a .txt file. There is no JSON or CSV export.
No. The parsing runs in your browser with JavaScript, so the hex you paste is not uploaded to a TestMu AI server. Uploaded files are read locally, and the optional Load from URL button fetches only the address you type in yourself.
Yes. The decoder is completely free with no signup, login, or usage limit, and it is maintained by TestMu AI (formerly LambdaTest). You can decode as many TLV strings as your work needs without ever creating an account.
Did you find this page helpful?
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance