EMV tags · Kernel 2 and Kernel 8
DF8115 9F8204 Error Indication
| Tag | DF8115 – Kernel 29F8204 – Kernel 8 |
|---|---|
| Name | Error Indication |
| Format and length | b 6 |
| Source | Kernel, sent to the terminal |
| Where you see it | In 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:
00OK,01timeout error,02transmission error,03protocol error. - L2, 1 byte, the kernel's processing of card data: for example
01CARD DATA MISSING,03STATUS BYTES,04PARSING ERROR,06CARD DATA ERROR,0FTERMINAL DATA ERROR. - L3, 1 byte, the interface with the terminal: for example
01timeout, 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
0000as an error. It means no status word applies. - Decoding a Kernel 8 Error Indication with Kernel 2 codes, or the reverse.
Decode a value
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.