All Tools
Tools/CTQ Decoder
💳
EMV & TLVBeta

CTQ Decoder

Decode the Card Transaction Qualifiers (tag 9F6C) — the 2-byte bitmap the card returns instructing the terminal on its contactless requirements. Tag 9F6C is kernel-specific: pick Visa (Kernel 3) or UnionPay (Kernel 7).

Tag 9F6C is kernel-specific. Visa contactless (Kernel 3) layout, also typical for Amex/Discover/JCB.

What the Card Transaction Qualifiers (9F6C) do

The Card Transaction Qualifiers (CTQ), EMV tag 9F6C, is the card's reply to the terminal's TTQ. Where the TTQ says what the reader can and will do, the 2-byte CTQ tells the reader what the card requires for this specific tap: whether online PIN or signature must be collected, whether the transaction should go online if offline data authentication fails, and whether a consumer-device CVM (a phone unlock or biometric) was already performed.

The card returns the CTQ in the GPO response during a Visa qVSDC transaction. The reader then reconciles it with its own TTQ capabilities — if the CTQ demands a CVM the terminal cannot perform, the tap either falls back or declines.

Reading the two bytes

Byte 1 carries the actionable requirements — "Online PIN required", "Signature required", "Go online if ODA failed", "Switch interface if offline declined", and "CDCVM performed". Byte 2 is largely reserved, with the consumer-device CVM and issuer-update indicators being the bits you will normally see set. As with the TTQ, the layout is kernel-specific, so pick Visa (Kernel 3) or UnionPay (Kernel 7) above before reading the result.

Common questions

The phone was unlocked with Face ID — why no PIN prompt?

The card sets the "CDCVM performed" bit in the CTQ, telling the terminal cardholder verification already happened on the device, so no further CVM is requested.

How is the CTQ different from the TTQ?

They are a request/response pair: the terminal offers capabilities in the TTQ (9F66); the card answers with its requirements in the CTQ (9F6C). Decode both together to understand a contactless decision.

Bit definitions follow the Visa Contactless (VCPS) and UnionPay QuickPass kernel specifications. Decoding runs entirely in your browser.