# Application Group 0x07 - EMV L2 Contact Messages (Chip Card L2 Mode Only) - 16 - 30

**Command 0x07::0x11 - Read EMV L2 Terminal Capabilities Configuration**

The host uses this command to read the device’s EMV L2 Terminal Capabilities Configuration set by Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration. Descriptions of the tags can be found in *EMV Integrated Circuit Card Specifications for Payment Systems v4.3* .

## Table - Message Structure for Command 0x07::0x11 - Read EMV L2 Terminal Capabilities Configuration

<table data-header-hidden><thead><tr><th width="65.18182373046875" valign="top"></th><th width="124.272705078125" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">01</td><td>Message Type Data Object (Tag C0) = 0x01 Command</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">11</td><td>Command ID Data Object (Tag C2) = 0x11 Read EMV L2 Terminal Capabilities Configuration</td></tr><tr><td valign="top">C4</td><td valign="top">Calculated</td><td valign="top">Byte 0: Database Selector 0x00 = EMV Contact L2</td><td></td></tr></tbody></table>

## Table - Response to Command 0x07::0x11 - Read EMV L2 Terminal Capabilities Configuration

<table data-header-hidden><thead><tr><th width="72.45452880859375" valign="top"></th><th width="74.09088134765625" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">02</td><td>Message Type Data Object (Tag C0) = 0x02 Response</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">11</td><td>Command ID Data Object (Tag C2) = 0x11 Read EMV L2 Terminal Capabilities Configuration</td></tr><tr><td valign="top"><p> </p><p> </p><p>C3</p></td><td valign="top"><p> </p><p> </p><p>01</p></td><td valign="top"><p>Result Code Data Object (Tag C3) = 0x00 = Success, the read completed</p><p>0x95 = Failure, invalid Database Selector field 0x9A = Internal Error, Database Corruption 0x9C = Invalid Configuration Identifier</p></td><td></td></tr><tr><td valign="top"><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p>15</p></td><td valign="top"><p>Byte 0: Configuration Identifier</p><p>One byte field containing the Configuration Identifier parameter the host set using</p><p>Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration.</p><p> </p><p>Bytes 1..21: Current Configuration SHA-1 value, a 20 byte SHA-1 hash of the configuration</p><p>required in the devices device’s Implementation Conformance Statement (ICS).</p></td><td></td></tr></tbody></table>

**Command 0x07::0x12 - Read EMV L2 Configuration Check Values**

The host can use this command to retrieve check values (CVs) for a number of device configuration settings. Use this command after finishing configuring a device to obtain baseline values, then use it again at any time and compare the check values to the baseline values to quickly determine whether any changes have occurred. A changed Master CV indicates a configuration change has occurred. The individual check values can help determine which configuration section has changed. Merchant data in tags 9F16, 9F1C, and 9F4E are not included in any check value calculations.

## Table - Message Structure for Command 0x07::0x12 - Read EMV L2 Configuration Check Values

<table data-header-hidden><thead><tr><th width="63.3636474609375" valign="top"></th><th width="68" valign="top"></th><th width="196.1817626953125" valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">01</td><td>Message Type Data Object (Tag C0) = 0x01 Command</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">0E</td><td>Command ID Data Object (Tag C2) = 0x12 Read EMV L2 Configuration Check Values</td></tr></tbody></table>

## Table - Response to Command 0x07::0x12 - Read EMV L2 Configuration Check Values

<table data-header-hidden><thead><tr><th width="69.72723388671875" valign="top"></th><th width="58.727294921875" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">02</td><td>Message Type Data Object (Tag C0) = 0x02 Response</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">0E</td><td>Command ID Data Object (Tag C2) = 0x12 EMV L2 Configuration Check Values</td></tr><tr><td valign="top">C3</td><td valign="top">01</td><td valign="top">Result Code Data Object (Tag C3) = 0x00 = Success</td><td></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>14</p></td><td valign="top"><p>Check Values (CV)</p><p>Bytes 0..3 Master CV, combines all individual CVs (captures any changes)</p><p> </p><p>Bytes 4..7 EMV Terminal Configuration CV</p><p>·         Read the corresponding configurations using Command 0x07::0x11 - Read EMV L2 Terminal Capabilities Configuration and Command 0x07::0x06 - EMV L2 Get Contact Terminal Configuration</p><p>·         Modify the corresponding configurations using Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration and Command 0x07::0x05 - EMV L2 Modify Contact Terminal Configuration</p><p>Bytes 8..11 EMV Application Configuration CV Includes all non-empty EMV Application slots</p><p>·         Read the corresponding configurations using Command 0x07::0x08 - EMV L2 Get Contact Application Configuration</p><p>·         Modify the corresponding configurations using Command 0x07::0x07 - EMV L2 Modify Contact Application Configuration</p><p>Bytes 12..15 Device Configuration CV</p><p>·         Read the corresponding configurations using Command 0x03::0x72 </p><p>- Get Device Configuration ·         Modify the corresponding configurations using Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration and Command 0x03::0x70 - Set Chip Card Support</p><p>Bytes 16..19 CAPK CV</p><p>Includes all non-empty CAPK slots</p><p>·         Read the corresponding configurations using Command 0x07::0x0A - EMV L2 Get CA Public Key</p><p>·         Modify the corresponding configurations using Command 0x07::0x09 - EMV L2 Modify CA Public Key</p></td><td></td></tr></tbody></table>

\
**Command 0x07::0x13 - EMV L2 Continue Action**

If the host has called Command 0x07::0x00 - EMV L2 Start Transaction with the Transaction Options specifying Continue Mode Enabled, Wait, the host uses this command to tell the device how to proceed with the transaction after receiving Notification 0x07::0x8C - EMV L2 Continue Notification. The host can cancel the transaction or modify the transaction amount here.

## Table - Message Structure for Command 0x07::0x13 - EMV L2 Continue Action

