EMV Bit Field Decoder
Decode TVR, TSI, AIP, AUC, CID, CVM Results, Terminal Capabilities and the contactless qualifiers.
Runs entirely in your browser. Nothing you paste is uploaded, logged or stored.
Terminal Verification Results (tag 95)
A running record of everything the terminal believed went wrong during the transaction. The issuer compares it against the Issuer Action Codes to decide approve / decline / go online. When you are diagnosing an unexplained decline, this is the first field to read.
Reading EMV bit numbering
EMV numbers bits from 8 down to 1, where b8 is the most significant bit of a
byte and b1 the least. Byte 1 is the leftmost byte of the value. So in a TVR of
0508008000, byte 1 is 05, and the set bits are b3 and b1 — "CDA
failed" and a reserved bit.
This is the opposite convention from most programming languages, which is exactly why doing it by hand goes wrong. Every table on this page follows the EMV convention.
Which field is which
TVR (95) is what the terminal thinks went wrong. TSI (9B) is which processing steps actually ran. Read them together: a clear TVR bit means nothing if the corresponding TSI bit says the step never executed.
AIP (82) is the card advertising its capabilities; Terminal Capabilities (9F33) is the terminal advertising its own. Where they disagree, you get the surprising CVM outcomes — a card that supports offline PIN on a terminal that does not will fall through to signature or no CVM.
AUC (9F07) holds the issuer's restrictions on domestic versus international and cash versus goods. When a transaction violates them the terminal sets TVR byte 2 bit 5, "requested service not allowed for card product".
CID (9F27) is one byte that tells you the outcome of a GENERATE AC. The top two bits are the cryptogram type; bit 4 asks for an advice message; the bottom three bits carry a reason code, which is where you find "PIN try limit exceeded" on an offline decline.
Reserved bits
Bits marked RFU are reserved in the spec version cited. Some have since been assigned by newer kernels — relay resistance in TVR byte 5 and on-device CVM in the AIP are recent additions. This tool shows a set RFU bit rather than hiding it, because a set reserved bit usually means one of two things: your data is misaligned by a byte, or you are looking at a kernel newer than the table.
A set bit is not a decline
This is the most common misreading. The TVR is a report, not a verdict. What decides the outcome is whether a set TVR bit overlaps an Issuer Action Code — which is what the IAC comparator is for.
More EMV chip tools
TLV parser
Paste BER-TLV hex and get a decoded tag tree with EMV names, formats and nested templates.
IAC vs TVR
Compare a TVR against the Issuer Action Codes to see exactly which bit forced the decline or the go-online.
CVM list
Break tag 8E into its X and Y amounts and the cardholder verification rules, in priority order.
Status words
What 9000, 6A82, 6985 and the rest of SW1SW2 actually mean.
AID lookup
Application identifiers to scheme and product — A0000000031010 and friends.
EMVCo QR
Decode a merchant-presented QR payload and verify its CRC.