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

**About EMV L2 Transaction Flows**

The general flow of an EMV L2 transaction is as follows (bear in mind the device does not have a display, so in these steps the host drives the user interface for both the terminal operator / cashier and for the cardholder / customer):

* The terminal operator / cashier performs steps external to the transaction, generally resulting in a total balance owed, and directs the host software to initiate a transaction. If the device supports Quick Chip and the system is designed to use that feature, the host may skip this step and instead start the transaction with a default amount as a placeholder, which is generally a pre-determined non-zero value that is consistent with the system’s payment processing environment. Further differences pertaining to Quick Chip transactions are included in the steps below.
* The device must have already used Command 0x01::0x50 - Subscribe to Notifications to subscribe to at least notifications from Application Group 0x01 - General Messages, Application Group 0x04 - Magnetic Stripe Reader (MSR) Messages, and Application Group 0x07 - EMV L2 Contact Messages (Chip Card L2 Mode Only).
* The cardholder inserts their card into the device. In response, the device sends Notification 0x01::0x40 - Card Detected / Identified / Removed to report Card was not present and is now present / Card is a chip card (ICC card) indicating there is a chip card ready to begin a transaction.
* The host software may optionally call Command 0x03::0x00 - Card Latch Control to hold the card in the slot.
* The host software sends the device Command 0x07::0x00 - EMV L2 Start Transaction.
* From this point until the host sends the transaction results to the transaction processor, the host may cancel the EMV transaction by sending Command 0x07::0x04 - EMV L2 Cancel Transaction and the device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Host Canceled Transaction / Transaction error.
* The device attempts to communicate with a chip on the inserted card.
  * If the device is unable to power up the card:
    * The device responds with error code 0013 and terminates the transaction.
      * The host may display a message to guide the cardholder to remove the card.
      * Upon card removal, the device sends Notification 0x01::0x40 - Card Detected / Identified / Removed to indicate Card was present and has been removed / Card is not a chip card (ICC card).
      * If MSR data was captured on card removal, the device sends Notification 0x04::0x11 - MSR Card Data Available.
      * The host must send Command 0x04::0x12 - Request MSR Card Data within 5 seconds to retrieve the MSR data. Otherwise the device automatically erases the data.
      * If the device is able to power-up the card but can not find an application that both the device and the card mutually support:
        * If setting DFDF67 in EMV Contact Application Settings and Defaults (Contact Only) is set to Fallback Disabled, the device terminates the transaction and sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Terminated / Empty Candidate List, followed by Notification 0x07::0x81 - EMV L2 Display Message Request with the message CARD ERROR .
        * If setting DFDF67 in EMV Contact Application Settings and Defaults (Contact Only) is set to Fallback Enabled:
          * The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Selecting the application, followed by Notification 0x07::0x81 - EMV L2 Display Message Request to the host with the message Please Wait followed by Notification 0x07::0x81 - EMV L2 Display Message Request to the host with the message REMOVE CARD .
          * Upon card removal, the device sends Notification 0x01::0x40 - Card Detected / Identified / Removed to indicate Card was present and has been removed / Card is not a chip card (ICC card).
          * Upon successfully decoding a magnetic stripe swipe, the device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Online Processing.
          * Because the MSR transaction must always be performed online, the device passes the MSR track data to the host for forwarding to the transaction processor using Notification 0x07::0x83 - EMV L2 ARQC Message containing MSR Data Container F4. Inside the message, the host should examine tag DFDF53 to determine the cause of the MSR Fallback (No Fallback or MSR Fallback). The device then sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Waiting for User Response / Waiting Online Processing Response.
          * The host processes the ARQC Message data and uses it to coordinate with the transaction processor to receive an ARPC Response, which it processes and sends to the device using Command 0x07::0x03 - EMV L2 Online Processing Result / Acquirer Response.
          * The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report T**ransaction Progress Change / Transaction complete.**
          * The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report **Transaction Terminated and either Transaction Approved or Transaction Declined.**
          * The device sends Notification 0x07::0x81 - EMV L2 Display Message Request with Approved or Declined or to notify the cardholder of the transaction result.
          * The device ends the transaction by sending Notification 0x07::0x84 - EMV L2 Transaction Result, which contains transaction details the host should save for later verification. Inside the message, the host should examine tag DFDF53 to determine the cause of the fallback to an MSR swipe (MSR Fallback).
* At this point the device was able to power-up the card and found mutually supported applications. The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Selecting the application.
* The device sends Notification 0x07::0x81 - EMV L2 Display Message Request with the message Please Wait.
* The device negotiates with the card to determine which payment applications are available. If the card holds only one mutually supported payment application and the host did not enable Enhanced App Selection in the Transaction Options parameter, the device uses that application. Otherwise:
  * The device sends Notification 0x07::0x82 - EMV L2 User Selection Request to prompt the cardholder to Select Application with a list of available applications, followed by Notification **0x07::0x8A - EMV L2 Transaction Status to report Waiting for User Response / Waiting for User Application Selection.**
  * After the cardholder selects an application, the host passes the selection to the device by sending **Command 0x07::0x02 - EMV L2 User Selection Result.**