<table data-header-hidden><thead><tr><th width="62.45452880859375" valign="top"></th><th width="120.727294921875" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">01</td><td>Message Type Data Object (Tag C0) = 0x01 Command</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">02</td><td>Command ID Data Object (Tag C2) = 0x13 EMV L2 Continue Action</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>E0</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = (optional - No tags mean proceed)</p><p>Action &#x3C;DF45> &#x3C;1>&#x3C;value></p><p>·         0x00 = Proceed with transaction</p><p>·         0x01 = Cancel transaction</p><p>New Transaction Amount &#x3C;9F02>&#x3C;06>&#x3C;value></p><p>This optional parameter changes the transaction amount. The value is in EMV format.</p></td><td></td></tr></tbody></table>

If an error occurs, the device will terminate the command and report the error using an ACK Response containing the result code. For a full list of error codes, see 2.4.4 Result Code Data Object (Tag C3). If no error occurs, the device responds as follows:

## Table - Response to Command 0x07::0x13 - EMV L2 Continue Action

<table data-header-hidden><thead><tr><th width="72.45458984375" valign="top"></th><th width="82.27276611328125" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">02</td><td>Message Type Data Object (Tag C0) = 0x02 Response</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">88</td><td>Command ID Data Object (Tag C2) = 0x13 EMV L2 Continue Action</td></tr><tr><td valign="top"><p> </p><p>C3</p></td><td valign="top"><p> </p><p>01</p></td><td valign="top"><p>Result Code Data Object (Tag C3) =</p><p>0x00 = OK / Done</p><p>0x02 = Invalid Parameter 0x08 = Not in Continue state</p></td><td></td></tr></tbody></table>

**Command 0x07::0x14 - EMV L2 Offline PIN CVM Result**

The host uses this command to send offline PIN data to the device in response to Notification 0x07::0x8B - EMV L2 Offline PIN CVM Request. The response from the EPP when reading the PIN includes the PIN block and sequence number needed for this command (DF53 and DFDF41).

## Table - Message Structure for Command 0x07::0x14 - EMV L2 Offline PIN CVM Result

<table data-header-hidden><thead><tr><th width="72.45452880859375" valign="top"></th><th width="118.63641357421875" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">01</td><td>Message Type Data Object (Tag C0) = 0x01 Command</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">02</td><td>Command ID Data Object (Tag C2) = 0x14 EMV L2 Offline PIN CVM Result</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>E0</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>&#x3C;DF45(operation result)> &#x3C;1>&#x3C;value> DF45 indicates the operation result as: 0x00 = Operation successful</p><p>0x01 = General failure</p><p>0x02 = User canceled operation. 0x03 = Operation timed out 0x04 = CVM failed</p><p>0x05 = PIN Bypass selected</p><p> </p><p>&#x3C;DF53>&#x3C;8>&#x3C;Offline encrypted PIN Block></p><p>&#x3C;DFDF41>&#x3C;8>&#x3C;EPP PIN Sequence Number></p></td><td></td></tr></tbody></table>

If an error occurs, the device will terminate the command and report the error using an ACK Response containing the result code. For a full list of error codes, see 2.4.4 Result Code Data Object (Tag C3). If no error occurs, the device responds as follows:

## Table - Response to Command 0x07::0x14 - EMV L2 Offline PIN CVM Result

<table data-header-hidden><thead><tr><th width="59.727294921875" valign="top"></th><th width="53.54547119140625" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">02</td><td>Message Type Data Object (Tag C0) = 0x02 Response</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">88</td><td>Command ID Data Object (Tag C2) = 0x14 EMV L2 Offline PIN CVM Result</td></tr><tr><td valign="top"><p> </p><p>C3</p></td><td valign="top"><p> </p><p>01</p></td><td valign="top"><p>Result Code Data Object (Tag C3) =</p><p>0x00 = OK / Done</p><p>0x02 = Invalid Parameter</p><p>0x08 = No offline PIN CVM in progress</p></td><td></td></tr></tbody></table>

**Command 0x07::0x80 - EMV L2 Transaction Status**

The host uses this command to get the ongoing status of a transaction it has initiated using Command 0x07::0x00 - EMV L2 Start Transaction. The host may opt to call this command during an EMV transaction to monitor progress, or it may subscribe to notifications using Command 0x01::0x50 - Subscribe to Notifications and the device will send status reports proactively using Notification 0x07::0x8A - EMV L2 Transaction Status.

## Table - Message Structure for Command 0x07::0x80 - EMV L2 Transaction Status

<table data-header-hidden><thead><tr><th width="74.272705078125" valign="top"></th><th width="71.27276611328125" valign="top"></th><th width="197.3636474609375" valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">01</td><td>Message Type Data Object (Tag C0) = 0x01 Command</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">80</td><td>Command ID Data Object (Tag C2) = 0x80 EMV L2 Transaction Status</td></tr></tbody></table>

If an error occurs, the device will terminate the command and report the error using an ACK Response containing the result code. For a full list of error codes, see 2.4.4 Result Code Data Object (Tag C3). If no error occurs, the device responds as follows:

## Table - Response to Command 0x07::0x80 - EMV L2 Transaction Status

