Smart Card APDU Response Decoder
Use this Smart Card APDU Response Decoder to split hexadecimal response APDU bytes into optional response data and the final SW1 / SW2 status word. Decode common success, warning, security, file, parameter and length-related smart-card status values.
| Field | Offset | Length | Hex | Interpretation |
|---|
-
-
What Is a Response APDU?
A response APDU is the message returned by a smart card after a command APDU has been processed. It contains zero or more response-data bytes followed by two mandatory status bytes called SW1 and SW2.
Response APDU:
[Response Data] SW1 SW2
Even when no response data exists, the status word is still present.
What Are SW1 and SW2?
SW1 and SW2 are the final two bytes of the response APDU. Together they form a 16-bit status word used to report the outcome of the command.
90 00
SW1 = 90
SW2 = 00
Status Word = 9000
The status can indicate success, warnings, incorrect parameters, security conditions, missing files, unsupported instructions or a corrected expected length.
APDU Status 9000
The most familiar smart-card status word is:
90 00
→ Command completed successfully
A response APDU may consist only of these two bytes or may include response data before them.
Response Data Before SW1/SW2
Consider:
01 02 03 90 00
The final two bytes are always interpreted as the status word:
Response Data:
01 02 03
SW1:
90
SW2:
00
Status:
9000 — Success
Common Smart Card Status Words
| Status | Typical Meaning |
|---|---|
| 9000 | Success |
| 61xx | More response data available |
| 6200 | Warning, state unchanged |
| 6282 | End of file or record reached before reading requested amount |
| 6300 | Warning, state changed / authentication-related warning |
| 63Cx | Verification failed with retry counter available |
| 6700 | Wrong length |
| 6982 | Security status not satisfied |
| 6983 | Authentication method blocked |
| 6985 | Conditions of use not satisfied |
| 6A80 | Incorrect parameters in command data |
| 6A82 | File or application not found |
| 6A83 | Record not found |
| 6A86 | Incorrect P1/P2 parameters |
| 6B00 | Wrong parameters P1/P2 |
| 6Cxx | Wrong Le; SW2 suggests correct length |
| 6D00 | Instruction code not supported or invalid |
| 6E00 | Class not supported |
| 6F00 | No precise diagnosis / internal error |
What Does 61xx Mean?
An SW1 value of 61 commonly indicates that additional response
bytes are available.
61 10
SW2 = 10 hex
= 16 decimal
Interpretation:
16 response bytes available
A follow-up GET RESPONSE command may be used by the applicable card protocol.
61 00 and the Maximum Length
For parameterized one-byte lengths, an SW2 value of 00 can
represent 256 bytes rather than zero.
61 00
Available length:
256 bytes
The decoder therefore does not incorrectly report zero additional bytes for this status pattern.
What Does 6Cxx Mean?
Status 6Cxx typically indicates that the command’s Le was
incorrect and SW2 supplies the length that should be used.
6C 20
SW2:
20 hex
Correct Le:
32 decimal
6C00 Meaning
Just as with a short Le field, an SW2 value of zero in a 6C status generally represents the maximum short expected length:
6C 00
→ Correct Le = 256
What Does 63Cx Mean?
The pattern 63Cx is particularly useful because the low nibble of
SW2 can report a retry counter in applicable verification operations.
63 C3
C3 & 0F
= 3
Retries remaining:
3
This is often encountered with PIN or verification-related commands.
APDU Status 6982
69 82
→ Security status not satisfied
The card understood the command structure but the required security state or authorization condition was not satisfied.
APDU Status 6983
69 83
→ Authentication method blocked
This can occur after a verification mechanism has reached a blocked state. The exact recovery procedure depends on the card application.
APDU Status 6985
69 85
→ Conditions of use not satisfied
The command may be valid but cannot be executed under the current card state, selection context or application conditions.
APDU Status 6A82
6A 82
→ File or application not found
This status is frequently encountered after unsuccessful file or application selection.
APDU Status 6A86
6A 86
→ Incorrect P1 or P2 parameters
The command instruction may be recognized while one or both command parameter bytes are inconsistent with the requested operation.
APDU Status 6D00
6D 00
→ Instruction not supported or invalid
This is commonly associated with an INS value the current card or application does not support.
APDU Status 6E00
6E 00
→ CLA not supported
The card may recognize the general APDU framing but reject the supplied command class.
APDU Status 6F00
6F 00
→ No precise diagnosis / internal error
This is a general failure status and normally provides less diagnostic detail than more specific status words.
Command APDU vs Response APDU
Command APDU
Contains CLA, INS, P1, P2 and optional Lc, command data and Le.
Response APDU
Contains optional response data followed by mandatory SW1 and SW2 status bytes.
Separating these two tools prevents response status bytes from being mistaken for command APDU length or data fields.
Response APDU Minimum Length
A normal response APDU requires at least two bytes because SW1 and SW2 are mandatory.
90
→ incomplete response
90 00
→ complete response status
The decoder rejects an input containing fewer than two bytes.
Unknown Status Words
A structurally valid response can contain a status word not included in the generic decoder table.
Smart Card APDU Response Decoder FAQs
What are SW1 and SW2?
What does APDU status 9000 mean?
What does 61xx mean?
What does 6100 mean?
What does 6Cxx mean?
What does 6C00 mean?
What does 63C3 mean?
What does 6982 mean?
What does 6983 mean?
What does 6985 mean?
What does 6A82 mean?
What does 6A83 mean?
What does 6A86 mean?
What does 6D00 mean?
What does 6E00 mean?
What does 6F00 mean?
Can a response APDU contain data before SW1 SW2?
Can proprietary cards return other status words?
Decode Smart Card Response Status Words
Paste a complete response APDU to separate response data from SW1/SW2 and interpret common success, warning, security, file, retry-counter and length-correction status patterns.