* The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Initiating Application.
* If the card’s selected application reports to the device that the cardholder should select a language, the device sends Notification 0x07::0x82 - EMV L2 User Selection Request to prompt the cardholder to Select Language with a list of available languages, followed by Notification 0x07::0x8A - EMV L2 Transaction Status to report event Waiting for User Response / Waiting for user language selection. After the cardholder selects a language, the host passes the selection to the device by sending Command 0x07::0x02 - EMV L2 User Selection Result.
* The device continues communicating with the card and sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Reading Application Data. If an error or other type of failure occurs during this step, the device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Terminated / Transaction Error, followed by Notification 0x07::0x81 - EMV L2 Display Message Request with the message Transaction Terminated, followed by Notification 0x07::0x84 - EMV L2 Transaction Result.
* If the host used the Transaction Options parameter to specify either Continue Mode Enabled, Wait or Continue Mode Enabled, Continue when it called Command 0x07::0x00 - EMV L2 Start Transaction, the device sends Notification 0x07::0x8C - EMV L2 Continue Notification with data from the card application read in the previous step. If the host specified Continue Mode Enabled, Wait, the device pauses the transaction and sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Waiting for User Response / Waiting for Continue. The host must send Command 0x07::0x13 - EMV L2 Continue Action to direct the device to proceed or cancel before the 60 seconds timeout occurs, otherwise the device terminates the transaction.
* Depending on the capabilities of the card and the device, the device authenticates the card data using SDA, DDA, or CDA. The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Offline data authentication.
* The steps from here through Card Action Analysis below are collectively referred to as the Risk Management process:
  * The device checks to make sure the selected application is valid for the transaction, and is compatible with the device (such as application version number, application usage control, and application effective / expiration date), and sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Process Restrictions.
  * The device uses the cardholder verification related data in the card to determine which cardholder verification method (CVMs) to use. The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Cardholder Verification.
  * If the card and device determine the transaction requires the cardholder to enter a PIN, the device sends Notification 0x07::0x81 - EMV L2 Display Message Request with the message Enter PIN followed by Notification 0x07::0x88 - EMV L2 Online PIN CVM Request or Notification 0x07::0x8B - EMV L2 Offline PIN CVM Request, depending on the rules encoded on the card. In response, the host should coordinate PIN entry with an external PIN entry device and provide the encrypted PIN block and KSN or sequence number to the device:
    * For online PIN, the host sends a Notification 0x07::0x88 - EMV L2 Online PIN CVM Request with PIN data to the device, which adds it to the ARQC.
    * For offline PIN, the host sends Command 0x07::0x14 - EMV L2 Offline PIN CVM Result with the PIN data from a Cryptera EPP. The device sends the PIN to the card for confirmation, and includes the results in the ARQC.
* The device performs terminal risk management procedures, which involves floor limit checking, velocity checking, and periodically forcing online authorization to protect against fraud, and  **sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Terminal Risk Management.**
* The device analyzes the results of the previous steps and sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Terminal Action Analysis.
* The device rolls up the results of the previous Risk Management process:
  * If the Risk Management process encounters an error or determines the transaction or payment method fails to meet required criteria, the device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Terminated / Transaction Error, followed by Notification 0x07::0x81 - EMV L2 Display Message Request with the message TRANSACTION TERMINATED , followed by Notification 0x07::0x84 - EMV L2 Transaction Result, and terminates the transaction.
  * If the Risk Management process determines the transaction is too risky to approve, the device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Terminated / Transaction Error, followed by Notification 0x07::0x84 - EMV L2 Transaction Result, followed by Notification 0x07::0x81 - EMV L2 Display Message Request with message Declined to notify the cardholder, and terminates the transaction.
* The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Generating First Application Cryptogram, followed by Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Card Action Analysis.
* If the device is NOT configured as Online-Only Terminal Type \[see Tag 9F35 in EMV Contact Terminal Settings and Defaults] and the Risk Management processes determined the transaction is OK to perform offline, the device reports the transaction result to the host as follows:&#x20;
  * The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report **Transaction Progress Change / Transaction Complete.**
  * The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Terminated and either Transaction Approved or Transaction Declined, then sends Notification 0x07::0x81 - EMV L2 Display Message Request with message Approved or Declined to notify the cardholder.
  * The device ends the transaction by sending Notification 0x07::0x84 - EMV L2 Transaction Result, which contains transaction details the host should save for later verification. The transaction result message indicates whether the host must prompt the cardholder to provide a signature.
* If the device is configured as an Online Only Terminal Type \[see Tag 9F35 in EMV Contact Terminal Settings and Defaults] or the Risk Management processes determined the transaction must be performed online, the device reports the transaction result to the host as follows:
  * The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Online Processing, followed by Notification 0x07::0x83 - EMV L2 ARQC Message.
  * The next event depends on whether the device supports the Contact Quick Chip feature and whether the host specified Quick Chip as an Option when it started the transaction:
  * If Quick Chip operation is supported and in effect:
    * The device immediately constructs its own internal ARPC Response, with tag 8A set to ‘Z3’ to coordinate the transaction with the card, and sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Progress Change / Transaction Complete, followed by Notification 0x07::0x8A - EMV L2 Transaction Status to report End of Transaction / Transaction Declined.
    * The device sends Notification 0x07::0x81 - EMV L2 Display Message Request with message Remove Card to notify the cardholder the card can be removed.
    * The host should then process the ARQC Message data, including replacing the default amount with the final transaction amount, and should coordinate with the transaction processor to retrieve a final transaction result. Because in this case the device is not involved in determining the final transaction result, it does not send a notification to the host to show Approved or Declined. Instead, the host should display an appropriate message (such as Quick Chip Approved/Quick Chip Declined) to the cardholder based on the final transaction result.&#x20;
    * The device ends the transaction by sending Notification 0x07::0x84 - EMV L2 Transaction Result, which contains transaction details the host should save for later verification. The transaction result message indicates whether the host must prompt the cardholder to provide a signature.