<table data-header-hidden><thead><tr><th width="74.272705078125" valign="top"></th><th width="64" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">02</td><td>Message Type Data Object (Tag C0) = 0x02 Response</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">80</td><td>Command ID Data Object (Tag C2) = 0x80 EMV L2 Transaction Status</td></tr><tr><td valign="top">C3</td><td valign="top">01</td><td valign="top">Result Code Data Object (Tag C3) = 0x00 OK / Done</td><td></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>05</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>Byte 0 indicates the current major state of the transaction:</p><p>0x00 = No events since start of transaction 0x01 = Card Inserted</p><p>0x02 = Card Error</p><p>0x03 = Transaction Progress Change 0x04 = Waiting for User Response 0x05 = Timed Out</p><p>0x06 = Transaction Terminated 0x07 = Host Canceled Transaction 0x08 = Card Removed</p><p> </p><p>Byte 1 indicates the remaining time available, in seconds, for the indicated operation to complete. The timeout is set by the host when calling Command 0x07::0x00 - EMV L2 Start Transaction.</p><p>Byte 2 indicates the progress within the major transaction state: 0x00 = No transaction in progress</p><p>0x01 = Waiting for cardholder to insert card 0x02 = Powering up the card</p><p>0x03 = Selecting the application</p><p>0x04 = Waiting for user language selection </p><p>0x05 = Waiting for user application selection </p><p>0x06 = Initiating application </p><p>0x07 = Reading application data</p><p>0x08 = Offline data authentication 0x09 = Process restrictions</p><p>0x0A = Cardholder verification 0x0B = Terminal risk management 0x0C = Terminal action analysis</p><p>0x0D = Generating first application cryptogram 0x0E = Card action analysis</p><p>0x0F = Online processing</p><p>0x10 = Waiting online processing response 0x11 = Transaction complete</p><p>0x12 = Transaction error 0x13 = Transaction approved 0x14 = Transaction declined</p><p>0x15 = Transaction canceled by MSR swipe 0x16 = EMV error - Conditions Not Satisfied 0x17 = EMV error - Card Blocked</p><p>0x18 = Application selection failed 0x19 = EMV error - Card Not Accepted 0x1A = Empty Candidate List</p><p>0x1B = Application Blocked</p><p> </p><p>Bytes 3..4 are reserved</p></td><td></td></tr></tbody></table>

**Notification 0x07::0x81 - EMV L2 Display Message Request**

The device sends this notification to request that the host display a message to the operator or cardholder. The host should display the message exactly as received. If the message is too long to fit on a single line it may be split to multiple lines if the host wishes. Messages are limited to 1024 bytes. If the message is zero length, this is a request for the host to clear the display.

## Table - Message Structure for Notification 0x07::0x81 - EMV L2 Display Message Request

<table data-header-hidden><thead><tr><th width="76.09088134765625" valign="top"></th><th width="111.18182373046875" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x03 Notification</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">81</td><td>Command ID Data Object (Tag C2) = 0x81 Display Message Request</td></tr><tr><td valign="top">C4</td><td valign="top">Calculated</td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>A string of data up to 1024 bytes containing message to be displayed on the host</p></td><td></td></tr></tbody></table>

**Notification 0x07::0x82 - EMV L2 User Selection Request**

The device uses this notification to inform the host that a cardholder must enter a selection before the device can continue with the transaction. This can include:

* The host needs the cardholder to select a language.
* The host and card have more than one mutually supported application in common.
* The host and card have only one mutually supported application in common, but the host called Command 0x07::0x00 - EMV L2 Start Transaction with the Transaction Options parameter specifying Enhanced App Select Mode Enabled.

In response, the host should prompt the cardholder to select an item from the menu, then send Command 0x07::0x02 - EMV L2 User Selection Result to provide the selection result and inform the device to continue the transaction.

## Table - Message Structure for Notification 0x07::0x82 - EMV L2 User Selection Request

<table data-header-hidden><thead><tr><th width="86.0909423828125" valign="top"></th><th width="116.3636474609375" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x03 Notification</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">82</td><td>Command ID Data Object (Tag C2) = 0x82 EMV L2 User Selection Request</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>Byte 0 Selection Type specifies what kind of selection request this is: 0x00 = Payment Brand Application Selection</p><p>0x01 = Language Selection</p><p> </p><p>Byte 1 Timeout specifies the maximum time, in seconds, allowed to complete the selection process. If this time is exceeded, the host should send Command 0x07::0x02 - EMV L2 User Selection Result with the Selection Status field set to 0x02 (User Selection Request aborted, timeout), after which the transaction will be aborted and an appropriate Transaction Status will be available. Value 0 (User Selection Request completed) is not allowed in this case.</p><p> </p><p>Bytes 2..n Menu Items is a variable length a collection of null-terminated strings (maximum 16 strings). The maximum length of each string is 64 characters. The first string is a title and should not be considered for selection. It is expected that the host will display the menu items to the cardholder, then, after the cardholder makes a selection, call Command 0x07::0x02 - EMV L2 User Selection Result to return the number of the item the cardholder selected.</p><p>When using the Selection Type Payment Brand Application Selection, each string below the list title includes the Application Identifier (AID) in ASCII and the Application Name. The format for the strings is as follows:</p><p>Select Application&#x3C;NULL></p><p>&#x3C;ASCII AID Value 1>|&#x3C;Application Name 1>&#x3C;NULL></p><p>&#x3C;ASCII AID Value 2>|&#x3C;Application Name 2>&#x3C;NULL> If the host has enabled Enhanced App Selection mode using the Transaction Options parameter of Command 0x07::0x00 - EMV L2 Start Transaction, the device adds tags (in ASCII form) found on the card after the application name to allow the host to make informed decisions about application selection. If the device finds any of tags 5F55, 5F56, 42, 50, 87, or 9F0C on the card, it includes them here. The device also sends this notification even if only one application selection is available.</p><p>&#x3C;ASCII AID Value 1>|&#x3C;Application Name 1>|&#x3C;TLV>|&#x3C;TLV>|..&#x3C;NULL</p><p>&#x3C;ASCII AID Value 2>|&#x3C;Application Name 2>|&#x3C;TLV>|&#x3C;TLV>|..&#x3C;NULL</p><p>e.g. A0000000000010|VISA|5F55025555|4203480110|870101</p></td><td></td></tr></tbody></table>

