Terminal Capabilities Decoder
Paste Terminal Capabilities (tag 9F33) and see how the terminal reads cards, which CVMs it offers and which offline authentication it supports.
Runs entirely in your browser. Nothing you paste is uploaded, logged or stored.
Terminal Capabilities (tag 9F33)
What the terminal can do: how it reads cards, which cardholder verification methods it offers, and which offline authentication it supports. Mismatches against the card AIP explain a lot of odd CVM outcomes.
Terminal Capabilities bit table (tag 9F33)
3 bytes, 6 hex characters. Byte 1 is the leftmost, and b8 is the most significant bit of each byte.
Byte 1: Card Data Input Capability
| Bit | Hex | Meaning when set |
|---|---|---|
| b8 | 80 | Manual key entry |
| b7 | 40 | Magnetic stripe |
| b6 | 20 | IC with contacts |
| b5 | 10 | Reserved for future use |
| b4 | 08 | Reserved for future use |
| b3 | 04 | Reserved for future use |
| b2 | 02 | Reserved for future use |
| b1 | 01 | Reserved for future use |
Byte 2: CVM Capability
| Bit | Hex | Meaning when set |
|---|---|---|
| b8 | 80 | Plaintext PIN for ICC verification |
| b7 | 40 | Enciphered PIN for online verification |
| b6 | 20 | Signature (paper) |
| b5 | 10 | Enciphered PIN for offline verification |
| b4 | 08 | No CVM required |
| b3 | 04 | On-device cardholder verification Later addition for CDCVM. |
| b2 | 02 | Reserved for future use |
| b1 | 01 | Reserved for future use |
Byte 3: Security Capability
| Bit | Hex | Meaning when set |
|---|---|---|
| b8 | 80 | SDA |
| b7 | 40 | DDA |
| b6 | 20 | Card capture The terminal can physically retain the card. ATMs only. |
| b5 | 10 | Reserved for future use |
| b4 | 08 | CDA |
| b3 | 04 | Reserved for future use |
| b2 | 02 | Reserved for future use |
| b1 | 01 | Reserved for future use |
Other fields: TVR decoder , TSI decoder , AIP decoder , 9F34 decoder , TTQ decoder , and the rest (AUC, CID, 9F40, 9F35, CTQ) in the bit field decoder .
Three bytes, three questions
Terminal Capabilities is tag 9F33. Byte 1 is how the terminal can read a card:
keyed, magnetic stripe, or chip with contacts. Byte 2 is which cardholder verification methods
it can perform. Byte 3 is which offline data authentication methods it supports, plus whether
it can capture a card.
It is a configuration value. The terminal does not compute it per transaction, so the same
device should send the same 9F33 every time, and a value that changes between
transactions points at more than one configuration on the estate.
Reading E0F8C8
Byte 1 is E0: 80 plus 40 plus 20, so
manual key entry, magnetic stripe and chip. Byte 2 is F8: plaintext offline PIN,
online PIN, signature, enciphered offline PIN and no CVM. Byte 3 is C8: SDA, DDA
and CDA. That is an attended terminal that can do everything.
Change byte 2 to B8 and online PIN is gone, which is what a terminal in an
offline PIN market often looks like. Change it to 08 and only "no CVM" is left,
which is a terminal with no PIN pad.
Where byte 2 decides the outcome
During cardholder verification the terminal walks the card's CVM List in order. A rule whose
condition is not met is passed over, and the commonest condition code, 03, is
"if terminal supports the CVM". So byte 2 of 9F33
decides which rule in the list is the first one that applies. Put a card's list through the
CVM list parser next to this value and the method that
was chosen stops being a surprise. What was performed is then recorded in
CVM Results.
Where byte 3 decides the outcome
Byte 3 is the terminal's half of the offline data authentication choice. The card's half is in the AIP. The terminal uses the strongest method both support, and if there is none it sets "offline data authentication was not performed" in the TVR.
Related fields
Additional Terminal Capabilities, tag 9F40, carries the transaction types and the
keypad, printer and display hardware. Terminal Type, tag 9F35, is one coded byte
for who operates the terminal, whether it is attended and whether it can go online. Both
decode in the bit field decoder.
Contactless readers describe themselves separately. For a tap, the capabilities the card sees
are in the kernel's own data, such as the TTQ, and
9F33 may describe only the contact side of the same device.
More EMV chip tools
All EMV chip toolsTLV parser
Paste BER-TLV hex and get a decoded tag tree with EMV names, formats and nested templates.
Bit fields
Decode TVR, TSI, AIP, AUC, CID, CVM Results, Terminal Capabilities and the contactless qualifiers.
TVR decoder
Paste a TVR (tag 95) and see which of its 40 bits are set, with the full bit table underneath.
TSI decoder
Paste a TSI (tag 9B) and see which processing steps the terminal says it performed.
AIP decoder
Paste an AIP (tag 82) and see what the card supports: SDA, DDA, CDA, cardholder verification and issuer authentication.
9F34 decoder
Paste CVM Results (tag 9F34) and see which method the terminal performed, under which condition, and whether it succeeded.
TTQ decoder
Paste a TTQ (tag 9F66) and see what the contactless reader told the card about its capabilities and requirements.
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.