* If Quick Chip operation is NOT supported or is not in effect:&#x20;
  * The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report **Transaction Progress Change / Waiting for Online Processing Response.**
  * The host processes the ARQC Message data and uses it to coordinate with the transaction processor to receive an ARPC Response, which it processes and sends to the device using Command 0x07::0x03 - EMV L2 Online Processing Result / Acquirer Response. Alternatively, the host may implement host-driven Quick Chip by instead constructing its own preliminary ARPC Response with tag 8A set to ‘Z3’ and sending it to the device immediately, without waiting for a transaction processor response. The device responds by sending Notification 0x07::0x81 - EMV L2 Display Message Request to the host with message Declined and ending the transaction. The host should suppress this message and take over the remainder of the transaction, including notifying the cardholder to remove the card, determining the final transaction amount, coordinating with the transaction processor to retrieve a final transaction result, and interacting with the cardholder.
  * The device communicates with the chip card to determine whether to approve or decline the transaction, then sends Notification 0x07::0x8A - EMV L2 Transaction Statusto report Transaction Progress Change / Transaction Complete.
  * The device sends Notification 0x07::0x8A - EMV L2 Transaction Status to report Transaction Terminated and either Transaction Approved or Transaction Declined, then sends Notification 0x07::0x81 - EMV L2 Display Message Request with message Approved or Declined to notify the cardholder of the transaction result.
  * The device ends the transaction by sending Notification 0x07::0x84 - EMV L2 Transaction Result, which contains transaction details the host should save for later verification. The transaction result message indicates whether the host must prompt the cardholder to provide a signature.

**Command 0x07::0x00 - EMV L2 Start Transaction**

The host uses this command to start an EMV L2 transaction.

## Table - Message Structure for Command 0x07::0x00 - EMV L2 Start Transaction

<table data-header-hidden><thead><tr><th width="73.36358642578125" valign="top"></th><th width="63.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">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">00</td><td>Command ID Data Object (Tag C2) = 0x00 EMV L2 Start Transaction</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> </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> </p><p>13</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = Byte 0: Maximum Process Time</p><p>Specifies the maximum time, in seconds, for user interaction events to complete while processing a transaction. Values from 0x01 to 0xFF (1 to 255 seconds) are allowed. The timer starts at the beginning of each event. If the cardholder does not take action within the specified time, the transaction will process as follows:</p><p>·         User card insertion timeout: The transaction terminates.</p><p>·         User language selection timeout: The transaction continues with the default language.</p><p>·         User application selection timeout: The transaction terminates.</p><p> </p><p>Byte 1 Reserved. Set to 0x00 (preferred) or 0x02 (legacy).</p><p> </p><p>Byte 2 Transaction Options (options can be combined) 0x00 = Normal</p><p>0x20 = Continue Mode Enabled, Wait. The device sends Notification 0x07::0x8C - EMV L2 Continue Notification), then pauses the transaction and waits for the host to send Command 0x07::0x13 - EMV L2 Continue Action)</p><p>0x30 = Continue Mode Enabled, Continue. Same as 0x20 above but the device does not pause the transaction after sending the notification.</p><p>0x40 = Enhanced App Select Mode Enabled. The device adds data to Notification 0x07::0x82 - EMV L2 User Selection Request – Application Select) including when only one card application is present.</p><p>0x80 = Quick Chip Mode Enabled</p><p>Bytes 3..8 Transaction Amount:</p><p>EMV Tag 9F02, format n12, 6 bytes. If Byte 9 Transaction Type is set to Refund (0x20), the Transaction Amount must be zero.</p><p>Byte 9 Transaction Type:</p><p>0x00 = Purchase (covers transaction types Payment, Goods, and Services) 0x02 = Cash back</p><p>0x20 = Refund (converts internally to type 0x00 Purchase, Bytes 3..8 are is ignored and set to</p><p>$0.00)</p><p>Bytes 10..15 Cash Back Amount:</p><p>Cash back amount. If non-zero, use EMV Tag 9F03, format n12, 6 bytes. For Transaction Type Refund (0x20) this must be zero.</p><p>Bytes 16..17 Transaction Currency Code (EMV Tag 5F2A, format n4, 2 bytes) Valid values: 0x0000 = Use Terminal Settings currency code 0x0840 = US Dollar 0x0978 = Euro</p><p>Byte 18 Level of Transaction Status Notifications:</p><p>Select the level of detail of transaction status notifications the device will send to the host as the transaction progresses (see Notification 0x07::0x8A - EMV L2 Transaction Status for details):</p><p>0x00 = Termination status only (normal termination, card error, timeout, host cancel) 0x01 = Major status changes (terminations plus card insertions and waiting for user) 0x02 = All status changes (documents the entire transaction flow</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::0x00 - EMV L2 Start Transaction

<table data-header-hidden><thead><tr><th width="73.3636474609375" valign="top"></th><th width="75.8182373046875" valign="top"></th><th width="189.90911865234375" 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">00</td><td>Command ID Data Object (Tag C2) = 0x00 EMV L2 Start Transaction</td></tr><tr><td valign="top">C3</td><td valign="top">01</td><td valign="top">00</td><td>Result Code Data Object (Tag C3) = 0x00 OK</td></tr></tbody></table>

The host can only select the Quick Chip Mode transaction option for online transactions. This option significantly reduces the time the chip card needs to stay in the device. In this mode, the cardholder can remove the chip card before the transaction processor returns the Authorization Response Cryptogram (ARPC) to the host.

When Quick Chip Mode is enabled, the device requests data for an online authorization from the card. After the card responds with an online authorization request (ARQC), oDynamo sends the Authorization Response Code (tag 8A) with a declined status (Z3) to the card. The host software should complete the EMV processing as a deferred authorization, and prompt the card holder to remove the card. The host software should then proceed with requesting authorization from the transaction processor, and wait for the online response to approve or deny the transaction. For more details, see Visa’s *Quick Chip for EMV and qVSDC - Specification Version 2.0*.

**Command 0x07::0x02 - EMV L2 User Selection Result**

The host uses this command to report the cardholder’s or operator’s selection in response to the device’s Notification 0x07::0x82 - EMV L2 User Selection Request. In response to each possible selection, the device will behave according to EMV rules.

## Table - Message Structure for Command 0x07::0x02 - EMV L2 User Selection Result

<table data-header-hidden><thead><tr><th width="73.3636474609375" valign="top"></th><th width="73.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">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) = 0x02 EMV L2 User Selection Result</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>02</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = Byte 0 Selection Status:</p><p>0x00 = User Selection Request completed, see Selection Result 0x01 = User Selection Request aborted, canceled by user</p><p>0x02 = User Selection Request aborted, timeout</p><p> </p><p>Byte 1 Selection Result:</p><p>Contains the value of the menu item the cardholder or operator selected. Use 0x00 to select the first menu item.</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::0x02 - EMV L2 User Selection Result