```
Example of data the device sends to the host:
C0 01 03 C1 01 07 C2 01 82 C4 4C 64 53 65 6C 65 63 74 20 41 70 70 6C
69 63 61 74 69 6F 6E 00 41 30 30 30 30 30 30 30 30 33 7C 56 49 53 41
20 43 52 45 44 49 54 00 41 30 30 30 30 30 30 30 39 38 30 38 34 30 7C
56 49 53 41 20 43 4F 4D 4D 4F 4E 20 44 45 42 49 54 00

Decoded message:
Select Application<NULL>A0 00 00 00 03 | VISA CREDIT<NULL>A0 00 00 00
98 08 40|VISA COMMON DEBIT<NULL>
```

**Notification 0x07::0x83 - EMV L2 ARQC Message**

The device uses this notification to send ARQC data for the host to process. After the host processes the ARQC data, it should send Command 0x07::0x03 - EMV L2 Online Processing Result / Acquirer Response to inform the device it can proceed with the transaction.

## Table - Message Structure for Notification 0x07::0x83 - EMV L2 ARQC Message

<table data-header-hidden><thead><tr><th width="71.54547119140625" valign="top"></th><th width="116.81817626953125" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x03 Notification</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">83</td><td>Command ID Data Object (Tag C2) = 0x83 ARQC Message</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>Bytes 0..1 ARQC Data Length. Two byte binary, most significant byte first. This gives the total length of the ARQC Data message that follows, excluding padding and CBC-MAC.</p><p> </p><p>Bytes 2..n ARQC Message</p><p>If the card does not match any rule in the device’s Account Data Whitelist (see Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist), the ARQC Message is a TLV data object with the contents shown in Table 4-114 - EMV ARQC Type - Account Data Not In Whitelist, otherwise the ARQC message is a TLV data object with the contents shown in Table 4-116 - EMV ARQC Type Account Data in Whitelist.</p></td><td></td></tr></tbody></table>

## Table - EMV ARQC Type - Account Data Not In Whitelist

<table data-header-hidden><thead><tr><th width="97.09088134765625" valign="top"></th><th width="55.45458984375" valign="top"></th><th valign="top"></th><th width="63.45452880859375" valign="top"></th><th width="61.54541015625" valign="top"></th><th width="81.8182373046875" valign="top"></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value / Description</td><td valign="top">Typ</td><td valign="top">Req</td><td valign="top">Default</td></tr><tr><td valign="top">F9</td><td valign="top">var</td><td valign="top">Container for MAC structure and generic data</td><td valign="top">T</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>/DFDF0B</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>03</p></td><td valign="top"><p>Message Data Information Byte 0 Data Type</p><p>·         0x00 = Reserved</p><p>·         0x01 = EMV Contact L2 Data</p><p> </p><p>Byte 1 Encryption</p><p>·         0x00 = Data is encrypted</p><p>·         0x00 = Data is clear Text</p><p>Byte 2 - Reserved</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>B</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top">/DFDF54</td><td valign="top">var</td><td valign="top">MAC KSN</td><td valign="top">B</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>/DFDF55</p></td><td valign="top"><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>MAC Encryption Type</p><p>·         0xxx xxxx = Fixed Key (Not used)</p><p>·         1xxx xxxx = DUKPT Key</p><p>·         xx00 xxxx = TDES</p><p>·         xx01 xxxx = AES128</p><p>·         xx10 xxxx = AES 256</p><p>·         xxxx xx00 = Data Variant </p><p>·         xxxx xx01 = PIN Variant</p><p>·         xxxx xx10 = MAC Variant</p></td><td valign="top"><p> </p><p> </p><p> </p><p>B</p></td><td valign="top"><p> </p><p> </p><p> </p><p>R</p></td><td valign="top"> </td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="88.9090576171875" valign="top"></th><th width="64.6363525390625" valign="top"></th><th valign="top"></th><th width="75.27276611328125" valign="top"></th><th width="60.272705078125" valign="top"></th><th width="93.54547119140625" valign="top"></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value / Description</td><td valign="top">Typ</td><td valign="top">Req</td><td valign="top">Default</td></tr><tr><td valign="top">/DFDF25</td><td valign="top">var</td><td valign="top">Device Serial Number (IFD Serial Number)</td><td valign="top">B</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top">/FA</td><td valign="top">var</td><td valign="top">Container for generic data</td><td valign="top">T</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top">//70</td><td valign="top">var</td><td valign="top">Container for ARQC</td><td valign="top">T</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p>///DFDF53</p></td><td valign="top"><p> </p><p>01</p></td><td valign="top"><p>Fallback Indicator</p><p>·         0x00 = No Fallback</p><p>·         0x01 = Technical Fallback</p><p>·         0x81 = MSR Fallback</p></td><td valign="top"><p> </p><p>B</p></td><td valign="top"><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top">///5F20</td><td valign="top">var</td><td valign="top">Cardholder Name</td><td valign="top">AN S</td><td valign="top">O</td><td valign="top"> </td></tr><tr><td valign="top">///5F30</td><td valign="top">02</td><td valign="top">Service Code</td><td valign="top">B</td><td valign="top">O</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p>///DFDF4D</p></td><td valign="top"><p> </p><p>var</p></td><td valign="top"><p>Masked Track 2 ICC Data</p><p>If the payment method presented by the cardholder provides it</p></td><td valign="top"><p> </p><p>AN</p></td><td valign="top"><p> </p><p>O</p></td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>///DFDF52</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>Card Type</p><p>·         0x00 = Other</p><p>·         0x01 = Magnetic Stripe ISO/ABA Financial (MSR)</p><p>·         0x02 = Magnetic Stripe AAMVA (MSR)</p><p>·         0x03 = Manual Entry</p><p>·         0x04 = Unknown</p><p>·         0x05 = Contact Chip Card (ICC)</p><p>·         0x06 = Contactless Chip Card (PICC), EMV</p><p>·         0x07 = MSR Financial and Contact Chip Card (ICC)</p><p>·         0x08 = Contactless PICC, Magnetic Stripe Data (MSD)</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>B</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top">///F8</td><td valign="top">var</td><td valign="top">Container for Encrypted Data</td><td valign="top">T</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>////DFDF59</p></td><td valign="top"><p> </p><p> </p><p> </p><p>var</p></td><td valign="top"><p>Encrypted Data Primitive</p><p>Decrypt the value of this TLV data object using the algorithm and variant specified in the Encrypted Transaction Data KSN (DFDF56) parameter and the Encrypted Transaction Data Encryption Type (DFDF57) parameter to read its contents. See Table 4-115 for the data structure as it should appear after decryption.</p></td><td valign="top"><p> </p><p> </p><p> </p><p>B</p></td><td valign="top"><p> </p><p> </p><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top">////DFDF56</td><td valign="top">var</td><td valign="top">Encrypted Transaction Data KSN</td><td valign="top">B</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p> </p><p>////DFDF57</p></td><td valign="top"><p> </p><p> </p><p>01</p></td><td valign="top"><p>Encrypted Transaction Data Encryption Type</p><p>·         1xxx xxxx = DUKPT Key</p><p>·         xx00 xxxx = TDES</p><p>·         xxxx xx00 = Data Variant</p><p>·         xxxx xx01 = PIN Variant</p></td><td valign="top"><p> </p><p> </p><p>B</p></td><td valign="top"><p> </p><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top">////DFDF58</td><td valign="top">01</td><td valign="top"><p>Number of Padding Bytes </p><p>Number of bytes added to DFDF59 value to force its length to a multiple of 8 bytes for TDES.</p></td><td valign="top">B</td><td valign="top">R</td><td valign="top"> </td></tr></tbody></table>

