DESFire Status Codes
Documented DESFire EV1/EV2/EV3 response status codes with meaning and context. Search by code or by phrase.
| Code | Constant | Class | Detail |
|---|---|---|---|
| 00 # | OPERATION_OK | Success | Successful operation. |
| 0C # | NO_CHANGES | Info | No changes done to backup files. |
| 0E # | OUT_OF_EEPROM_ERROR | Error | Insufficient memory for operation. |
| 1C # | ILLEGAL_COMMAND_CODE | Error | Command not understood. |
| 1E # | INTEGRITY_ERROR | Error | CRC or MAC mismatch — possible tamper or transmission error. |
| 40 # | NO_SUCH_KEY | Error | Specified key number not present. |
| 7E # | LENGTH_ERROR | Error | Length of command string invalid. |
| 9D # | PERMISSION_DENIED | Error | Current configuration does not allow this command. |
| 9E # | PARAMETER_ERROR | Error | Value of parameter(s) invalid. |
| A0 # | APPLICATION_NOT_FOUND | Error | Application with requested AID not present. |
| A1 # | APPL_INTEGRITY_ERROR | Error | Unrecoverable error in application; permanent inactivation. |
| AE # | AUTHENTICATION_ERROR | Error | Current authentication status does not allow command. |
| AF # | ADDITIONAL_FRAME | Info | Additional data frame is to be sent. Common during multi-frame command/response. |
| BE # | BOUNDARY_ERROR | Error | Attempt to read/write beyond file limits. |
| C1 # | CARD_INTEGRITY_ERROR | Error | Unrecoverable error in PICC; permanent inactivation. |
| CA # | COMMAND_ABORTED | Error | Command not completed (e.g. CommitTransaction not issued). |
| CD # | PICC_DISABLED_ERROR | Error | PICC was disabled by an unrecoverable error. |
| CE # | COUNT_ERROR | Error | Number of applications exceeded (max 28). |
| DE # | DUPLICATE_ERROR | Error | Creation of file/application failed because already exists. |
| EE # | EEPROM_ERROR | Error | Could not complete NV-write operation. |
| F0 # | FILE_NOT_FOUND | Error | Specified file number not in the selected application. |
| F1 # | FILE_INTEGRITY_ERROR | Error | Unrecoverable error within file; permanent inactivation. |
What this reference covers
Spec
NXP DESFire EV1 / EV2 / EV3 datasheets.
Companion tool
Primary sources
What this reference does not cover
These are native DESFire status bytes — the single byte a native command returns. If your reader stack wraps commands in ISO 7816-4 APDUs, you will see two-byte SW1/SW2 values instead, and 91xx is the usual carrier for a native status inside a wrapped response. Check which framing you are using before looking a value up here.
Coverage is the documented EV1, EV2 and EV3 set. Later generations add codes for the features they introduce, and some readers surface their own transport-level errors that never came from the card at all — a timeout or a field drop is not a DESFire status.
Frequently asked questions
What does a DESFire status byte look like?
A single byte rather than the two-byte SW1/SW2 of ISO 7816-4 — 0x00 for OPERATION_OK, and specific codes for each error condition.
What is ADDITIONAL_FRAME?
Status 0xAF, meaning the card has more to send or expects more from you. Continue the exchange rather than treating it as a failure.
What causes AUTHENTICATION_ERROR?
The wrong key, wrong key number, or wrong crypto type for the application — or issuing a command that requires a session before authenticating.
Why do I see PERMISSION_DENIED on a readable file?
The access-rights word names a key you have not authenticated with in this session. Selecting an application clears authentication state.
Do status codes differ between EV1, EV2 and EV3?
The common set is stable across generations; later generations add codes for the features they introduce, such as transaction MAC and proximity check.