<table data-header-hidden><thead><tr><th width="71.54547119140625" valign="top"></th><th width="65.90911865234375" 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">02</td><td>Command ID Data Object (Tag C2) = 0x02 EMV L2 User Selection Result</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) =</p><p>0x00 = Success, the Selection Result was received 0x01 = Invalid Selection Status</p><p>0x02 = Invalid Selection Result</p><p>0x03 = Failure, no transaction currently in progress</p></td><td></td></tr></tbody></table>

**Command 0x07::0x03 - EMV L2 Online Processing Result / Acquirer Response**

The host uses this command to inform the device of the result of online processing. It will contain ARPC, Script 1, and Script 2 data.

## Table - Message Structure for Command 0x07::0x03 - EMV L2 Online Processing Result / Acquirer Response

<table data-header-hidden><thead><tr><th width="67" valign="top"></th><th width="118.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">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">03</td><td>Command ID Data Object (Tag C2) = 0x03 EMV L2 Online Processing Result</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>See Appendix B ARPC Response from Online Processing (EMV Only)</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::0x03 - EMV L2 Online Processing Result / Acquirer Response

<table data-header-hidden><thead><tr><th width="67" valign="top"></th><th width="70.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">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">03</td><td>Command ID Data Object (Tag C2) = 0x03 EMV L2 Online Processing Result</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></tbody></table>

**Command 0x07::0x04 - EMV L2 Cancel Transaction**

The host uses this command to cancel an EMV transaction while the device is waiting for the cardholder to insert a card.

## Table - Message Structure for Command 0x07::0x04 - EMV L2 Cancel Transaction

<table data-header-hidden><thead><tr><th width="69.72723388671875" valign="top"></th><th width="70.54547119140625" valign="top"></th><th width="209.36358642578125" 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">04</td><td>Command ID Data Object (Tag C2) = 0x04 EMV L2 Cancel Transaction</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 - Message Structure for Command 0x07::0x04 - EMV L2 Cancel Transaction

<table data-header-hidden><thead><tr><th width="63.3636474609375" valign="top"></th><th width="69.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">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">04</td><td>Command ID Data Object (Tag C2) = 0x04 EMV L2 Cancel Transaction</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 = Success, the transaction was canceled</p><p>0x8D = Failure, no transaction currently in progress</p><p>0x8F = Failure, transaction in progress, card already inserted</p></td><td></td></tr></tbody></table>

**Command 0x07::0x05 - EMV L2 Modify Contact Terminal Configuration**

The host uses this command to modify EMV Contact Terminal configuration data. Descriptions of the tags can be found in *EMV Integrated Circuit Card Specifications for Payment Systems v4.3* .

## Table - Message Structure for Command 0x07::0x05 - EMV L2 Modify Contact Terminal Configuration

<table data-header-hidden><thead><tr><th width="72.45452880859375" 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">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">05</td><td>Command ID Data Object (Tag C2) = 0x05 EMV L2 Modify Contact Terminal Configuration</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>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>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = Byte 0: MAC Type</p><p>MAC algorithm designator</p><p>0x00 = ISO 9797 MAC Algorithm 3, Padding Method 1.</p><p> </p><p>Byte 1 Slot Number</p><p>EMV Terminal Slot Number. Must be 0x01.</p><p> </p><p>Byte 2 Operation</p><p>0x01 = Write Operation</p><p>0xFF = Set to Factory Defaults (sets all items, Terminal, Applications, and Application Public Keys to factory default values)</p><p> </p><p>Bytes 3 Database Selector 0x00 = EMV Contact L2</p><p> </p><p>Byte 4..19 Device Serial Number 16 Byte device Serial Number</p><p>Bytes 20..N: Objects to Write</p><p>Note: Not needed if Operation is 0xFF Set to Factory Defaults. FA&#x3C;len> /* container for generic data */</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p>…</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p> </p><p>Bytes N..N+3 MAC</p><p>First four bytes of a CBC-MAC computed using the AMK key (modified by XOR with 0xFF for the 7<sup>th</sup>, 15<sup>th</sup>, and 23<sup>rd</sup> bytes), on the data portion of TLV data object C4 padded to a multiple of 8 bytes. If the host has set the EMV Configuration Security setting to OEM Behavior, the host can transmit padding instead of a MAC.</p></td><td></td></tr></tbody></table>

## Table - Message Structure for Command 0x07::0x05 - EMV L2 Modify Contact Terminal Configuration

<table data-header-hidden><thead><tr><th width="68.81817626953125" valign="top"></th><th width="56" 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">05</td><td>Command ID Data Object (Tag C2) = 0x05 EMV L2 Modify Terminal Configuration</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>C3</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>Result Code Data Object (Tag C3) = 0x00 = Success, the modify completed 0x90 = Device Has No Keys</p><p>0x91 = Invalid Device Serial Number 0x92 = Invalid Type of MAC field 0x93 = Invalid Slot Number field 0x94 = Invalid Operation field</p><p>0x95 = Invalid Database Selector field 0x96 = Invalid Objects to Write field 0x97 = Invalid MAC</p><p>0x98 = No Slots Available</p><p>0x9B = Invalid CAPK Checksum</p></td><td></td></tr></tbody></table>

**Command 0x07::0x06 - EMV L2 Get Contact Terminal Configuration**

The host uses this command to read EMV Contact Terminal configuration data.

## Table - Message Structure for Command 0x07::0x06 - EMV L2 Get Contact Terminal Configuration