{% hint style="info" %}
Padding to ensure the length of data, starting with the message length at the very beginning, and ending with any additional padding, is a multiple of 8 bytes. This is a requirement of using the CBC-MAC algorithm.
{% endhint %}

{% hint style="info" %}
Four byte CBC-MAC. To calculate the MAC include the F9 tag, length, and contents, and pad it with zeroes to make overall length a multiple of 8. Use the DUKPT MAC variant of the transaction key (DUKPT MAC variant constant = 0000 0000 0000 FF00 0000 0000 0000 FF00) with the CBC-MAC algorithm, and use the first 4 bytes of the 8.&#x20;
{% endhint %}

## Table - EMV ARQC DFDF59 Decrypted Contents

<table data-header-hidden><thead><tr><th width="64.3636474609375" valign="top"></th><th width="73.272705078125" valign="top"></th><th valign="top"></th><th width="70.1817626953125" valign="top"></th><th width="61.8182373046875" valign="top"></th><th width="83.9090576171875" valign="top"></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value / Description</td><td valign="top">Typ</td><td valign="top">Req</td><td valign="top">Default</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>FC</p></td><td valign="top"><p> </p><p> </p><p> </p><p>var</p></td><td valign="top"><p>Decrypted Data Container</p><p>Inside this container, the device inserts all EMV TLV data objects specified by TLV data object DFDF02 in EMV Contact Terminal Settings and Defaults. For definitions of possible values for standard EMV TLV data objects, see <em>EMV 4.3 Book 3</em>. MagTek custom TLV data objects not defined in that specification are defined in the following rows of this table.</p></td><td valign="top"><p> </p><p> </p><p> </p><p>T</p></td><td valign="top"><p> </p><p> </p><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p>/DF8120</p></td><td valign="top"><p> </p><p>05</p></td><td valign="top"><p>Terminal Action Code - Default</p><p>For a list of possible values, see <em>EMV 4.3 Book 3</em> values for TLV object 95 Terminal Verification Results.</p></td><td valign="top"><p> </p><p>B</p></td><td valign="top"><p> </p><p>O</p></td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p>/DF8121</p></td><td valign="top"><p> </p><p>05</p></td><td valign="top"><p>Terminal Action Code - Denial</p><p>For a list of possible values, see <em>EMV 4.3 Book 3</em> values for TLV object 95 Terminal Verification Results.</p></td><td valign="top"><p> </p><p>B</p></td><td valign="top"><p> </p><p>O</p></td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p>/DF8122</p></td><td valign="top"><p> </p><p>05</p></td><td valign="top"><p>Terminal Action Code - Online</p><p>For a list of possible values, see <em>EMV 4.3 Book 3</em> values for TLV object 95 Terminal Verification Results.</p></td><td valign="top"><p> </p><p>B</p></td><td valign="top"><p> </p><p>O</p></td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p>/F4</p></td><td valign="top"><p> </p><p>var</p></td><td valign="top"><p>Container for encrypted MSR data</p><p>See Data Object F4 - Magnetic Stripe Reader Card Data for details</p></td><td valign="top"><p> </p><p>T</p></td><td valign="top"><p> </p><p>O</p></td><td valign="top"> </td></tr><tr><td valign="top">/F5</td><td valign="top">var</td><td valign="top">Container for encrypted PIN Data</td><td valign="top">T</td><td valign="top">O</td><td valign="top"> </td></tr><tr><td valign="top">//99</td><td valign="top">var</td><td valign="top">Encrypted PIN Block Data</td><td valign="top">B</td><td valign="top">O</td><td valign="top"> </td></tr><tr><td valign="top">//DFDF41</td><td valign="top">var</td><td valign="top">Encrypted PIN Block KSN</td><td valign="top">B</td><td valign="top">O</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p> </p><p>//DFDF42</p></td><td valign="top"><p> </p><p> </p><p>var</p></td><td valign="top"><p>PIN Block Encryption Type</p><p>·         0xxx xxxx = Fixed Key (Not used)</p><p>·         1xxx xxxx = DUKPT Key</p><p>·         xx00 xxxx = TDES</p><p>·         xx01 xxxx = AES128</p><p>·         xx10 xxxx = AES 256 </p><p>·         xxxx xx00 = Data Variant</p><p>·         xxxx xx01 = PIN Variant</p><p>·         xxxx xx10 = MAC Variant</p></td><td valign="top"><p> </p><p> </p><p>B</p></td><td valign="top"><p> </p><p> </p><p>O</p></td><td valign="top"> </td></tr></tbody></table>

