APDU Status Words
Searchable reference for APDU status words. ISO/IEC 7816-4 standard codes plus GlobalPlatform, EMV, and FIDO U2F additions. Search by code or by phrase.
What this reference covers
Spec
ISO/IEC 7816-4 §5.1.6.
Companion tool
Reading
Usage notes
Read SW1 SW2 as one 16-bit value. SW1 broadly classifies the outcome and SW2 refines it: 0x9000 is success, 0x61xx tells you SW2 bytes are still waiting (issue a GET RESPONSE), and 0x6Cxx tells you to re-issue the command with SW2 as the expected length. The 0x62xx/0x63xx ranges are warnings — the command completed but with a caveat (e.g. 0x63Cx reports x verification attempts remaining).
- Codes are card- and applet-dependent: the same
0x6A80can mean different things across ISO, EMV, and vendor definitions, so always check against the card's specification. - Never log a raw PIN or key when decoding a
0x63Cxretry-counter response. - Pair this reference with the SW1/SW2 lookup and the ISO 7816 reference when debugging a command exchange.
Frequently asked questions
What is a status word?
The two bytes, SW1 and SW2, that end every APDU response. 9000 is success; everything else is a warning or error.
Why do the same bytes mean different things?
ISO/IEC 7816-4 defines a common set and leaves ranges to the application, so GlobalPlatform, EMV and FIDO each define their own within those ranges.
What do 61xx and 6Cxx mean?
Neither is a failure. 61xx means XX more bytes are waiting and you should issue GET RESPONSE; 6Cxx means the Le you sent was wrong and XX is the correct value.
What is the difference between the 62/63 and 6A families?
62 and 63 are warnings: the command completed but with qualification. 6A values are checking errors, meaning the command was rejected before execution.
What does 6982 indicate?
Security status not satisfied — a valid command issued without the authentication it requires, typically before a secure channel has been established.