<table data-header-hidden><thead><tr><th width="67" valign="top"></th><th width="116.0909423828125" 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">06</td><td>Command ID Data Object (Tag C2) = 0x06 EMV L2 Get Contact Terminal Configuration</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>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = Byte 0: Slot Number</p><p>Must be 0x01</p><p> </p><p>Byte 1: Operation 0x00 = Read Operation</p><p>0x0F = Read All Tags of selected slot</p><p> </p><p>Byte 2: Database Selector 0x00 = EMV Contact L2</p><p>Bytes 3..n: Tags to Read</p><p>Note: Not needed if Operation is 0x0F Read All Tags of selected slot.</p><p> </p><p>FA&#x3C;len> /* container for generic data */</p><p>&#x3C;tag></p><p>…</p><p>&#x3C;tag></p><p> </p><p>Tag DFDF47 cannot be read individually. This tag can only be retrieved using the</p><p>‘Read All Tags’ option.</p></td><td></td></tr></tbody></table>

## Table - Response to Command 0x07::0x06 - EMV L2 Get Contact Terminal Configuration

<table data-header-hidden><thead><tr><th width="66.0909423828125" valign="top"></th><th width="112.45458984375" 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">06</td><td>Command ID Data Object (Tag C2) = 0x06 EMV L2 Get Contact Terminal Configuration</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p>C3</p></td><td valign="top"><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>Result Code Data Object (Tag C3) = 0x00 = Success, the read completed 0x02 = Invalid paramter in command 0x93 = Failure, invalid slot number field 0x94 = Failure, invalid Operation field</p><p>0x95 = Failure, invalid Database Selector field 0x96 = Failure, invalid Tag to Read field</p></td><td></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) = Byte 0..1 Message Length</p><p>Two byte hex, most significant byte first. This gives the total length of the EMV Terminal Configuration message that follows.</p><p> </p><p>Byte 2..N Tags Read:</p><p>FA&#x3C;len> /* container for generic data */</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p>…</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p> </p><p>When reading all tags for the selected slot, the last tag will be DFDF47, the Database Checksum.</p></td><td></td></tr></tbody></table>

**Command 0x07::0x07 - EMV L2 Modify Contact Application Configuration**

The host uses this command to modify EMV contact application configuration data. Descriptions of the tags can be found in *EMV Integrated Circuit Card Specifications for Payment Systems v4.3* .

## Table - Message Structure for Command 0x07::0x07 - EMV L2 Modify Contact Application Configuration

<table data-header-hidden><thead><tr><th width="70.6363525390625" valign="top"></th><th width="106.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">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">07</td><td>Command ID Data Object (Tag C2) = 0x07 EMV L2 Modify Contact Application Configuration</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>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>Calculated</p></td><td valign="top"><p>Byte 0: MAC Type</p><p>MAC algorithm designator</p><p>0x00 = ISO 9797 MAC Algorithm 3, Padding Method 1</p><p> </p><p>Byte 1: Slot Number</p><p>EMV Application Slot Number = Any value from 0x01 to 0x20 inclusive</p><p>Byte 2: Operation</p><p>0x01 = Write Operation</p><p> </p><p>Bytes 3: Database Selector 0x00 = EMV Contact L2</p><p>Byte 4..19: Serial Number</p><p>16 Byte device Serial Number</p><p> </p><p>Bytes 20..N: Objects to Write</p><p>Note: Not needed if Operation is 0xFF Set to Factory Defaults. FA&#x3C;len> /* container for generic data */</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p>…</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p> </p><p>Bytes N..N+3: MAC</p><p>MAC computed on Device Serial Number and Objects to Write fields using the AMK key. Use the first 4 bytes for the MAC. If the host has set the EMV Configuration Security setting to OEM Behavior, the host should transmit padding here.</p></td><td></td></tr></tbody></table>

## Table - Message Structure for Command 0x07::0x07 - EMV L2 Modify Contact Application Configuration

<table data-header-hidden><thead><tr><th valign="top"></th><th 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">07</td><td>Command ID Data Object (Tag C2) = 0x07 EMV L2 Modify Contact Application Configuration</td></tr><tr><td valign="top">C3</td><td valign="top">01</td><td valign="top"></td><td></td></tr></tbody></table>

<br>

&#x20;

<table data-header-hidden><thead><tr><th valign="top"></th><th 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">C2</td><td valign="top">01</td><td valign="top">07</td><td></td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>C3</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>Result Code Data Object (Tag C3) = 0x00 = Success, the modify completed 0x90 = Device Has No Keys</p><p>0x91 = Invalid Device Serial Number 0x92 = Invalid Type of MAC field 0x93 = Invalid Slot Number field 0x94 = Invalid Operation field</p><p>0x95 = Invalid Database Selector field 0x96 = Invalid Objects to Write field 0x97 = Invalid MAC</p></td><td></td></tr></tbody></table>

**Command 0x07::0x08 - EMV L2 Get Contact Application Configuration**

The host uses this command to read back EMV contact application configuration data.

## Table - Message Structure for Command 0x07::0x08 - EMV L2 Get Contact Application Configuration

<table data-header-hidden><thead><tr><th width="64.272705078125" valign="top"></th><th width="107" 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">08</td><td>Command ID Data Object (Tag C2) = 0x08 EMV L2 Get Contact Application Configuration</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>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = Byte 0: Slot Number</p><p>Must be 0x01</p><p> </p><p>Byte 1: Operation</p><p>0x00 = Read Operation</p><p>0x0F = Read All Tags of selected slot</p><p> </p><p>Byte 2: Database Selector 0x00 = EMV Contact L2</p><p>Bytes 3..n: Tags to Read</p><p>Note: Not needed if Operation is 0x0F Read All Tags of selected slot.</p><p> </p><p>FA&#x3C;len> /* container for generic data */</p><p>&#x3C;tag></p><p>…</p><p>&#x3C;tag></p><p> </p><p>Tag DFDF47 cannot be read individually. This tag can only be retrieved using the</p><p>‘Read All Tags’ option.</p></td><td></td></tr></tbody></table>

