EMV tags · Kernel 2 and Kernel 8

DF8115 9F8204 Error Indication

TagDF8115 – Kernel 2
9F8204 – Kernel 8
NameError Indication
Format and lengthb 6
SourceKernel, sent to the terminal
Where you see itIn the Discretionary Data of the outcome

The Error Indication is the first data object to read when a contactless transaction fails. It is 6 bytes long and records which layer failed and why. Kernel 2 uses DF8115, Kernel 8 uses 9F8204. In both kernels it is part of the Discretionary Data sent with the outcome.

Structure

  • L1, 1 byte, communication with the card: 00 OK, 01 timeout error, 02 transmission error, 03 protocol error.
  • L2, 1 byte, the kernel's processing of card data: for example 01 CARD DATA MISSING, 03 STATUS BYTES, 04 PARSING ERROR, 06 CARD DATA ERROR, 0F TERMINAL DATA ERROR.
  • L3, 1 byte, the interface with the terminal: for example 01 timeout, or missing transaction data.
  • SW12, 2 bytes: the status word of the card response that caused the error, when there is one.
  • Msg On Error, 1 byte: the message identifier to display.

Kernel differences

The structure is the same, but each kernel has its own L2 and L3 codes. Kernel 2 includes codes such as CAM FAILED, MAX LIMIT EXCEEDED, MAGSTRIPE NOT SUPPORTED and errors for its Integrated Data Storage. Kernel 8 adds codes for its own security features: DECRYPTION FAILED, IAD MAC FAILED and EDA MAC FAILED. For L3, Kernel 8 uses TIMEOUT and TRANSACTION DATA MISSING. Use the decoder on this page, which applies the right table for each tag.

How to debug with it

  • L1 set: look at the RF side first, such as card position, antenna or field strength.
  • L2 STATUS BYTES: read SW12. 6985, for example, means the card refused the command because its conditions of use were not satisfied.
  • L2 CARD DATA MISSING or CARD DATA ERROR: compare the card's data with what the kernel requires, often a missing or badly formatted mandatory tag.
  • L3 set: the problem is on the terminal side, for example the amount was not provided in time.

Example

00 03 00 69 85 FF: no Level 1 or Level 3 problem; the kernel stopped on status bytes, because the card answered 6985. No specific message is requested.

Common mistakes

  • Logging only the outcome status, so the Error Indication is lost.
  • Reading SW12 0000 as an error. It means no status word applies.
  • Decoding a Kernel 8 Error Indication with Kernel 2 codes, or the reverse.

Decode a value

Open in the TLV parser

Related

Kernel 8 definitions follow EMV Contactless Book C-8 v1.0; Kernel 2 definitions follow EMV Contactless Book C-2. Always check the EMVCo and payment scheme specifications that apply to your project.