{% hint style="info" %}
Padding to force DFDF59 plus padding to be a multiple of 8 bytes<br>
{% endhint %}

## Table - EMV ARQC Type Account Data in Whitelist

<table data-header-hidden><thead><tr><th width="100.727294921875" valign="top"></th><th width="65.3636474609375" valign="top"></th><th valign="top"></th><th width="53.18182373046875" valign="top"></th><th width="59.636474609375" valign="top"></th><th width="92.36346435546875" valign="top"></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value / Description</td><td valign="top">Typ</td><td valign="top">Req</td><td valign="top">Default</td></tr><tr><td valign="top">F9</td><td valign="top">var</td><td valign="top">Container for MAC structure and generic data</td><td valign="top">T</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>/DFDF0B</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>03</p></td><td valign="top"><p>Message Data Information Byte 0 Data Type</p><p>·         0x00 = Reserved</p><p>·         0x01 = EMV Contact L2 Data</p><p>Byte 1 Encryption</p><p>·         0x00 = Data is encrypted</p><p>·         0x00 = Data is clear Text</p><p>Byte 2 - Reserved</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>B</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top">/DFDF54</td><td valign="top">var</td><td valign="top">MAC KSN</td><td valign="top">B</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>/DFDF55</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>MAC Encryption Type</p><p>·         0xxx xxxx = Fixed Key (Not used)</p><p>·         1xxx xxxx = DUKPT Key</p><p>·         xx00 xxxx = TDES</p><p>·         xx01 xxxx = AES128</p><p>·         xx10 xxxx = AES 256</p><p>·         xxxx xx00 = Data Variant</p><p>·         xxxx xx01 = PIN Variant</p><p>·         xxxx xx10 = MAC Variant</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>B</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top">/DFDF25</td><td valign="top">var</td><td valign="top">Device Serial Number (IFD Serial Number)</td><td valign="top">B</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top">/FA</td><td valign="top">var</td><td valign="top">Container for generic data</td><td valign="top">T</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top">//70</td><td valign="top">var</td><td valign="top">Container for ARQC</td><td valign="top">T</td><td valign="top">R</td><td valign="top"> </td></tr><tr><td valign="top"><p> </p><p>///DFDF53</p></td><td valign="top"><p> </p><p>01</p></td><td valign="top"><p>Fallback Indicator</p><p>·         0x00 = No Fallback</p><p>·         0x01 = Technical Fallback</p><p>·         0x81 = MSR Fallback</p></td><td valign="top"><p> </p><p>B</p></td><td valign="top"><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top">///5F20</td><td valign="top">var</td><td valign="top">Cardholder Name</td><td valign="top">AN S</td><td valign="top">O</td><td valign="top"> </td></tr><tr><td valign="top">///5F30</td><td valign="top">02</td><td valign="top">Service Code</td><td valign="top">B</td><td valign="top">O</td><td valign="top"> </td></tr><tr><td valign="top">///DFDF4D</td><td valign="top">var</td><td valign="top"><p>Masked Track 2 ICC Data </p><p>If the payment method presented by the cardholder provides it</p></td><td valign="top">AN</td><td valign="top">O</td><td valign="top"> </td></tr></tbody></table>

<br>

&#x20;

<table data-header-hidden><thead><tr><th width="110.727294921875" valign="top"></th><th width="59.81817626953125" valign="top"></th><th valign="top"></th><th width="64" valign="top"></th><th width="61.9090576171875" valign="top"></th><th width="84.72735595703125" valign="top"></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value / Description</td><td valign="top">Typ</td><td valign="top">Req</td><td valign="top">Default</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>///DFDF52</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>Card Type</p><p>·         0x00 = Other</p><p>·         0x01 = Magnetic Stripe ISO/ABA Financial (MSR)</p><p>·         0x02 = Magnetic Stripe AAMVA (MSR)</p><p>·         0x03 = Manual Entry</p><p>·         0x04 = Unknown</p><p>·         0x05 = Contact Chip Card (ICC)</p><p>·         0x06 = Contactless Chip Card (PICC), EMV</p><p>·         0x07 = MSR Financial and Contact Chip Card (ICC)</p><p>·         0x08 = Contactless PICC, Magnetic Stripe Data (MSD)</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>B</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>R</p></td><td valign="top"> </td></tr><tr><td valign="top">var</td><td valign="top">var</td><td valign="top">List of Data Objects configured by terminal setting DFDF02 that can reported in the transaction</td><td valign="top"> </td><td valign="top"> </td><td valign="top"> </td></tr></tbody></table>

{% hint style="info" %}
Padding to ensure the length of data, starting with the message length at the very beginning, and ending with any additional padding, is a multiple of 8 bytes. This is a requirement of using the CBC-MAC algorithm.
{% endhint %}

{% hint style="info" %}
Four byte CBC-MAC. To calculate the MAC include the F9 tag, length, and contents, and pad it with zeroes to make overall length a multiple of 8. Use the DUKPT MAC variant of the transaction key (DUKPT MAC variant constant = 0000 0000 0000 FF00 0000 0000 0000 FF00) with the CBC-MAC algorithm, and use the first 4 bytes of the 8.
{% endhint %}

If the card matches one or more rules in the device’s Account Data Whitelist (see Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist), the ARQC Message is a TLV data object with the following contents:

**Notification 0x07::0x84 - EMV L2 Transaction Result**

The device sends this notification to provide the host with final information from the transaction. It will usually include batch data and an indication of whether a signature is required.

## Table - Message Structure for Notification 0x07::0x84 - EMV L2 Transaction Result