## Table - Response to Command 0x07::0x08 - EMV L2 Get Contact Application Configuration

<table data-header-hidden><thead><tr><th width="73.3636474609375" valign="top"></th><th width="112.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">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">08</td><td>Command ID Data Object (Tag C2) = 0x08 EMV L2 Get Contact Application 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 0x93 = Failure, invalid slot number field 0x94 = Failure, invalid Operation field</p><p>0x95 = Failure, invalid Database Selector field 0x96 = Failure, invalid Tag to Read field</p></td><td></td></tr><tr><td valign="top">C4</td><td valign="top">Calculated</td><td valign="top"><p>Byte 0..1: Message Length </p><p>Two byte hex, most significant byte first. This gives the total length of the EMV Terminal Configuration message that follows.</p><p>Byte 2..n Tags Read:</p><p>FA&#x3C;len> /* container for generic data */</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p>…</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p> </p><p>When reading all tags for the selected slot, the last tag will be DFDF47, the Database Checksum.</p></td><td></td></tr></tbody></table>

**Command 0x07::0x09 - EMV L2 Modify CA Public Key**

The host uses this command to modify EMV CA Public Key data.

## Table - Message Structure for Command 0x07::0x09 - EMV L2 Modify CA Public Key

<table data-header-hidden><thead><tr><th width="64.272705078125" valign="top"></th><th width="108.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">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">06</td><td>Command ID Data Object (Tag C2) = 0x09 EMV L2 Modify CA Public Key</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>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = Byte 0 MAC Type</p><p>MAC algorithm designator</p><p>0x00 = ISO 9797 MAC Algorithm 3, Padding Method 1.</p><p> </p><p>Byte 1 Slot Number</p><p>Any value from 0x01 to 0x34 inclusive</p><p>0xFF = Next Available (slot with RID TLV length set to zero)</p><p>If the Operation byte is set to Erase All, the device ignores this byte.</p><p> </p><p>Byte 2 Operation</p><p>0x00 = Erase All (Erases all tags in all CAPK slots). This will set the TLV length of every TLV in each slot to 1 and the value to 0. A slot is considered erased and available for use by the Next Available Slot Number (0xFF) if its RID TLV length is set to 1 and its value is set to 0.</p><p>0x01 = Writes a CA Public Key. To erase a single slot, write all of the slot’s tags’</p><p>TLV lengths to 1 and values to 0.)</p><p> </p><p>Bytes 3 Database Selector 0x00 = EMV Contact L2</p><p> </p><p>Bytes 4..19 Serial Number</p><p>16 Byte device Serial Number</p><p> </p><p>Bytes 20..n Objects to Write</p><p>Note: Not needed if Operation is 0x00 Erase All. FA&#x3C;len> /* container for generic data */</p><p>&#x3C; DFDF79>&#x3C;len>&#x3C;value> /* RID */</p><p>&#x3C; DFDF7A>&#x3C;len>&#x3C;value>/* Index */</p><p>&#x3C; DFDF7B>&#x3C;len>&#x3C;value>/* Modulus */</p><p>&#x3C; DFDF7C>&#x3C;len>&#x3C;value>/* Key Exponent */</p><p>&#x3C; DFDF7D>&#x3C;len>&#x3C;value> /* Checksum */.</p><p>Bytes n..n+3: MAC</p><p>MAC computed on Device Serial Number and Objects to Write fields using the AMK key. Use the first 4 bytes for the MAC. If the host has set the EMV Configuration Security setting to OEM Behavior, the host should transmit padding here.</p></td><td></td></tr></tbody></table>

## Table - Message Structure for Command 0x07::0x09 - EMV L2 Modify CA Public Key

<table data-header-hidden><thead><tr><th width="84.272705078125" valign="top"></th><th width="86.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">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">09</td><td>Command ID Data Object (Tag C2) = 0x09 EMV L2 Modify CA Public Key</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>C3</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>Result Code Data Object (Tag C3) = 0x00 = Success, the modify completed 0x90 = Device Has No Keys</p><p>0x91 = Invalid Device Serial Number 0x92 = Invalid Type of MAC field 0x93 = Invalid Slot Number field 0x94 = Invalid Operation field</p><p>0x95 = Invalid Database Selector field 0x96 = Invalid Objects to Write field 0x97 = Invalid MAC</p><p>0x98 = No Slots Available</p><p>0x9B = Invalid CAPK Checksum</p></td><td></td></tr></tbody></table>

**Command 0x07::0x0A - EMV L2 Get CA Public Key**

The host uses this command to read EMV Certificate Authority Public Key data.

## Table - Message Structure for Command 0x07::0x0A - EMV L2 Get CA Public Key

<table data-header-hidden><thead><tr><th width="78.81817626953125" valign="top"></th><th width="123" 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">0A</td><td>Command ID Data Object (Tag C2) = 0x0A EMV L2 Get CA Public Key</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>Calculated</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = Byte 0: Slot Number</p><p>Must be 0x01</p><p> </p><p>Byte 1: Operation</p><p>0x00 = Read Operation</p><p>0x0F = Read All Tags of selected slot</p><p> </p><p>Byte 2: Database Selector 0x00 = EMV Contact L2</p><p>Bytes 3..n: Tags to Read</p><p>Note: Not needed if Operation is 0x0F Read All Tags of selected slot.</p><p> </p><p>FA&#x3C;len> /* container for generic data */</p><p>&#x3C;tag></p><p>…</p><p>&#x3C;tag></p><p> </p><p>Tag DFDF47 cannot be read individually. This tag can only be retrieved using the</p><p>‘Read All Tags’ option.</p></td><td></td></tr></tbody></table>

## Table - Response to Command 0x07::0x0A - EMV L2 Get CA Public Key

