ISO 7816 part 4, section..1 2 3 4 5 6 7 8 9 annex.. A B C D E F]

For the latest version of ISO7816 part 4, please contact ISO in Switzerland.

ISO 7816-4 section 7 - Transmission-oriented Interindustry Commands

7.1 GET RESPONSE command 
7.2 ENVELOPE command

It shall not be mandatory for all cards complying to this part of ISO/IEC 7816 to support all the described commands or all the options of a supported command.

When international interchange is required, a set of card system services and related commands and options shall be used as defined in clause 9.

Table 11 provides a summary of the commands defined in this part of ISO/IEC 7816.

The impact of secure messaging (see 5.6) on the message structure is not described in this clause.

The list of error and warning conditions given in each clause 7.X.5 is not exhaustive (see 5.4.5).

7.1 GET RESPONSE command

7.1.1 Definition and scope

The GET RESPONSE command is used to transmit from the card to the interface device APDU(s) (or part of the APDUs) which otherwise could not be transmitted by the available protocols.

7.1.2 Conditional usage and security

No condition.

7.1.3 Command message

Table 74 – GET RESPONSE command APDU

CLAAs defined in 5.4.1
INS‘C0’
P1-P2‘0000’ (other values are RFU)
Lc fieldEmpty
Data fieldEmpty
Le fieldMaximum length of data expected in response

7.1.4 Response message (nominal case)

Table 75 – GET RESPONSE response APDU

Data field(Part of) APDU according to Le
SW1-SW2Status bytes

7.1.5 Status conditions

The following specific normal processing may occur : 

SW1=’61’ with SW2

  • ‘XX’: Normal processing: more data bytes are available (‘XX’ indicates a number of extra data bytes still available by subsequent GET RESPONSE).

The following specific warning condition may occur :

SW1=’62’ with SW2=

  • ’81’: Part of returned data may be corrupted

The following specific error conditions may occur. 

SW1=’67’ with SW2=

  • ’00’: Wrong length (the Lc field is incorrect)

SW1=’6A’ with SW2=

  • ’86’: Incorrect parameters P1-P2

SW1=’6C’ with SW2=

  • ‘XX’: Wrong length (wrong Le field, ‘XX’ indicates the exact length)

7.2 ENVELOPE command

7.2.1 Definition and scope

The ENVELOPE command is used to transmit APDU(s) or part of APDUs or any data string which otherwise could not be transmitted by the available protocols.

NOTE – The usage of ENVELOPE for SM is shown in annex F .

7.2.2 Conditional usage and security

No condition.

7.2.3 Command message

Table 76 – ENVELOPE command APDU
CLAAs defined in 5.4.1
INS‘C2’
P1-P2‘0000’ (other values are RFU)
Lc fieldLength of the subsequent data field
Data field(Part of) APDU
Le fieldEmpty of length of expected data

When the ENVELOPE command is used under T=0 for transmitting data strings, an empty data field in an ENVELOPE command APDU means end of data string.

7.2.4 Response message (nominal case)

Table 77 – ENVELOPE response APDU
Data fieldEmpty or (part of) APDU according to Le
SW1-SW2Status bytes

NOTE – The status bytes belong to the ENVELOPE command. Status bytes of a command transmitted in the data field of the ENVELOPE command may be found in the data field of the ENVELOPE response.

7.2.5 Status conditions

The following specific error conditions may occur. 

SW1=’67’ with SW2=

  • ’00’: Wrong length (the Lc field is incorrect)
  • Easy-to-use chip card integration with .NET library
.NET library for chip cards

with C# and VB.NET sample code for Mifare, DESFire EV1, JavaCard, KVK, eGK, SIM, PIV, CAC, HID Prox, iCLASS, SEOS and many more