
Terminal Verification Results (TVR): A sequence of bits produced by the terminal reading an EMV card, based on logical checks (for example,
an expired card). This data object is used in deciding whether the terminal will accept a payment transaction online, reject it, or allow it to continue. The TVR format and its descriptions are as follows:


Structure of the TVR
The TVR is a 5-byte (40-bit) data object carried under EMV tag 95. All bits are 0 at the start of a transaction. If the terminal detects a problem during any check it performs throughout the transaction, it sets the corresponding bit to 1. As a result, by the end of the transaction the TVR provides a summary of all the adverse conditions the terminal encountered.
What do the bytes indicate?
- Byte 1 – Offline data authentication: The relevant bits are set if offline card authentication (SDA, DDA, CDA) was not performed or failed, or if the card appears on the terminal's exception file.
- Byte 2 – Transaction restrictions: This byte is flagged if the application versions on the card and terminal differ, the card has expired, the card is not yet valid, or the requested service is not permitted.
- Byte 3 – Cardholder verification: This is reflected here if verification failed, the PIN try limit was exceeded, there is no PIN pad, or an online PIN was entered.
- Byte 4 – Terminal risk management: The bits in this byte are set if the transaction exceeded the floor limit, the consecutive offline limits were exceeded, or the transaction was randomly selected for online processing.
- Byte 5 – Issuer checks: This is flagged if issuer authentication or issuer script processing failed.
How is the TVR used in the decision process?
The terminal compares the TVR bit by bit against the Terminal Action Code (TAC) and Issuer Action Code (IAC) values. There are three types of these codes: "decline," "online," and "default." For example, if a bit in the TVR is also set to 1 in the decline code, the transaction is declined offline. If it is set to 1 in the online code, the transaction is sent to the bank. If neither matches, the transaction may be approved offline.
The TVR is also passed to the bank within the authorization message. This allows the bank to see which checks the terminal had trouble with during the transaction and make its approval decision accordingly. Decoding the TVR is also one of the first things examined when analyzing declined transactions.