<table data-header-hidden><thead><tr><th width="78.81817626953125" valign="top"></th><th width="113" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x01 Command</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">84</td><td>Command ID Data Object (Tag C2) = 0x84 EMV L2 Transaction Result</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>Byte 0 Signature Required. This field indicates whether a cardholder signature is required to complete the transaction:</p><p>0x00 = No signature required</p><p>0x01 = Signature required. If a signature is required, the host should acquire the signature from the cardholder as part of the transaction data.</p><p>Bytes 1..2 Batch Data Length. Two byte binary, most significant byte first. This gives the total length of the Batch Data message that follows, excluding padding and CBC- MAC.</p><p> </p><p>Byte 3 Batch Data:</p><p>See Appendix C Transaction Result Message - Batch Data Format (EMV Only). It is expected that the host will save this data as a record of the transaction.</p></td><td></td></tr></tbody></table>

**Notification 0x07::0x87 - EMV L2 PIN Entry Show Prompt Request**

The device uses this notification to request that the host display a PIN entry related prompt on the host’s display.

## Table - Message Structure for Notification 0x07::0x87 - EMV L2 PIN Entry Show Prompt Request

<table data-header-hidden><thead><tr><th width="76.09088134765625" valign="top"></th><th width="78.45452880859375" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x03 Notification</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">87</td><td>Command ID Data Object (Tag C2) = 0x87 EMV L2 PIN Entry Show Prompt Request</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>Byte 0 Prompt ID specifies which prompt the device want the secure host to display: 0x01 = AMOUNT</p><p>0x02 = AMOUNT OK?</p><p>0x03 = APPROVED</p><p>0x04 = CALL YOUR BANK</p><p>0x05 = CANCEL OR ENTER</p><p>0x06 = CARD ERROR</p><p>0x07 = DECLINED</p><p>0x08 = ENTER AMOUNT</p><p>0x09 = ENTER PIN</p><p>0x0A = INCORRECT PIN</p><p>0x0B = INSERT CARD</p><p>0x0C = NOT ACCEPTED</p><p>0x0D = PIN OK</p><p>0x0E = PLEASE WAIT</p><p>0x0F = PROCESSING ERROR</p><p>0x10 = REMOVE CARD</p><p>0x11 = USE CHIP READER</p><p>0x12 = USE MAG STRIPE</p><p>0x13 = TRY AGAIN</p></td><td></td></tr></tbody></table>

**Notification 0x07::0x88 - EMV L2 Online PIN CVM Request**

The device uses this notification to request a online PIN block from the host.

## Table - Message Structure for Notification 0x07::0x88 - EMV L2 Online PIN CVM Request

<table data-header-hidden><thead><tr><th width="68.81817626953125" valign="top"></th><th width="57.81817626953125" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x03 Notification</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">88</td><td>Command ID Data Object (Tag C2) = 0x88 PIN CVM Request Notification</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>Byte 0 PAN status (see Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist)</p><p>0x00 = The card does not match any rule in the PAN whitelist. No PAN is available.</p><p>0x01 = The card matches one or more rules in the PAN whitelist. Full cleartext PAN for PIN block construction is available.</p><p>0x02 = The card matches one or more rules in the PAN whitelist. Partial cleartext PAN for PIN block construction is available.</p><p>0x03 = The card does not match any rule in the PAN whitelist, but an encrypted PAN is available for use with a paired Cryptera EPP.</p></td><td></td></tr></tbody></table>

## Table - Response to Notification 0x07::0x88 - EMV L2 Online PIN CVM Request

<table data-header-hidden><thead><tr><th width="77" valign="top"></th><th width="109.3636474609375" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">02</td><td>Message Type Data Object (Tag C0) = 0x02 Response</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">88</td><td>Command ID Data Object (Tag C2) = 0x88 PIN CVM Request Notification</td></tr><tr><td valign="top">C3</td><td valign="top">01</td><td valign="top"><p>Result Code Data Object (Tag C3) =</p><p>0x00 = OK / Done</p></td><td></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>E0</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>&#x3C;DF45(operation result)> &#x3C;1>&#x3C;value> DF45 indicates the operation result as: 0x00 = Operation successful</p><p>0x01 = General failure</p><p>0x02 = User canceled operation. 0x03 = Operation timed out 0x04 = CVM failed</p><p>0x05 = PIN Bypass selected</p><p> </p><p>&#x3C;DF53>&#x3C;len>&#x3C;Encrypted Online PIN block></p><p>&#x3C;DFDF41>&#x3C;len>&#x3C;PIN Encryption KSN></p><p>&#x3C;DFDF42>&#x3C;len>&#x3C;PIN Encryption type></p></td><td></td></tr></tbody></table>

**Notification 0x07::0x89 - EMV L2 Language Selection Result**

The device uses this notification to notify host the language selection result.

## Table - Message Structure for Notification 0x07::0x89 - EMV L2 Language Selection Result

<table data-header-hidden><thead><tr><th width="67" valign="top"></th><th width="67" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x03 Notification</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">89</td><td>Command ID Data Object (Tag C2) = 0x89 PIN CVM Request Notification</td></tr><tr><td valign="top"><p> </p><p>C4</p></td><td valign="top"><p> </p><p>02</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = 2-byte language ID</p><p>0x656E = English 0x6465 = German</p></td><td></td></tr></tbody></table>

**Notification 0x07::0x8A - EMV L2 Transaction Status**

The host can use Command 0x01::0x50 - Subscribe to Notifications to subscribe to this notification to receive notifications of ongoing progress of an EMV transaction it has initiated using Command 0x07::0x00 - EMV L2 Start Transaction. It may also request some of this status information on demand using Command 0x07::0x80 - EMV L2 Transaction Status.

## Table - Message Structure for Notification 0x07::0x8A - EMV L2 Transaction Status