<table data-header-hidden><thead><tr><th width="67" valign="top"></th><th width="107.9090576171875" 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">0A</td><td>Command ID Data Object (Tag C2) = 0x0A EMV L2 Get CA Public Key</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 0x93 = Failure, invalid slot number field 0x94 = Failure, invalid Operation field</p><p>0x95 = Failure, invalid Database Selector field 0x96 = Failure, invalid Tag to Read field</p></td><td></td></tr><tr><td valign="top">C4</td><td valign="top">Calculated</td><td valign="top"><p>Byte 0..1: Message Length</p><p>Two byte hex, most significant byte first. This gives the total length of the EMV Terminal Configuration message that follows.</p><p> </p><p>Byte 2..n Tags Read:</p><p>FA&#x3C;len> /* container for generic data */</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p>…</p><p>&#x3C;tag>&#x3C;len>&#x3C;value></p><p> </p><p>When reading all tags for the selected slot, the last tag will be DFDF47, the Database Checksum.</p></td><td></td></tr></tbody></table>

**Command 0x07::0x0B - EMV L2 Get Kernel Base Checksum**

The host uses this command to read EMV L2 Kernel Checksum.

## Table - Message Structure for Command 0x07::0x0B - EMV L2 Get Kernel Base ChecksumKernel Base Checksum

<table data-header-hidden><thead><tr><th width="80.6363525390625" valign="top"></th><th width="87.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">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">0B</td><td>Command ID Data Object (Tag C2) = 0x0B EMV L2 Get Kernel Checksum</td></tr><tr><td valign="top">C4</td><td valign="top">01</td><td valign="top">Data Field Data Object (Tag C4 or E0) = 0x11 = Read L2 Kernel checksum</td><td></td></tr></tbody></table>

## Table - Response to Command 0x07::0x0B - EMV L2 Get Kernel Base Checksum

<table data-header-hidden><thead><tr><th width="63.3636474609375" valign="top"></th><th width="68.90911865234375" 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">0B</td><td>Command ID Data Object (Tag C2) = 0x0B EMV L2 Get Kernel Information</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 0x02 = Bad parameter</p><p>0x86 = Invalid read option 0x9A = Internal error</p><p>0xFF = Failed memory allocation</p></td><td></td></tr><tr><td valign="top"><p> </p><p>C4</p></td><td valign="top"><p> </p><p>15</p></td><td valign="top"><p>Byte 0: Data return type 0x11 = Kernel checksum</p><p> </p><p>Byte 1..14: Kernel checksum in ASCII</p></td><td></td></tr></tbody></table>

**Command 0x07:0x0D - Get Date Time**

The host uses this command to read the device’s Real Time Clock (RTC).

## Table - Message Structure for Command 0x07:0x0D - Get Date Time

<table data-header-hidden><thead><tr><th width="75.1817626953125" valign="top"></th><th width="68.54541015625" valign="top"></th><th width="205.6363525390625" 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">0D</td><td>Command ID Data Object (Tag C2) = 0x0D EMV Get Date Time</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:0x0D - Get Date Time

<table data-header-hidden><thead><tr><th width="57.9090576171875" valign="top"></th><th width="65.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">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">0D</td><td>Command ID Data Object (Tag C2) = 0x0D EMV Get Date Time</td></tr><tr><td valign="top">C3</td><td valign="top">01</td><td valign="top">00</td><td>Result Code Data Object (Tag C3) = 0x00 OK / Done</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>07</p></td><td valign="top"><p>Data Field Data Object (Tag C4 or E0) = Byte 0 Month</p><p>0x01..0x0C: valid Month number; Dec = 12.</p><p> </p><p>Byte 1 Day</p><p>0x01..0x1F: valid day of the month; Last day = 31.</p><p> </p><p>Byte 2 Hour</p><p>0x00..0x17: valid hour of the day; last hour day = 23.</p><p>Byte 3 Minute</p><p>0x00..0x3B: valid minute of the hour; last minute = 59.</p><p> </p><p>Byte 4 Second</p><p>0x00..0x3B: valid second of the minute; last second = 59.</p><p> </p><p>Byte 5 Reserved 0x00: Reserved</p><p> </p><p>Byte 6 Year</p><p>0x00..0xFF: valid year value added to 2008; 2017-2008 = 09.</p></td><td></td></tr></tbody></table>

**Command 0x07::0x0E - EMV L2 Commit Configuration**

The host uses this command to commit changes after using Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration.

## Table - Message Structure for Command 0x07::0x0E - EMV L2 Commit Configuration

<table data-header-hidden><thead><tr><th width="73.3636474609375" 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">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) = 0x0E EMV L2 Commit Configuration</td></tr><tr><td valign="top">C4</td><td valign="top">01</td><td valign="top">Byte 0: Database Selector 0x00 = EMV Contact L2</td><td></td></tr></tbody></table>

## Table - Response to Command 0x07::0x0E - EMV L2 Commit Configuration

<table data-header-hidden><thead><tr><th width="74.27276611328125" valign="top"></th><th width="74.90911865234375" 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) = 0x0E EMV L2 Commit Configuration</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) = 0x00 = Success</p><p>0x01 = Failure</p><p>0x95 = Invalid Database Selector field</p></td><td></td></tr></tbody></table>

**Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration**

The host uses this command to select EMV Terminal Capabilities Configuration. The EMV terminal settings affected by this command can not be set directly; they must be set to one of a specified set of certified values. Descriptions of the tags and their values can be found in *EMV Integrated Circuit Card Specifications for Payment Systems v4.3*. For full descriptions of each configuration, see the device’s *EMVCo Letter of Approval* for Contact Terminal Level 2 \[see Appendix D EMV Configurations (EMV Only)].

After calling this command, the host should call Command 0x07::0x0E - EMV L2 Commit Configuration to save the changes.

Running this command changes the value of tag DFDFDF33 in the device configuration. See Command 0x03::0x72 - Get Device Configuration. It also changes the device and terminal configuration check values reported by Command 0x07::0x12 - Read EMV L2 Configuration Check Values.

## Table - Message Structure for Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration

<table data-header-hidden><thead><tr><th width="68.81817626953125" valign="top"></th><th width="125.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">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">10</td><td>Command ID Data Object (Tag C2) = 0x10 Modify EMV L2 Terminal Capabilities Configuration</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>Byte 0: MAC Type</p><p>MAC algorithm designator</p><p>0x00 = ISO 9797 MAC Algorithm 3, Padding Method 1.</p><p> </p><p>Byte 1: Database Selector 0x00 = EMV Contact L2</p><p>Bytes 2..17: Serial Number 16 Byte device Serial Number</p><p> </p><p>Byte 18: Configuration Identifier</p><p>One byte field that specifies one of the following configurations. Each device implements a subset of this standard list; the supported subset is specified in the device’s EMVCo Letter of Approval (LoA) as Vendor Config IDs:</p><p> </p><p>0x00 = Vendor Config ID oDynamo-PIN-Bypass (Default)</p><p>·         Tag 0x9F33 = 0x604800 (MSR, IC with Contacts, Enciphered PIN for online PIN, No CVM, No Signature, no ODA)</p><p>·         Tag 0x9F35 = 0x24 (Unattended, Online Only)</p><p>·         Tag 0x9F40 = 0x7200A05001 (Goods, Services, Cashback, Payment, NumCommand Keys, Print Cardholder, Display cardholder, Code table 1)</p><p>·         Tag 0xDFDF20 = 0x432380 (Manual language selection, CDA Mode 1, Cardholder Confirmation, EMV language Selection, Application Preferred Order,</p><p>·         Subsequent Bypass, PIN Bypass, Floor Limit Checking)</p><p>0x01 = Vendor Config ID oDynamo-No PIN </p><p>·         Tag 0x9F33 = 0x600800 (MSR, IC with Contacts, No CVM, No Signature, No ODA)</p><p>·         Tag 0x9F35 = 0x24 (Unattended, Online Only)</p><p>·         Tag 0x9F40 = 0x7200A05001 (Goods, Services, Cashback, Payment, NumCommand Keys, Print Cardholder, Display cardholder, Code table 1)</p><p>·         Tag 0xDFDF22 = 0x432080 (Manual language selection, CDA Mode 1, Cardholder Confirmation, EMV language Selection, Application Preferred Order,Floor Limit Checking)</p><p>0x02 = Vendor Config ID oDynamo-OLP</p><p>·         Tag 0x9F33 = 0x60D8C8 (MSR, ICC, Offline and Online PIN, No CVM, No Signature, ODA)</p><p>·         Tag 0x9F35 = 0x25 (Unattended, Offline with Online Capability)</p><p>·         Tag 0x9F40 = 0x7200F05001 (Goods, Services, Cashback, Payment, NumAlphaCommandFunc Keys, Print Cardholder, Display cardholder, Code table 1)</p><p>·         Tag 0xDFDF22 = 0x4323E0 (Manual language selection, CDA Mode 1, Cardholder Confirmation, EMV language Selection, Application Preferred Order,</p><p>·         Subsequent Bypass, PIN Bypass, Floor Limit Checking, Random Trans Selection, Velocity Checking)</p><p>0x03 = Vendor Config ID oDynamo-ATM</p><p>·         Tag 0x9F33 = 0x60D8C8 (MSR, ICC, Offline and Online PIN, No CVM, No Signature, ODA)</p><p>·         Tag 0x9F35 = 0x14 (Unattended, Financial, Online Only)</p><p>·         Tag 0x9F40 = 0x8C80F05001 (Cash, Inquiry, Transfer, Cash Deposit, NumAlphaCommandFunc Keys, Print Cardholder, Display cardholder, Code table 1)</p><p>·         Tag 0xDFDF22 = 0x432380 (Manual language selection, CDA Mode 1, Cardholder Confirmation, EMV language Selection, Application Preferred Order, Subsequent Bypass, PIN Bypass, Floor Limit Checking)</p><p>0x04 = Vendor Config ID oDynamo-OLEP</p><p>·         Tag 0x9F33 = 0x6058C8 (MSR, ICC, Offline Encrypted and Online PIN, No CVM, No Signature, ODA)</p><p>·         Tag 0x9F35 = 0x25 (Unattended, Offline with Online Capability)</p><p>·         Tag 0x9F40 = 0x7200F05001 (Goods, Services, Cashback, Payment,</p><p>·         NumAlphaCommandFunc Keys, Print Cardholder, Display cardholder, Code table 1)</p><p>·         Tag 0xDFDF22 = 0x4323E0 (Manual language selection, CDA Mode 1,</p><p>·         Cardholder Confirmation, EMV language Selection, Application Preferred Order Subsequent Bypass, PIN Bypass, Floor Limit Checking, Random Trans Selection,Velocity Checking)</p><p>Bytes 19..22: MAC </p><p>MAC computed on Device Serial Number and Configuration Identifier using the AMK key. If the host has set the EMV Configuration Security setting to OEM Behavior, the host should transmit padding here.</p></td><td></td></tr></tbody></table>

## Table - Response to Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration

<table data-header-hidden><thead><tr><th width="97.90911865234375" valign="top"></th><th width="70.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">10</td><td>Command ID Data Object (Tag C2) = 0x10 EMV L2 Modify EMV L2 Terminal Capabilities Configuration</td></tr><tr><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>C3</p></td><td valign="top"><p> </p><p> </p><p> </p><p> </p><p> </p><p>01</p></td><td valign="top"><p>Result Code Data Object (Tag C3) = 0x00 = Success, the modify completed 0x90 = Device Has No Keys</p><p>0x91 = Invalid Device Serial Number 0x92 = Invalid Type of MAC field 0x93 = Invalid Slot Number field 0x94 = Invalid Operation field</p><p>0x95 = Invalid Database Selector field 0x96 = Invalid Objects to Write field 0x97 = Invalid MAC</p><p>0x9C = Invalid Configuration Identifier</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-1-15.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.
