> For the complete documentation index, see [llms.txt](https://developer.magtek.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.magtek.com/hardware/card-readers/mms-dyna-devices/dynaflex-ii-go/documents/developers-manuals/programmers-manual-commands/commands/nfc-mifare-pass-through/pass-through-for-mifare-plus.md).

# Pass Through for MIFARE Plus

## Command 0x1103 – Pass Through Command for MIFARE Plus, Type 2

After a MIFARE Plus EV1/EV2/SE/X Tag is activated, the Host uses this command to send commands and receive responses to and from a MIFARE Plus tag.

For MIFARE Plus SE/X, the Device will not auto detect an error from the MIFARE Tag that has been removed to end the pass-through session. To end the pass-through session, the Host application can send the last command, CANCEL command (0xFF), or receive error response from the MIFARE Tag.

For MIFARE Plus EV1/EV2 at Security Level 3, after the first Read/Write/Value operation, the Device will not auto detect an error from the MIFARE Tag that has been removed to end the pass-through session. To end the pass-through session, the Host application can send the last command, CANCEL command (0xFF), or receive error response from the MIFARE Tag.

After the card is configured to successfully switch to Security Level 1, the card will be discovered as MIFARE Classic 1K/4K and can use the same functionality as MIFARE Classic 1K/4K commands.

For more details, please refer to NXP NDA documentation ds206234-Product data sheet MIFARE Plus Functionality of implementations on smart card controllers (3.4)

## Table - Command 0x1103 – Pass Through Command for MIFARE Plus, Type 2

<table><thead><tr><th>Tag</th><th width="76.33331298828125">Len</th><th width="319">Value / Description</th><th width="74">Typ</th><th width="80">Req</th><th width="98.666748046875">Default</th></tr></thead><tbody><tr><td>Beginning of any wrappers, at minimum including <strong>Request Message</strong></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td><strong>1103 =</strong> Command 0x1103 – Pass Through Command for MIFARE Plus, Type 2</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>81</td><td>var</td><td>Command to Send. See Table 110 - MIFARE Plus EV1/EV2/SE/X SL0 (Security Level 0) Commands. See Table 111 – MIFARE Plus EV1/EV2/SE/X SL3 (Security Level 3) Commands</td><td>B</td><td>R</td><td></td></tr><tr><td>82</td><td>01</td><td>00 – No Encrypt 01 - Encrypt</td><td></td><td></td><td></td></tr><tr><td>83</td><td>01</td><td>00 – Expect More Commands 01 – FF (Last Command) If this is the last command, the Device will provide a single beep after receiving a successful response from the tag, otherwise, the device will provide a double beep</td><td>B</td><td>R</td><td></td></tr><tr><td>End of any wrappers, at minimum including Request Message</td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table>

## Table - MIFARE Plus EV1/EV2/SE/X SL0 (Security Level 0) Commands

<table><thead><tr><th width="117.33331298828125">Command</th><th width="98">Length</th><th width="295.66668701171875">Field Value</th><th width="75">EV1</th><th width="77.9998779296875">EV2</th><th width="66.6666259765625">SE</th><th width="59.3333740234375">X</th></tr></thead><tbody><tr><td>GET_VERSION</td><td>1</td><td>The GET_VERSION command is used to retrieve manufacturing related data of the MIFARE Plus EV1/EV2 cards Byte 0 = 0x60</td><td>Y</td><td>Y</td><td>N</td><td>N</td></tr><tr><td>READ_SIG</td><td>2</td><td>The READ_SIG command returns an IC-specific, 48-byte ECC originality check signature of MIFARE Plus EV1/EV2 cards. Byte 0 = 0x3C Byte 1 = 0x00, RFU</td><td>Y</td><td>Y</td><td>N</td><td>N</td></tr><tr><td>WRITE_PERSO</td><td>19</td><td><p>The WRITE_PERSO command is used to pre-personalize AES keys and data from the initial delivery configuration to a customer specific value. </p><p></p><p>Byte 0 = 0xA8 </p><p>Byte 1-2 = Number of Block or Key to be written to (MSB first). See NXP doc ds206234, table 113. </p><p>Byte 3 to 18 = 16 bytes value of the key or data which shall be written (in plain)</p></td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>COMMIT_PERSO</td><td>2</td><td><p>The COMMIT_PERSO command is used to finalize the personalization and switch up to security level 1 or security level 3. </p><p></p><p>For MIFARE Plus EV1/EV2, the following mandatory AES keys must be written using the WRITE_PERSO command before it can be switched to security level 1 or security level 3.</p><ul><li>Card Configuration Key</li><li>Card Master Key</li><li>Level 2 Switch Key</li><li>Level 3 Switch Key</li></ul><p></p><p>For MIFARE Plus SE, the following mandatory AES keys must be written using the WRITE_PERSO command before it can be switched to security level 1 (for L1 card) or security level 3 (for L3 card).</p><ul><li>Card Configuration Key</li><li>Card Master Key</li><li>Level 3 Switch Key</li></ul><p></p><p>For MIFARE Plus X, the following mandatory AES keys must be written using the WRITE_PERSO command before it can be switched to security level 1 (for L1 card) or security level 3 (for L3 card).</p><ul><li>Card Configuration Key</li><li>Card Master Key</li><li>Level 2 Switch Key (for L1 card)</li><li>Level 3 Switch Key (for L1 card)</li></ul><p></p><p>Byte 0 = 0xAA </p><p>Byte 1 = Security Level Option for EV1 and EV2 cards</p><ul><li>0x01 = Security Level 1</li><li>0x03 = Security Level 3</li><li>Other values = Invalid. Device will return error.</li></ul><p></p><p>Byte 1 = 0x00 for SE and X cards. The Device will return error for other values. </p><p></p><p>It is also highly recommended to change all sector AES keys as well as the data within this security level in a secure environment.</p><p></p><p>This command is behaved as the last command. The Device will provide a single beep after receiving a successful response from a card, otherwise, device will provide a double beep.</p></td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>CANCEL</td><td>1</td><td><p>This command is used to terminate the pass-through command session. </p><p></p><p>Byte 0 = 0xFF</p></td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr></tbody></table>

## Table  – MIFARE Plus EV1/EV2/SE/X SL3 (Security Level 3) Commands

<table><thead><tr><th width="130.33331298828125">Command</th><th width="96">Length</th><th width="327">Field Value</th><th width="74">EV1</th><th width="77.99993896484375">EV2</th><th width="67.33331298828125">SE</th><th width="42.6666259765625">X</th></tr></thead><tbody><tr><td>MIFARE Plus Authenticate commands</td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>First Authenticate (part1 and part2)</td><td>3</td><td><p>First Authenticate Byte 0 = 0x70 Byte 1-2 = Key Number of the key to be authenticated (MSB first). See NXP doc ds206234, table 113. Byte 3 = MIFARE Plus AES_Key#</p><ul><li>0x01 = AES_Key1 = 16 bytes value stored in Property 1.2.1.1.4.5 MIFARE Plus AES_Key1.</li><li>0x02 = AES_Key2 = 16 bytes value stored in Property 1.2.1.1.4.6 MIFARE Plus AES_Key2.</li><li>0x03 = AES_Key3 = 16 bytes value stored in Property 1.2.1.1.4.7 MIFARE Plus AES_Key3.</li><li>0x04 = AES_Key4 = 16 bytes values stored in Property 1.2.1.1.4.8 MIFARE Plus AES_Key4.</li><li>0x05 = AES_Key5 = 16 bytes values stored in Property 1.2.1.1.4.9 MIFARE Plus AES_Key5.</li><li>0x06 = AES_Key6 = 16 bytes values stored in Property 1.2.1.1.4.A MIFARE Plus AES_Key6.</li></ul></td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Following Authenticate (part 1 and part 2)</td><td>3</td><td>Following Authenticate Byte 0 = 0x76 Byte 1-2 = Key Number of the key to be authenticated (MSB first). See NXP doc ds206234, table 113. Byte 3 = MIFARE Plus AES_Key# (same AES_Key# options as First Authenticate)</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>ResetAuth</td><td>1</td><td>Reset the authentication Byte 0 = 0x78</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>READ commands</td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Read</td><td>4</td><td>Reading encrypted, no MAC on response, MAC on command. This command offers the possibility to read the data from one or multiple blocks in an encrypted way. A MAC is only used on the command sent to the PICC, no MAC is attached to the response. Byte 0 = 0x30 Byte 1-2 = Block number of the 1st block to be read (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01 – 0x0F = Number of blocks to be read. Sector Trailers do not count if Byte 3 > 1. Use Byte 3 = 1 for reading Sector Trailer.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Read MACed</td><td>4</td><td>Reading encrypted, MAC on response, MAC on Command. This command offers the possibility to read the data from one or multiple blocks in an encrypted way. A MAC is used on the command sent to the PICC and on the response received. Byte 0 = 0x31 Byte 1-2 = Block number of the 1st block to be read (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01 – 0x0F = Number of blocks to be read. Sector Trailers do not count if Byte 3 > 1. Use Byte 3 = 1 for reading Sector Trailer.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Read Plain</td><td>4</td><td>Reading in plain, no MAC on response, MAC on command. This command offers the possibility to read the data in plain from one or multiple blocks. A MAC is used on the command and not on the response. Byte 0 = 0x32 Byte 1-2 = Block number of the 1st block to be read (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01 – 0x0F = Number of blocks to be read. Sector Trailers do not count if Byte 3 > 1. Use Byte 3 = 1 for reading Sector Trailer.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Read Plain MACed</td><td>4</td><td>Reading in plain, MAC on response, MAC on command. This command offers the possibility to read the data in plain from one or multiple blocks. A MAC is used on the command sent to the PICC as well as on the response from the PICC Byte 0 = 0x33 Byte 1-2 = Block number of the 1st block to be read (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01 – 0x0F = Number of blocks to be read. Sector Trailers do not count if Byte 3 > 1. Use Byte 3 = 1 for reading Sector Trailer.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Read UnMACed</td><td>4</td><td>Reading encrypted, no MAC on response, no MAC on command. This command offers the possibility to read the data from one or multiple blocks in an encrypted way. By default, Read with MAC on command is required. To Read with no MAC on command, needs to modify the card MFP Configuration Block. Byte 0 = 0x34 Byte 1-2 = Block number of the 1st block to be read (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01 – 0x0F = Number of blocks to be read. Sector Trailers do not count if Byte 3 > 1. Use Byte 3 = 1 for reading Sector Trailer.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Read UnMACed, Response MACed</td><td>4</td><td>Reading encrypted, MAC on response, no MAC on command. This command offers the possibility to read the data from one or multiple blocks in an encrypted way. A MAC is used only on the response received. By default, Read with MAC on command is required. To Read with no MAC on command, needs to modify the card MFP Configuration Block. Byte 0 = 0x35 Byte 1-2 = Block number of the 1st block to be read (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01 – 0x0F = Number of blocks to be read. Sector Trailers do not count if Byte 3 > 1. Use Byte 3 = 1 for reading Sector Trailer.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Read Plain UnMACed</td><td>4</td><td>Reading in plain, no MAC on response, no MAC on command. This command offers the possibility to read the data in plain from one or multiple blocks. A MAC is not used on the response and not on the command. By default, Read with MAC on command is required. To Read with no MAC on command, needs to modify the card MFP Configuration Block. Byte 0 = 0x36 Byte 1-2 = Block number of the 1st block to be read (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01 – 0x0F = Number of blocks to be read. Sector Trailers do not count if Byte 3 > 1. Use Byte 3 = 1 for reading Sector Trailer.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Read Plain UnMACed, Response MACed</td><td>4</td><td>Reading in plain, MAC on response, no MAC on command. This command offers the possibility to read the data in plain from one or multiple blocks. A MAC is used on the response and not on the command. By default, Read with MAC on command is required. To Read with no MAC on command, needs to modify the card MFP Configuration Block. Byte 0 = 0x37 Byte 1-2 = Block number of the 1st block to be read (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01 – 0x0F = Number of blocks to be read. Sector Trailers do not count if Byte 3 > 1. Use Byte 3 = 1 for reading Sector Trailer.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>WRITE commands</td><td></td><td></td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Write</td><td>20/36/52</td><td>Writing encrypted, no MAC on response, MAC on Command. This command offers the possibility to write the data to up to three blocks in an encrypted way. MAC is only used on the command sent to the PICC. Byte 0 = 0xA0 Byte 1-2 = Block number of the 1st to be written block (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01/0x02/0x03 = number of blocks (16 byte) of the data to be written Byte 4 – n = Data to be written, equal to number of blocks * 16.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Write MACed</td><td>20/36/52</td><td>Writing encrypted, MAC on response, MAC on command. This command offers the possibility to write the data to up to three blocks in an encrypted way. A MAC is used on the command sent to the PICC and on the response received from the PICC. Byte 0 = 0xA1 Byte 1-2 = Block number of the 1st to be written block (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01/0x02/0x03 = number of blocks (16 byte) of the data to be written Byte 4 – n = Data to be written, equal to number of blocks * 16.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Write Plain</td><td>20/36/52</td><td>Writing in plain, no MAC on response, MAC on command. This command offers the possibility to write the data to up to three blocks in plain. A MAC is only used on the command sent to the PICC. Byte 0 = 0xA2 Byte 1-2 = Block number of the 1st to be written block (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01/0x02/0x03 = number of blocks (16 byte) of the data to be written Byte 4 – n = Data to be written, equal to number of blocks * 16.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Write Plain MACed</td><td>20/36/52</td><td>Writing in plain, MAC on response, MAC on command. This command offers the possibility to write the data to up to three blocks in plain. A MAC is used on the command sent to the PICC as well as on the response from the PICC Byte 0 = 0xA3 Byte 1-2 = Block number of the 1st to be written block (MSB first). See NXP doc ds206234, table 113. Byte 3 = 0x01/0x02/0x03 = number of blocks (16 byte) of the data to be written Byte 4 – n = Data to be written, equal to number of blocks * 16.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>VALUE operations</td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>Increment</td><td>7</td><td>Increment encrypted, no MAC on response, MAC on command. This command offers the possibility to increment a value block where the command is secured by a MAC calculated, but not on the response. Byte 0 = 0xB0 Byte 1-2 = Source Block number (MSB first). Byte 3-6 = The 4 bytes value to be incremented in LSB order. Example for increment by 1: 0x01 00 00 00</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Increment MACed</td><td>7</td><td>Increment encrypted, MAC on response, MAC on command. Byte 0 = 0xB1 Byte 1-2 = Source Block number (MSB first). Byte 3-6 = The 4 bytes value to be incremented in LSB order. Example for increment by 1: 0x01 00 00 00</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Decrement</td><td>7</td><td>Decrement encrypted, no MAC on response, MAC on command. Byte 0 = 0xB2 Byte 1-2 = Source Block number (MSB first). Byte 3-6 = The 4 bytes value to be decremented in LSB order. Example for decrement by 1: 0x01 00 00 00</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Decrement MACed</td><td>7</td><td>Decrement encrypted, MAC on response, MAC on command. Byte 0 = 0xB3 Byte 1-2 = Source Block number (MSB first). Byte 3-6 = The 4 bytes value to be decremented in LSB order. Example for decrement by 1: 0x01 00 00 00</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Transfer</td><td>3</td><td>Transfer, no MAC on response, MAC on command. The Transfer command stores the content of the Transfer Buffer to the specified address. The Transfer command can be applied to any block. The Transfer command can only be executed after an Increment, Decrement, IncrementTransfer, DecrementTransfer or Restore command has been successfully executed since the latest authentication. The command is secured by a MAC on a command. No MAC is calculated on the response. Byte 0 = 0xB4 Byte 1-2 = Destination Block number (MSB first).</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Transfer MACed</td><td>3</td><td>Transfer, MAC on response, MAC on command. Byte 0 = 0xB5 Byte 1-2 = Destination Block number (MSB first).</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Increment Transfer</td><td>9</td><td>Increment Transfer encrypted, no MAC on response, MAC on Command. Combined increment and transfer. Byte 0 = 0xB6 Byte 1-2 = Source Block number (MSB first). Byte 3-4 = Destination Block number (MSB first). Byte 5-8 = The 4 bytes value to be incremented in LSB order. Example for increment by 1: 0x01 00 00 00</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Increment Transfer MACed</td><td>9</td><td>Increment Transfer encrypted, MAC on response, MAC on command. Byte 0 = 0xB7 Byte 1-2 = Source Block number (MSB first). Byte 3-4 = Destination Block number (MSB first). Byte 5-8 = The 4 bytes value to be incremented in LSB order.</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Decrement Transfer</td><td>9</td><td>Decrement Transfer encrypted, no MAC on response, MAC on command. Byte 0 = 0xB8 Byte 1-2 = Source Block number (MSB first). Byte 3-4 = Destination Block number (MSB first). Byte 5-8 = The 4 bytes value to be decremented in LSB order. Example for decrement by 1: 0x01 00 00 00</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Decrement Transfer MACed</td><td>9</td><td>Decrement Transfer encrypted, MAC on response, MAC on command. Byte 0 = 0xB9 Byte 1-2 = Source Block number (MSB first). Byte 3-4 = Destination Block number (MSB first). Byte 5-8 = The 4 bytes value to be decremented in LSB order. Example for decrement by 1: 0x01 00 00 00</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Restore</td><td>3</td><td>Restore encrypted, no MAC on response, MAC on command. The Restore command copies the Content found in the Value Block at the given address to the Transfer Buffer. The Restore command can only be applied to value blocks. Byte 0 = 0xC2 Byte 1-2 = Source Block number (MSB first).</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Restore MACed</td><td>3</td><td>Restore encrypted, MAC on response, MAC on command. Byte 0 = 0xC3 Byte 1-2 = Source Block number (MSB first).</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr><tr><td>Others</td><td></td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>GET_VERSION</td><td>1</td><td>The GET_VERSION command is used to retrieve manufacturing related data of the MIFARE Plus EV1/EV2 cards. This command can be sent before Read/Write/Value commands. Byte 0 = 0x60</td><td>Y</td><td>Y</td><td>N</td><td>N</td></tr><tr><td>READ_SIG</td><td>2</td><td>The READ_SIG command returns an IC-specific, 48-byte ECC originality check signature of MIFARE Plus EV1/EV2 cards. This command can be sent before Read/Write/Value commands. Byte 0 = 0x3C Byte 1 = 0x00, RFU</td><td>Y</td><td>Y</td><td>N</td><td>N</td></tr><tr><td>CANCEL</td><td>1</td><td>This command is used to terminate the pass-through command session. Byte 0 = 0xFF</td><td>Y</td><td>Y</td><td>Y</td><td>Y</td></tr></tbody></table>

## Table - Response Data for Command 0x1103 – Pass Through Command for MIFARE Plus, Type 2

<table><thead><tr><th>Tag</th><th width="76.66668701171875">Len</th><th width="252.66668701171875">Value / Description</th><th width="75">Typ</th><th width="74.66668701171875">Req</th><th width="97.3333740234375">Default</th></tr></thead><tbody><tr><td>Beginning of any wrappers, at minimum including Response Message</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>1103 = Command 0x1103 – Pass Through Command for MIFARE Plus, Type 2</td><td></td><td></td><td></td><td></td><td></td></tr><tr><td>81</td><td>01</td><td>Tag Response Code 0x00 = Success 0x01 = Failed</td><td>B</td><td>R</td><td>N/A</td></tr><tr><td>82</td><td>Var</td><td>Encryption Control If encrypted, see Table 93 - Payload for Encrypted NFC/MIFARE Data. If unencrypted see Table 94 – Unencrypted NFC/MIFARE Data.</td><td>B</td><td>O</td><td>N/A</td></tr><tr><td>End of any wrappers, at minimum including Response Message</td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table>

If the request started successfully, the Request Status in the message wrapper is OK, Started / Running, All good / requested operation was successful.

## Table - Request Example (Get Version)

{% code title="Example (Hex)" %}

```
AA 00 81 04 01 DA 11 03 84 0B 11 03 81 01 60 82 01 00 83 01 00
```

{% endcode %}

## Table - Response Example (Get Version)

{% code title="Example (Hex)" %}

```
AA 00 81 04 82 DA 11 03 82 04 01 00 00 00 84 28 11 03 81 01 00 82 21 FC 1F DF 
7A 1C 04 02 01 11 00 16 04 04 02 01 01 01 16 04 04 4D 59 5A 3E 18 90 CF 8D 15 
61 51 21 23
```

{% endcode %}

## Encrypted Data Format

## Table - Payload for Encrypted NFC/MIFARE Data

<table><thead><tr><th width="96">Tag</th><th width="73.66668701171875">Len</th><th width="373">Value / Description</th><th width="73.66668701171875">Typ</th><th width="74.3333740234375">Req</th><th width="100.666748046875">Default</th></tr></thead><tbody><tr><td>/DFDF59</td><td>var</td><td>Encrypted Data Primitive. Decrypt the value of this TLV data object using the algorithm and variant specified in the <strong>Encrypted Data KSN</strong> parameter and the <strong>Encrypted Data Encryption Type</strong> parameter to read its contents. The format of the decrypted data is shown in Table 360.</td><td>B</td><td>R</td><td></td></tr><tr><td>/DFDF50</td><td>var</td><td>Encrypted Data KSN</td><td>B</td><td>R</td><td></td></tr><tr><td>/DFDF51</td><td>01</td><td>Encrypted Data Encryption Type. See <a href="https://magtek.gitbook.io/magtek-pilot-gitbooks/internal-documentation/index/4.0-data-types-and-shared-tlv-data-objects/4.4-encryption-type">section 4.4 Encryption Type</a> for a list of valid values.</td><td>B</td><td>R</td><td></td></tr><tr><td>End of Notification Message</td><td></td><td></td><td></td><td></td><td></td></tr></tbody></table>

## Table – Unencrypted NFC/MIFARE Data

| Tag   | Len | Value / Description       | Typ | Req | Default |
| ----- | --- | ------------------------- | --- | --- | ------- |
| FC    | var | NFC/MIFARE Data Container | T   | R   |         |
| /DF7A | var | NFC/MIFARE Data           | B   | O   |         |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developer.magtek.com/hardware/card-readers/mms-dyna-devices/dynaflex-ii-go/documents/developers-manuals/programmers-manual-commands/commands/nfc-mifare-pass-through/pass-through-for-mifare-plus.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