<table data-header-hidden><thead><tr><th width="75.18182373046875" valign="top"></th><th width="69.45452880859375" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x03 Notification</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">8A</td><td>Command ID Data Object (Tag C2) = 0x8A EMV L2 Transaction Status</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>05</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) =</p><p>Byte 0 indicates the current major state of the transaction:</p><p>·         0x00 = No events since start of transaction</p><p>·         0x01 = Card Inserted</p><p>·         0x02 = Card Error</p><p>·         0x03 = Transaction Progress Change</p><p>·         0x04 = Waiting for User Response</p><p>·         0x05 = Timed Out</p><p>·         0x06 = Transaction Terminated</p><p>·         0x07 = Host Canceled Transaction</p><p>·         0x08 = Card Removed</p><p>Byte 1 indicates the remaining time available, in seconds, for the indicated major transaction state to complete. For information about specifying the timeout for cardholder interactions, see Command 0x07::0x00 - EMV L2 Start Transaction. For major states that do not involve cardholder interaction, the device sends 0x00.</p><p> </p><p>Byte 2 indicates the progress within the major transaction state:</p><p>·         0x00 = No transaction in progress</p><p>·         0x01 = Waiting for cardholder to insert card</p><p>·         0x02 = Powering up the card</p><p>·         0x03 = Selecting the application</p><p>·         0x04 = Waiting for user language selection</p><p>·         0x05 = Waiting for user application selection</p><p>·         0x06 = Initiating application</p><p>·         0x07 = Reading application data</p><p>·         0x08 = Offline data authentication</p><p>·         0x09 = Process restrictions</p><p>·         0x0A = Cardholder verification</p><p>·         0x0B = Terminal risk management</p><p>·         0x0C = Terminal action analysis</p><p>·         0x0D = Generating first application cryptogram</p><p>·         0x0E = Card action analysis</p><p>·         0x0F = Online processing</p><p>·         0x10 = Waiting online processing response </p><p>·         0x11 = Transaction complete</p><p>·         0x12 = Transaction error</p><p>·         0x13 = Transaction approved</p><p>·         0x14 = Transaction declined</p><p>·         0x15 = Transaction canceled by MSR swipe</p><p>·         0x16 = EMV error - Conditions Not Satisfied</p><p>·         0x17 = EMV error - Card Blocked</p><p>·         0x18 = Application selection failed</p><p>·         0x19 = EMV error - Card Not Accepted</p><p>·         0x1A = Empty Candidate List</p><p>·         0x1B = Application Blocked</p><p>·         0x20 = Waiting for Continue Response</p><p>·         0x21 = Waiting for Offline PIN</p><p>Bytes 3..4 Reserved</p></td><td></td></tr></tbody></table>

**Notification 0x07::0x8B - EMV L2 Offline PIN CVM Request**

The device uses this notification to request am offline PIN block from the host. The host must request PIN entry from a paired Cryptera EPP, get the sequence number and encrypted PIN block, and send the data to the oDynamo using Command 0x07::0x14 - EMV L2 Offline PIN CVM Result.

## Table - Message Structure for Notification 0x07::0x8B - EMV L2 Offline PIN CVM Request

<table data-header-hidden><thead><tr><th width="75.18182373046875" valign="top"></th><th width="67.6363525390625" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x03 Notification</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">8B</td><td>Command ID Data Object (Tag C2) = 0x8B EMV L2 Offline PIN CVM Request</td></tr></tbody></table>

**Notification 0x07::0x8C - EMV L2 Continue Notification**

If the host has called Command 0x07::0x00 - EMV L2 Start Transaction with the Transaction Options parameter specifying Continue Mode Enabled, Wait or Continue Mode Enabled, Continue, the device uses this notification to provide data to the host after state EMV Read Application Data (status progress code = 8) is complete. If the value of the Notification Flag TLV data object indicates Transaction Paused, the host should call Command 0x07::0x13 - EMV L2 Continue Action to proceed with the transaction.

## Table - Message Structure for Notification 0x07::0x8C - EMV L2 Continue Notification

<table data-header-hidden><thead><tr><th width="71.54547119140625" valign="top"></th><th width="113.18182373046875" valign="top"></th><th valign="top"></th><th></th></tr></thead><tbody><tr><td valign="top">Tag</td><td valign="top">Len</td><td valign="top">Value(s) / Description</td><td></td></tr><tr><td valign="top">C0</td><td valign="top">01</td><td valign="top">03</td><td>Message Type Data Object (Tag C0) = 0x03 Notification</td></tr><tr><td valign="top">C1</td><td valign="top">01</td><td valign="top">07</td><td>Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages</td></tr><tr><td valign="top">C2</td><td valign="top">01</td><td valign="top">8C</td><td>Command ID Data Object (Tag C2) = 0x8C EMV L2 Continue Notification</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>C4</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = Notification Flag &#x3C;DF45>&#x3C;1>&#x3C;value></p><p>·         0x00 = Transaction Continuing, no response required</p><p>·         0x01 = Transaction Paused, waiting for Command 0x07::0x13 - EMV L2 Continue Action</p><p>The device includes the following EMV TLV data objects as a block of bytes if found on the card: 0x9F06, 0x5A, 0x57, 0x9F02, 0x50, 0x5F24, 0x9F11, 0x9F12, 0xDF30, 0xDF32, 0xDF34, 0xDF35, 0xDF36, 0xDF37, 0xDF38, 0xDF40, 0xDF41, 0xDF43,</p><p>0xDF52, 0xDF53, 0xDF54, 0xDF55, 0xDF56, 0x9F4D, 0x9F6E. For example: DF4501015F24032410019F0206000000012345</p></td><td></td></tr></tbody></table>


---

# Agent Instructions: 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/oem-readers-and-components/oem-readers/odynamo/documentation/programmers-manuals/programmers-manual-commands/command-set/application-group-0x07-emv-l2-contact-messages-chip-card-l2-mode-only-16-30.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.
