All pages
Powered by GitBook
1 of 9

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Command Set

Application Group 0x05 - PAN Messages

Command 0x05::0x01 - Read PAN

The host uses this command to retrieve the Primary Account Number (PAN) of the last card it successfully read, regardless of the interface used to read the card. Generally the host would use this command in solutions that use an external Encrypting PIN Pad (EPP), to retrieve the PAN and provide it to the EPP so it can create a PIN block.

For the host to successfully retrieve the plaintext PAN using this command, the device must have determined the card matched one or more entries in the device’s PAN Whitelist (see Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist). If the card does not match an entry in the whitelist, the PAN will be available in encrypted form, but only if oDynamo is currently paired with a Cryptera EPP. The EPP decrypts the PAN and uses it to form the encrypted PIN block. Otherwise the device returns 0x0000 in parameter C4 to indicate the PAN is not available.

After successful return of the PAN to the host or a timeout, the device erases the PAN from memory. For MSR transactions, the timeout for the host to follow up with the device to retrieve the PAN is 3 seconds. Because EMV transactions may require more time for the cardholder and operator to complete, the timeout for EMV transactions is 255 seconds. If a timeout occurred, the device returns 0x0000 in parameter C4 to indicate the requested item is not available.

Table - Message Structure for Command 0x05::0x01 - Read PAN

05

Application ID Data Object (Tag C1) = 0x05 PAN Messages

C2

01

01

Command ID Data Object (Tag C2) = 0x01 Request PAN

01

05

Application ID Data Object (Tag C1) = 0x05 PAN Messages

C2

01

01

Command ID Data Object (Tag C2) = 0x01 Request PAN

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done or 0x11 = Timeout occurred.

C4

Calculated

Byte 0 PAN Status

0x00 = PAN is not in PAN Whitelist, can not be transferred 0x01 = PAN is in PAN whitelist, full PAN is available

0x02 = PAN is in PAN whitelist, 12 digits of PAN are available 0x03 = PAN is encrypted for use with paired Cryptera EPP

Byte 1 PAN Length

Bytes 2..n PAN Value (if available)

If the PAN is encrypted, the value will be 16 bytes and can be used as the data portion of parameter P2 for the EPP command READPIN_EXT.

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

C1

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Table - Response to Command 0x05::0x01 - Read PAN

01

C1

Application Group 0x04 - Magnetic Stripe Reader (MSR) Messages

Command 0x04::0x09 - Read MSR Data

The host uses this command to arm the device’s MSR to read magnetic stripe data after the device reports an EMV transaction using a chip card has failed. The command is intended to be used to implement fallback when Command 0x07::0x80 - EMV L2 Transaction Status or Notification 0x07::0x8A - EMV L2 Transaction Status report statuses EMV Error - Card Blocked or Empty Candidate List. If the host wishes to fall back to reading MSR data upon receiving those status reports, it must invoke this command while the card is still inserted, and the device will read the magnetic stripe when the cardholder removes the card from the slot, then send its response to the host to return the requested data.

Although this command is intended to be used after EMV transaction failure, if the host calls it outside the context of an EMV transaction, the command will function the same: The MSR reader will continue to be armed, and the device will return MSR card data in the response upon card removal.

Table - Message Structure for Command 0x04::0x09 - Read MSR Data

Notification 0x04::0x11 - MSR Card Data Available

When a cardholder swipes a magnetic stripe card, the device sends this notification to inform the host that card data is available. After receiving this notification, the host should call Command 0x04::0x12 - Request MSR Card Data to get the data.

Command 0x04::0x12 - Request MSR Card Data

The host uses this command to request MSR data after receiving Notification 0x04::0x11 - MSR Card Data Available.

01

04

Application ID Data Object (Tag C1) = 0x04 MSR Messages

C2

01

09

Command ID Data Object (Tag C2) = 0x09 Read MSR Data

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) =

If Result Code is OK / Done, this contains magnetic stripe data as documented in Data Object F4 - Magnetic Stripe Reader Card Data, otherwise the response will not include data object C4.

01

04

Application ID Data Object (Tag C1) = 0x04 MSR Messages

C2

01

11

Command ID Data Object (Tag C2) = 0x11 MSR Card Data Available

Data Field Data Object (Tag C4 or E0) = Byte 0 Card type

0x00 = Other 0x01 = ISO

0x02 = AAMVA

0x99 = MSR_OPERATION_ERROR

Byte 1 Account Data whitelist comparison result (see Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist)

0x00 = The card does not match any rule in the Account Data whitelist, device will send data encrypted.

0x01 = The card matches one or more rules in the Account Data whitelist, device will send data unencrypted.

01

04

Application ID Data Object (Tag C1) = 0x04 MSR Messages

C2

01

12

Command ID Data Object (Tag C2) = 0x12 Request MSR Card Data

01

04

Application ID Data Object (Tag C1) = 0x04 MSR Messages

C2

01

12

Command ID Data Object (Tag C2) = 0x12 Request MSR Card Data

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) =

If Result Code is OK / Done (0x00), this contains magnetic stripe data as documented in Data Object F4 - Magnetic Stripe Reader Card Data, otherwise the response includes a 1-byte error code.

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

C1

01

04

Application ID Data Object (Tag C1) = 0x04 MSR Messages

C2

01

09

Command ID Data Object (Tag C2) = 0x09 Read MSR Data

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

03

Message Type Data Object (Tag C0) = 0x03 Notification

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Table - Response to Command 0x04::0x09 - Read MSR Data

Table - Message Structure for Notification 0x04::0x11 - MSR Card Data Available

Table - Message Structure for Command 0x04::0x12 - Request MSR Card Data

Table - Response to Command 0x04::0x12 - Request MSR Card Data

C1

C1

C1

C1

C4

03

0x99 = MSR_OPERATION_ERROR

Byte 2 PAN status (see Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist)

0x00 = The card does not match any rule in the PAN whitelist. No PAN is available.

0x01 = The card matches one or more rules in the PAN whitelist. Full cleartext PAN for PIN block construction is available.

0x02 = The card matches one or more rules in the PAN whitelist. Partial cleartext PAN for PIN block construction is available.

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.

0x99 = MSR_OPERATION_ERROR

Application Group 0x02 - Authentication Messages

Command 0x02::0x0A - EPP Pairing Certificate Exchange

This command starts the EPP pairing process on oDynamo using the results from the START_EXCHANGE command on the Encrypting PIN Pad (EPP). The host should use the oDynamo response as the parameters for the next EPP command GENERATE_KEK. For details about the pairing flow, see Appendix G How to Pair With a Cryptera Encrypting PIN Pad.

Table - Message Structure for Command 0x02::0x0A - EPP Pairing Certificate Exchange

Tag

Len

Value(s) / Description

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:

Command 0x02::0x0B - Get Challenge

This command directs the device to send challenge data to the host, which the host can then use to perform a specific sensitive operation / modify a specific type of device setting. Information about how the host should pass the required challenge data to the device is included in the documentation for all commands that use this security mechanism.

Upon providing the challenge to the host, the device sets an internal 5-minute countdown timer. When the time limit expires, the device will no longer accept the challenge. This binding of the command to a specific time period allows the device to detect and reject commands that have been captured/intercepted at one point in time and replayed later.

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:

Command 0x02::0x0C - EPP Pairing Load KEK

This command is the second step in the EPP pairing process after Command 0x02::0x0A - EPP Pairing Certificate Exchange has completed successfully. This step loads a temporary key from the EPP that will be used during the third step of pairing (Command 0x02::0x0D - EPP Pairing Load Derivation Key). For details about the pairing flow, see Appendix G How to Pair With a Cryptera Encrypting PIN Pad.

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:

Command 0x02::0x0D - EPP Pairing Load Derivation Key

This command is used for the third and final step of the EPP pairing process. It securely loads a key shared with the paired EPP. This key is used to derive keys that protect the PIN and PAN sent to/from the EPP.. For details about the pairing flow, see Appendix G How to Pair With a Cryptera Encrypting PIN Pad.

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:

Command 0x02::0x0E - Get Key / Certificate Information

The host uses this command to get key or certificate information from the device.

If an error occurs, the device terminates the command and reports 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 by immediately sending two or more instances of Notification 0x01::0x10 - Big Block Device Data, which the host should concatenate, then interpret as follows:

Command 0x02::0x58 - Request Device Certificates

The host uses this command to request the Device Certificate, which the host would generally pass to Magensa web services that generate signed byte sequences for remote configuration commands.

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:

The host should then wait (up to 90 seconds in some cases) for the device to respond synchronously with the requested data.

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0B

Command ID Data Object (Tag C2) = 0x0A EPP Certificate Exchange

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) =

Provide this data as the parameter portion of the EPP GENERATE_KEK command.

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0B

Command ID Data Object (Tag C2) = 0x0B Get Challenge

C4

02

Data Field Data Object (Tag C4 or E0) = Sub Operation:

0xDF71 = MSR Initial Key for DUKPT 0xDF73 = MSR Key Loader Certificate

0xDF75 = Device Authentication Request signed by MSR Key Loader Certificate 0xDF7B = Configuration signed by MSR Key Loader Certificate

0xDF7C = Manufacturer Command

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0B

Command ID Data Object (Tag C2) = 0x0B Get Challenge

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

E0

Calculated

Data Field Data Object (Tag C4 or E0) = Bytes 0..1 Sub Operation:

0xDF71 = MSR Initial Key for DUKPT 0xDF73 = MSR Key Loader Certificate

0xDF75 = Device Authentication Request signed by MSR Key Loader Certificate 0xDF7B = Configuration signed by MSR Key Loader Certificate

0xDF7C = Manufacturer Command

Bytes 2..13 Data Block:

8 bytes device serial number 4 bytes random token

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0B

Command ID Data Object (Tag C2) = 0x0C Load KEK

C4

Calculated

Data Field Data Object (Tag C4 or E0) =

Use complete response from the EPP GENERATE_KEK command when the response code is OK (first 4 bytes should be 00020000).

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0B

Command ID Data Object (Tag C2) = 0x0C Load KEK

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0B

Command ID Data Object (Tag C2) = 0x0D Load Derivation Key

C4

Calculated

Data Field Data Object (Tag C4 or E0) =

EPP response to the FETCH_KEY(LINK_KGK) command if the response code was

OK starting with “B0080B0TX”

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0B

Command ID Data Object (Tag C2) = 0x0D Load Derivation Key

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

03

3 byte EPP Key KCV. This should be compared with the KCV read from the EPP to confirm that the pairing process is complete and correct.

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0E

Command ID Data Object (Tag C2) = 0x0E Get Key / Certificate Information

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Byte 0 Info ID from Table 4-49

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0E

Command ID Data Object (Tag C2) = 0x0E Get Key / Certificate Information

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Byte 0 Info ID from Table 4-49

Byte 1 Key Status If Info ID < 0x80

0x00 = Empty (default) 0x01 = OK

0x02 = Exhausted If Info ID = 0x80:

0x00 to 0x05 = KCV type from Table 4-49

Byte 2 Data Length corresponding to the selected Info ID and shown in Table 4-49

0x01,0x02

2

20

KSN

If no more keys

0x02

1

20

KSN

MSR key

0x04

1

calculated (<=59)

SN & subject’s

DN**

If MSR cert exists

0x07

1

Calculated (<=20)

KCV & EPP SN

length & EPP SN

Data and KCV for EPP Paired Key

0x80

kcv_type=1

4

KCV value

KCV for MSR key

0x80

kcv_type=2

4

KCV value

KCV for AMK (signed by MSR cert)

0x80

kcv_type=5

4

Hash value

Device Authentication Token signed by MSR Key Loader Certificate

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

58

Command ID Data Object (Tag C2) = 0x58 Key Handling or Manufacturer Command

E0

02

Data Field Data Object (Tag C4 or E0) =

· 0xDF6E = Request Device Certificate, or

· 0xDF72 = Request Device Signing Certificate

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

58

Command ID Data Object (Tag C2) = 0x58 Key Handling or Manufacturer Command

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) =

X.509 Device certificate in DER format

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

C1

01

02

Application ID Data Object (Tag C1) = 0x02 Authentication Messages

C2

01

0B

Command ID Data Object (Tag C2) = 0x0A EPP Certificate Exchange

C4

Calculated

Data Field Data Object (Tag C4 or E0) =

Use complete response to the EPP START_EXCHANGE command when the response code indicates OK (first 4 bytes should be 00020000).

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Info ID

Key Status

Data Length

Data

Description

0x00

1

Label length

AMK (Acquirer Master Key) label

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Table - Response to Command 0x02::0x0A - EPP Pairing Certificate Exchange

Table - Message Structure for Command 0x02::0x0B - Get Challenge

Table - Response to Command 0x02::0x0B - Get Challenge

Table - Message Structure for Command 0x02::0x0C - EPP Pairing Load KEK

Table - Response to Command 0x02::0x0C - EPP Pairing Load KEK

Table - Message Structure for Command 0x02::0x0D - EPP Pairing Load Derivation Key

Table - Response to Command 0x02::0x0D - EPP Pairing Load Derivation Key

Table - Message Structure for Command 0x02::0x0E - Get Key / Certificate Information

Table - Response to Command 0x02::0x0E - Get Key / Certificate Information

Table - Table of Info IDs and Data

*: lbllen = auth key’s label length

**: SN = serial number of cert

DN = distinguished names of subject or issuer of cert

Data length varies with SN and DN length; max length is 59

***: its corresponding CA cert

****: KCV = Key Check Value, where the lowest 6 digits are valid

Table - Message Structure for Command 0x02::0x58 - Request Device Certificates

Table - Response to Command 0x02::0x58 - Request Device Certificates

C1

C1

C1

C1

C1

C1

C1

C1

C1

If AMK (Acquirer Master Key) exists

C1

C1

Bytes 3.. Data corresponding to the selected Info ID, shown in Table 4-49

Application Group 0x00 - Device Information Messages

This section documents the full set of messages that can be exchanged between the device and the host.

Command 0x00:0x10 - Get Product ID

The host uses this command to get the device’s product ID.

Table 4-1 - Message Structure for Command 0x00:0x10 - Get Product ID

Tag

Len

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:

Command 0x00::0x12 - Get Capability String

The host uses this command to get the device’s Capability String.

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:

Command 0x00::0x13 - Get Manufacturer

The host uses this command to get the device manufacturer.

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:

Command 0x00::0x14 - Get Product Name

The host uses this command to get the device’s product name.

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:

Command 0x00::0x15 - Get Secure Tracking Number

The host uses this command to get the device’s secure tracking number.

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:

Command 0x00::0x16 - Get Firmware Version

The host uses this command to get the device’s firmware version.

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:

Command 0x00::0x18 - Get Network Information (Ethernet Only)

The host uses this command to get information about the device’s network connection.

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:

Command 0x00::0x23 - Get Boot Loader Version

The host uses this command to get the device’s boot loader version.

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:

Command 0x00::0x27 - Get CT-L2 Version

The host uses this command to get the device’s EMV L2 version, if any.

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:

Command 0x00::0x28 - Get Serial Number

The host uses this command to get the device’s serial number.

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:

Application Group 0x01 - General Messages

Command 0x01::0x02 - Clear Transaction Data

The host uses this command to direct the device to clear all transaction data, including account data, encrypted PIN block, PAN, and amount, and return to the idle state.

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

10

Command ID Data Object (Tag C2) = 0x10 Get Product ID

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Product ID, e.g., 5999

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

12

Command ID Data Object (Tag C2) = 0x12 Get Capability String

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

12

Command ID Data Object (Tag C2) = 0x12 Get Capability String

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) =

Null-terminated string similar to

“V=1,SC=1,SR=1,TR=1,MS2=1,PFK=1,UDE=2,CE=2,CLE=1,DR=1” where each of

the comma-separated name-value pairs represents a device capability:

V = Device Version

SC = Signature Capture Support, 1=Supported, 0=Not Supported SR = SRED, 1=SRED, 0=NON-SRED

TR = Token Reversal Support, 1=Supported, 0=Not Supported MS2 = MagneSafe 2.0 Support, 1=Supported, 0=Not Supported PFK = PIN Fixed Key Support, 1=Supported, 0=Not Supported

UDE = User Data Entry Mode, 1=Encrypted Only, 2=Clear Text and Encrypted CE = Contact EMV Level Support, 1=L1, 2=L2

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

13

Command ID Data Object (Tag C2) = 0x13 Get Manufacturer

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

13

Command ID Data Object (Tag C2) = 0x13 Get Manufacturer

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Manufacturer, e.g., MagTek, Inc.

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

14

Command ID Data Object (Tag C2) = 0x14 Get Product Name

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

14

Command ID Data Object (Tag C2) = 0x14 Get Product Name

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Product Name, e.g., oDynamo

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

15

Command ID Data Object (Tag C2) = 0x15 Get Secure Tracking Number

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

15

Command ID Data Object (Tag C2) = 0x15 Get Secure Tracking Number

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

26

Data Field Data Object (Tag C4 or E0) = Bytes 0..25 Secure Tracking Number

ASCII string. Example “B55984678901234567890123456”

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

16

Command ID Data Object (Tag C2) = 0x16 Get Firmware Version

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

16

Command ID Data Object (Tag C2) = 0x16 Get Firmware Version

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Firmware Version, e.g., 1000004854-B1-PCI

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

18

Command ID Data Object (Tag C2) = 0x18 Get Network Information

C4

01

Data Field Data Object (Tag C4 or E0) = Type of Information

0x00 = Request Ethernet MAC Address 0x01 = Request Ethernet IP Address

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

18

Command ID Data Object (Tag C2) = 0x18 Get Network Informations

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Byte 0 Type of Information

0x00 = Ethernet MAC Address 0x01 = Ethernet IP Address

Bytes 1..n.Network Information String

MAC Address in ASCII format, e.g., 112233445566 or IP Address e.g., 111.222.333.444

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

23

Command ID Data Object (Tag C2) = 0x23 Get Boot Loader Version

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

23

Command ID Data Object (Tag C2) = 0x23 Get Boot Loader Version

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Boot loader version, e.g., 1000004194-A0-PCI

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

27

Command ID Data Object (Tag C2) = 0x27 Get CT-L2 Version

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

27

Command ID Data Object (Tag C2) = 0x27 Get CT-L2 Version

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

Calculated

Data Field Data Object (Tag C4 or E0) =

ASCII string containing version info. For example “JIBE EMV L2 4.3j Version C”

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

28

Command ID Data Object (Tag C2) = 0x28 Get Serial Number

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

28

Command ID Data Object (Tag C2) = 0x28 Get Serial Number

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

10

Data Field Data Object (Tag C4 or E0) =

Serial Number is 16 bytes long in ASCII., e.g., “1111000050123456”

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

C1

01

00

Application ID Data Object (Tag C1) = 0x00 Device Information

C2

01

10

Command ID Data Object (Tag C2) = 0x10 Get Product ID

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Table - Response to Command 0x00:0x10 - Get Product ID

Table - Message Structure for Command 0x00::0x12 - Get Capability String

Table - Response to Command 0x00::0x12 - Get Capability String

Table - Message Structure for Command 0x00::0x13 - Get Manufacturer

Table - Response to Command 0x00::0x13 - Get Manufacturer

Table - Message Structure for Command 0x00::0x14 - Get Product Name

Table - Response to Command 0x00::0x14 - Get Product Name

Table - Message Structure for Command 0x00::0x15 - Get Secure Tracking Number

Table - Response to Command 0x00::0x15 - Get Secure Tracking Number

Table - Message Structure for Command 0x00::0x16 - Get Firmware Version

Table - Response to Command 0x00::0x16 - Get Firmware Version

Table - Message Structure for Command 0x00::0x18 - Get Network Information (Ethernet Only)

Table - Response to Command 0x00::0x18 - Get Network Information (Ethernet Only)

Table - Message Structure for Command 0x00::0x23 - Get Boot Loader Version

Table - Response to Command 0x00::0x23 - Get Boot Loader Version

Table - Message Structure for Command 0x00::0x27 - Get CT-L2 Version

Table - Response to Command 0x00::0x27 - Get CT-L2 Version

Table - Message Structure for Command 0x00::0x28 - Get Serial Number

Table - Response to Command 0x00::0x28 - Get Serial Number

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

C1

01

01

Message Type Data Object (Tag C0) = 0x01 Command

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

02

Command ID Data Object (Tag C2) = 0x02 Clear Transaction Data

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:

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Command 0x01::0xFF - Device Reset

The host uses this command to direct the device to reset.

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

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:

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Notification 0x01::0xFF - Device Reset

The device sends this notification to the host to notify the host that it is about to perform a periodic automatic device reset, which it initiates after 23 hours of continuous operation to fulfill PCI requirements. MagTek recommends the host software pre-empt these automatic resets by initiating resets in advance of the 23 hour schedule, at times that are least disruptive to the solution design.

Tag

Len

Value(s) / Description

C0

01

03

Message Type Data Object (Tag C0) = 0x03 Notification

Command 0x01::0x04 - Get Device Status

The host uses this command to request the device status, such as Session State, Device State, and Status.

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

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:

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Notification 0x01::0x04 - Send Device Status

In addition to sending device status in response to Command 0x01::0x04 - Get Device Status, the device will automatically send the same data when the device powers up, restarts, or changes state.

Tag

Len

Value(s) / Description

C0

01

03

Message Type Data Object (Tag C0) = 0x03 Notification

Command 0x01::0x10 - Send Big Block Command

The host uses this command to send command messages to the device as a sequence of packets. The host should follow this sequence:

  • In local memory, compose the entire command message as documented by the desired command’s usage table (for example, Command 0x01::0x17 - Update Firmware).

  • Calculate the length of the fully-composed command message. Divide the fully-composed command message into packets that are shorter than the connection type’s maximum packet size.

    • When using the USB connection, the maximum packet size is 0x3F bytes.

    • When using the Ethernet connection, the maximum packet size is 0x0400 bytes.

    • When using a serial connection, the maximum packet size is 0x0400 bytes.

  • Send command 0x01::0x10 to the device as “Packet 0.” Packet 0 is short and sets up how much data the device should expect across the whole big block operation. The C4 data object can be of varying length, and its value should be a 2-byte Packet Number equal to 00 00, plus a 2-byte Packet Length, plus Packet Data containing the Total Command Message Length, in bytes, the device should expect to receive when concatenating all subsequent packets (see Table 4-29).

  • Wait to receive a response from the device (see Table 4-31).

  • Continue sending Command 0x01::0x10 to send Packets 1 through n, incrementing the Packet Number by 1 each time, until the host has sent the fully-composed command message. After sending each packet, wait for the device’s response to reduce risk of packets arriving out of order. The C4 data object for packets 1 through n can be of varying length, and its value should be a 2-byte Packet Number that increments with each call to this command, plus a 2-byte Packet Data Length, plus the Packet Data (see Table 4-30).

  • Listen for a final response from the device acknowledging the completed command. This means after sending the final packet, the host should expect to receive two responses: One for the final packet sent with Command 0x01::0x10, and one after the device has finished processing all the uploaded data and responds to the fully-composed command message the host has sent (for example, Command 0x01::0x17 - Update Firmware).

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

For every packet the host sends, if an error occurs (such as an out of order packet), the device will terminate the command, report the error using an ACK Response containing the result code, and will stop expecting to receive subsequent big block packets. The host should stop sending them. For a full list of error codes, see 2.4.4 Result Code Data Object (Tag C3).

If no error occurs, the device responds to every packet as follows:

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Notification 0x01::0x10 - Big Block Device Data

The device uses this notification to send data to the host as a sequence of packets. The host should process this notification as follows:

  • The host may receive this notification completely unsolicited or in response to a command (all commands that operate in this way say so in the command documentation). If the host has sent such a command to the device, it should start a timeout counter and begin listening for incoming notifications.

  • Parse the first incoming notification, which should be identified as Packet 0000, according to Table 4-32 below. Use the value of Total Message Length to allocate buffer space to begin concatenating all subsequent packets, which together form the complete message.

  • Continue receiving packets 0001 through nnnn, parsing them according to Table 4-33 below, concatenating the Packet Data from all notifications in order and adding the length of Packet Data in each packet, until the length of concatenated message data equals the Total Message Length.

  • If the complete message is a notification type, the host should parse it according to the notification’s documentation. If it is a response type, the host should parse it according to the corresponding command’s response table.

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x03 Notification

Tag

Len

Value(s) / Description

C0

01

03

Message Type Data Object (Tag C0) = 0x03 Notification

Command 0x01::0x17 - Update Firmware

The host uses this command to update the device’s firmware. The host should first compose the entire message for this command, then transmit the entire message to the device in packets using Command 0x01::0x10 - Send Big Block Command.

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

After the device receives the final packet of this command, the device will validate the firmware image, and if the validation passes, it will commit the image to the selected firmware storage location. In all cases, the device will also send an additional response:

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Although this command works on all connection types, for speed reasons, MagTek recommends using an

Ethernet or USB connection to upgrade the device’s firmware.

Notification 0x01::0x40 - Card Detected / Identified / Removed

The device uses this notification to signal to the host that a cardholder has inserted or removed a card, and to identify the type of card. Upon insertion or removal of a card, the device sends this notification to provide a Card Present Indication (CPI). After the device finishes identifying the type of card, it sends this notification again to provide an ICC Present Indication (IPI). When the CPI indicates a card is present and the IPI reports it is a chip card, the host is free to begin an EMV transaction, or in the case of magnetic stripe cards, to prompt the cardholder to remove the card to swipe on exit.

Tag

Len

Value(s) / Description

C0

01

03

Message Type Data Object (Tag C0) = 0x03 Notification

Command 0x01::0x50 - Subscribe to Notifications

The host uses this command to specify which notifications the device should send to it (for example, Notification 0x01::0xFF - Device Reset). By default, the device does not send any notifications to the host.

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

Table - Message Structure for Command 0x01::0x02 - Clear Transaction Data

C0

Table - Response to Command 0x01::0x02 - Clear Transaction Data

Table - Message Structure for Command 0x01::0xFF - Device Reset

Table - Response to Command 0x01::0xFF - Device Reset

Table - Response to Notification 0x01::0xFF - Device Reset

Table - Message Structure for Command 0x01::0x04 - Get Device Status

Table - Response to Command 0x01::0x04 - Get Device Status

Table - Message Structure for Notification 0x01::0x04 - Send Device Status

Table - Message Structure for Command 0x01::0x10 - Send Big Block Command (Packet 0 Only)

Table - Message Structure for Command 0x01::0x10 - Send Big Block Command (Packets 1 through n)

Table - Response to Command 0x01::0x10 - Send Big Block Command

Table - Message Structure for Notification 0x01::0x10 - Big Block Device Data (Packet 0 Only)

Table - Message Structure for Notification 0x01::0x10 - Big Block Device Data (Packets 1 through n)

Table - Message Structure for Command 0x01::0x17 - Update Firmware

Table - Response to Command 0x01::0x17 - Update Firmware

Table - Message Structure for Notification 0x01::0x40 - Card Detected / Identified / Removed

Table - Message Structure for Command 0x01::0x50 - Subscribe to Notifications

Table - Response to Command 0x01::0x50 - Subscribe to Notifications

CLE = Contactless EMV Level Support, 0=Not Supported,1=L1, 2=L2 DR = Delayed Response Support, 1=Supported, 0=Not Supported SIGN = Device Signing Certificate support, 1=Supported

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

02

Command ID Data Object (Tag C2) = 0x02 Clear Transaction Data

C3

01

00

Result Code Data Object (Tag C3) = OK / Done

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

FF

Command ID Data Object (Tag C2) = 0xFF Device Reset

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

FF

Command ID Data Object (Tag C2) = 0xFF Device Reset

C3

01

00

Result Code Data Object (Tag C3) = OK / Done

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

FF

Command ID Data Object (Tag C2) = 0xFF Device Reset

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

04

Command ID Data Object (Tag C2) = 0x04 Get Device Status

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

04

Command ID Data Object (Tag C2) = 0x04 Get Device Status

C3

01

00

Result Code Data Object (Tag C3) = OK / Done

E0

Calculated

Data Field Data Object (Tag C4 or E0) =

Data Object F1 - Device Status

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

04

Command ID Data Object (Tag C2) = 0x04 Get Device Status

C3

01

00

Result Code Data Object (Tag C3) = OK / Done

E0

Calculated

Data Field Data Object (Tag C4 or E0) =

Data Object F1 - Device Status

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

10

Command ID Data Object (Tag C2) = 0x10 Send Big Block Command Message

C4

Calculated

Data Field Data Object (Tag C4 or E0) = 2-byte Packet Number = 00 00

2-byte Packet Data Length, LSB first

Packet Data = Total Command Message Length in bytes the device is sending using big block packets, LSB first

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

10

Command ID Data Object (Tag C2) = 0x10 Send Big Block Command Message

C4

Calculated

Data Field Data Object (Tag C4 or E0) = 2-byte Packet Number, LSB first

2-byte Packet Data Length, LSB first Packet Data, LSB first

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

10

Command ID Data Object (Tag C2) = 0x10 Send Big Block Command Message

C3

01

00

Result Code Data Object (Tag C3) = OK / Done

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

10

Command ID Data Object (Tag C2) = 0x10 Big Block Device Data

C4

08

Data Field Data Object (Tag C4 or E0) = 2-byte Packet Number = 00 00

2-byte Packet Data Length, LSB first

4-byte Total Message Length in bytes, LSB first

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

10

Command ID Data Object (Tag C2) = 0x10 Big Block Device Data

C4

Calculated

Data Field Data Object (Tag C4 or E0) = 2-byte Packet Number, LSB first

2-byte Packet Data Length, LSB first Packet Data

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

17

Command ID Data Object (Tag C2) = 0x17 Update Firmware

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Byte 1 Subcommand

0x01 = Update boot loader 0x02 = Reserved

0x03 = Update firmware image 0x04 = Reserved

Bytes 2..n: Firmware image binary data

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

17

Command ID Data Object (Tag C2) = 0x17 Update Firmware

C3

01

Result Code Data Object (Tag C3): 0x00 = Update successful

0x01 = Invalid firmware image loaded in buffer 0x02 = Signature error

0x03 = Build version error 0x09 = Other error

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

40

Command ID Data Object (Tag C2) = 0x40 Card Inserted/Identified/Removed

C4

02

Data Field Data Object (Tag C4 or E0) = Byte 0: Card Present Indication (CPI)

· 0x00 = Card was present and has been removed

· 0x01 = Card was not present and is now present

Byte 1: Card Type Present Indication (IPI)

· 0x00 = Card is not a chip card (ICC card)

· 0x01 = Card is a chip card (ICC card)

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

50

Command ID Data Object (Tag C2) = 0x50 Subscribe to Notifications

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Byte 0 Subscribe or Unsubscribe

0x01 = Subscribe 0x02 = Unsubscribe

Byte 1 Notifications to Subscribe To

0x00 = Subscribe/unsubscribe to all notifications 0x01 = Subscribe/unsubscribe to specific notifications

If Notifications to Subscribe To = 0x01:

Bytes 2..n contain a list of two-byte notification IDs which specify the Application Group and Notification Number of each Notification the device should send to the host. For example, to subscribe to Notification 0x01::0xFF - Device Reset, the host would include 0x010F as two bytes in the list.

C1

01

01

Application ID Data Object (Tag C1) = 0x01 General Messages

C2

01

50

Command ID Data Object (Tag C2) = 0x50 Subscribe to Notifications

C3

01

Result Code Data Object (Tag C3)

Application Group 0x03 - Device Configuration Messages

The host uses commands in this application to get and set the configuration of the device. Every configuration setting has a command to get the setting and a command to change the setting. When using get commands, the host should not include Data Field Data Object (Tag C4 or E0). The device responds with the current configuration values in Data Field Data Object (Tag C4 or E0).

Command 0x03::0x00 - Card Latch Control

The host uses this command to lock or unlock the card latch. The host can choose to lock the card during EMV transactions to limit the possibility of the cardholder prematurely removing the card. The lock can also be enabled while the card is out of the system to block cardholders from inserting a card.

Table - Message Structure for Command 0x03::0x00 - Card Latch Control

Tag

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:

Command 0x03::0x60 - Set/Get Ethernet Configuration (Ethernet Only)

The host uses this command and its subcommands to set and get configuration settings for the device’s Ethernet connection.

To change the device’s Ethernet configuration, the host should follow these steps:

  • Call the command with the Set Ethernet IP Address Mode subcommand to select DHCP or Static.

  • If using Static, call the command with each Set subcommand for all remaining settings. If the host selected DHCP, the device ignores the remaining settings and further Set calls are unnecessary.

  • Call the command again with the Apply Changes subcommand. The device will begin using the new configuration immediately, and the settings will persist through subsequent power cycles and restarts.

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:

Command 0x03::0x70 - Set Chip Card Support

The host uses this command to enable or disable support for chip cards. When disabled, the device will ignore chip cards and will only read magnetic stripe cards. When enabled, the device checks whether an inserted card has an EMV chip, and will try to communicate with the chip and notify the host first, before falling back to reading the magnetic stripe. This changes the value of tag DFDFDF12 in the device configuration (see Command 0x03::0x72 - Get Device Configuration).

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:

Command 0x03::0x72 - Get Device Configuration

The host uses this command to get the device’s configuration. If the host uses the Data Field Data Object (Tag C4 or E0) to specify a single configuration setting to retrieve, the device returns that setting in the format shown in Table 4-59. If the host omits the Data Field Data Object (Tag C4 or E0), the device returns a list of all configuration values as shown in Table 4-60.

Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist

The host uses this command to read the device’s PAN Whitelist or Account Data Whitelist, which are loaded securely by the manufacturer and allow the device to relax security for cards that match the criteria specified in the lists.

The first 6 digits of a card’s Primary Account Number (PAN) are called the Issuer Identification Number (IIN), previously known as bank identification number (BIN). The IIN identifies the institution that issued the card to the cardholder. Before the device transmits certain types of card data to the host, it compares the card’s IIN to the rules stored in the two whitelist tables, and changes the data it sends accordingly:

  • The device’s PAN Whitelist affects the behavior of Command 0x05::0x01 - Read PAN. This whitelist is specifically designed to support solutions that use an external Encrypting PIN Pad (EPP), where the host would typically need an unencrypted PAN to create an encrypted PIN block.

  • The device’s Account Data Whitelist affects the behavior of MSR transactions in Notification 0x04::0x11 - MSR Card Data Available, Command 0x04::0x12 - Request MSR Card Data, and the corresponding Data Object F4 - Magnetic Stripe Reader Card Data.

  • The device’s Account Data Whitelist affects the behavior of EMV transactions in Notification 0x07::0x83 - EMV L2 ARQC Message, Notification 0x07::0x84 - EMV L2 Transaction Result, and the corresponding Transaction Result Message - Batch Data Format (EMV Only).

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:

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

00

Command ID Data Object (Tag C2) = 0x00 Card Latch Control

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

To get information about the device’s Ethernet configuration, the host should call this command with one of the Get subcommands, and interpret the device’s response based on which subcommand it selected.

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

60

Command ID Data Object (Tag C2) = 0x60 Set/Get Ethernet Configuration

Data Field Data Object (Tag C4 or E0) =

Byte 0 Subcommand. Set Commands are below 0x80, Gets are 0x80 and above. 0x00 = Apply Changes

0x01 = Set Ethernet Static IP Address (if Ethernet IP Address Mode is set to Static) 0x02 = Reserved

0x03 = Set Ethernet IP Address Mode (DHCP vs. Static) 0x04 = Set Ethernet Gateway Address

0x05 = Set Ethernet Netmask 0x80 = Reserved

0x81 = Get Ethernet IP Address 0x82 = Get Ethernet MAC Address

0x83 = Get Ethernet IP Address Mode (DHCP vs. Static) 0x84 = Get Ethernet Gateway Address

0x85 = Get Ethernet Netmask

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

60

Command ID Data Object (Tag C2) = 0x60 Set/Get Ethernet Configuration

C3

01

Result Code Data Object (Tag C3) =

0x00 = OK / Done

0xFE = Invalid IP Address 0xFD = Invalid Netmask

0xFC = Invalid Gateway Address 0xFB = Gateway/IP Mismatch

Data Field Data Object (Tag C4 or E0) =

Byte 0 Subcommand. Set Commands are below 0x80, Gets are 0x80 and above. 0x00 = Apply Changes

0x01 = Set Ethernet IP Address (only if Ethernet IP Address Mode is set to Static) 0x02 = Reserved

0x03 = Set Ethernet IP Address Mode (DHCP vs. Static) 0x04 = Set Ethernet Gateway Address

0x05 = Set Ethernet Netmask 0x80 = Reserved

0x81 = Get Ethernet IP Address 0x82 = Get Ethernet MAC Address

0x83 = Get Ethernet IP Address Mode (DHCP vs. Static) 0x84 = Get Ethernet Gateway Address

0x85 = Get Ethernet Netmask

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

70

Command ID Data Object (Tag C2) = 0x70 Set Chip Card Support

C4

01

Data Field Data Object (Tag C4 or E0) = 0x00 = Disable chip card processing

0x01 = Enable chip card processing

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

0x70

Command ID Data Object (Tag C2) = 0x70 Set Chip Card Support

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

72

Command ID Data Object (Tag C2) = 0x72 Get Device Configuration.

C4

04

Data Field Data Object (Tag C4 or E0) =

DFDFDFXX Tag for the desired setting. See Table 4-61 on page 79 for a list of settings.

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

72

Command ID Data Object (Tag C2) = 0x72 Get Device Configuration

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

C4

02

Data Field Data Object (Tag C4 or E0) = Byte 0 Status

0x00 = Requested value not found 0x01 = Requested value found

Byte 1 Requested configuration value. See Table 4-61.

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

72

Command ID Data Object (Tag C2) = 0x72 Get Device Configuration

C3

01

00

Result Code Data Object (Tag C3) = 0x00 OK / Done

E0

var

Data Field Data Object (Tag C4 or E0) =

TLV formatted list of all available configuration settings. See Table 4-61.

DFDFDF14

1

MSR nonstandard ISO decode enable:

· 0x00 = Disable non-standard ISO decoding

· 0x01 = Enable nonstandard ISO decoding (default)

Standard ISO encoding is 7-bit ISO encoding on track 1 and 5-bit ISO encoding on tracks 2 and 3. Financial cards use standard ISO encoding.

Nonstandard ISO encoding is considered any other combination of 7-bit ISO or 5-bit ISO encoding on any track.

AAMVA encoding is also considered nonstandard ISO encoding because it is encoded as 7-bit ISO on track 1, 5-bit ISO on track 2, and 7-bit ISO on track 3.

DFDFDF15

1

MSR Track 1 Enable / Disable

· 0x00 = Disable

· 0x01 = Enable

DFDFDF16

1

MSR Track 2 Enable / Disable

· 0x00 = Disable

· 0x01 = Enable

DFDFDF17

1

MSR Track 3 Enable / Disable

· 0x00 = Disable

· 0x01 = Enable

DFDFDF18

1

MSR mask character (any printable ASCII character, typically set to “0” or “*”). The device uses this mask character in Data Object F4 - Magnetic Stripe Reader Card Data and in Notification 0x07::0x83 - EMV L2 ARQC Message.

DFDFDF19

1

MSR number of leading unmasked digits (0 to 6)

DFDFDF1A

1

MSR number of trailing unmasked digits (0 to 4)

DFDFDF1C

1

Reserved

DFDFDF27

1

RS-232 CRC setting

· 0x00 = Do not include CRC

· 0x01 = Include CRC

DFDFDF31

1

Device Configuration Lock

· 0x00 = Unlock

· 0x01 = Lock

DFDFDF32

1

MSR Mask Check Digit Correction

· 0x00 = Disable

· 0x01 = Enable (default)

When enabled, the device masks the PAN with ASCII “0” regardless of the MSR mask character setting, and one mask digit will be modified so the PAN check digit is correct.

DFDFDF33

1

EMV Terminal Capabilities Configuration

This setting performs exactly the same function as Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration. This version is used for device configuration.

· 0x00 = ICS Online PIN CVM

· 0x01 = ICS No PIN CVM

· 0x02 = ICS Online / Offline PIN CVM

· 0x03 = ICS ATM

DFDFDF34

1

MSR Unmask Service Code

· 0x00 = Disable (default)

· 0x01 = Enable

When enabled, the device unmasks the Service Code in Track 1 and Track 2 of MSR data returned from Command 0x04::0x09 - Read MSR Data.

The PAN Whitelist table contains eight rows / entries; each entry follows the format specified in Table 4-62. The Account Data Whitelist table contains

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

80

Command ID Data Object (Tag C2) = 0x80 Read PAN / Account Data Whitelist

C4

01

Data Field Data Object (Tag C4 or E0) = Byte 0 Subcommand

0x80 = Read PAN Whitelist

0x81 = Read Account Data Whitelist

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

80

Command ID Data Object (Tag C2) = 0x80 Read PAN / Account Data Whitelist

C3

01

Result Code Data Object (Tag C3) =

0x00 = OK / Done

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

C1

01

03

Application ID Data Object (Tag C1) = 0x03 Device Configuration Messages

C2

01

00

Command ID Data Object (Tag C2) = 0x00 Card Latch Control

C4

01

Data Field Data Object (Tag C4 or E0) =

0x00 = Latch (ICC is locked in slot or blocked from entering slot) 0x01 = Unlatch (ICC can freely move in/out of slot)

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

DFDFDF11

1

MSR Encryption Variant, used to encrypt MSR data:

· 0x00 = Data Variant

· 0x01 = PIN Variant

DFDFDF12

1

Tag

Len

Value(s) / Description

DFDFDF28

1

RS-232 starting character Default is 0x00 = None

DFDFDF29

1

Tag

Len

Value(s) / Description

DFDFDF35

1

EMV Configuration Security

0x00 = OEM Behavior (no MAC required)

0x01 = Standard behavior (default, AMK MAC required)

This setting changes the security behavior of a subset of the device’s EMV configuration commands. The non-default setting allows OEMs, acquirers, and field technicians to update EMV configuration settings that change frequently, without requiring access to the device UIK key, or network connectivity to request a signed command from a remote service, or pre-generated signed commands.

When the device is configured for OEM Behavior, the host should transmit NULL (0) in place of the MAC when it invokes any of the affected commands, which are:

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

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

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

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

DFDFDF36

1

Name of Value

Description of Value

Length

1 byte ASCII value specifying the number of characters from this whitelist row that the device will compare to the card’s PAN, when deciding whether the card should be treated as whitelisted. The device ignores any row that begins with a length outside the following meaningful values:

· “0” = If any row uses this length, all cards are considered whitelisted, because 0

characters of the card PAN always match 0 characters of the whitelist entry.

· “1” through “6” = Usual range of characters to compare.

· 0x7F = Special value specifying the device should ignore this entry in the whitelist table. This can be used for testing, or for completely disabling the whitelist by starting every entry with this.

PAN

6 byte string specifying the value the device should compare to the card’s PAN. The value must be 6 bytes long, but the device will only compare the number of characters specified by Length above.

PAN Flag

1 byte ASCII value specifying how the device should process the PAN if it finds the card matches this whitelist entry.

· “0” = Device sends only the 12 digits required by an external EPP

· “1” = Device sends complete PAN

Name of Value

Description of Value

Length

1 byte ASCII value specifying the number of characters from this whitelist row that the device will compare to the card’s PAN, when deciding whether the card should be treated as whitelisted. The device ignores any row that begins with a length outside the following meaningful values:

· “0” = If any row uses this length, all cards are considered whitelisted, because 0

characters of the card PAN always match 0 characters of the whitelist entry.

· “1” through “6” = Usual range of characters to compare.

· 0x7F = Special value specifying the device should ignore this entry in the whitelist table. This can be used for testing, or for completely disabling the whitelist by starting every entry with this.

PAN

6 byte string specifying the value the device should compare to the card’s PAN. The value must be 6 bytes long, but the device will only compare the number of characters specified by Length above.

Tag

Len

Value(s) / Description

C0

01

01

Message Type Data Object (Tag C0) = 0x01 Command

Tag

Len

Value(s) / Description

C0

01

02

Message Type Data Object (Tag C0) = 0x02 Response

Tag

Len

Value(s) / Description

C4

Calculated

Data Field Data Object (Tag C4 or E0) = Byte 0 Subcommand

0x80 = Read PAN Whitelist

0x81 = Read Account Data Whitelist

For subcommand 0x80, Bytes 0..63 contain the 8 entries in the PAN whitelist at 8 bytes per entry (see Table 4-62).

For subcommand 0x81, Bytes 0..55 contain the 8 entries in the Account Data whitelist at 7 bytes per entry (see Table 4-63).

Table - Response to Command 0x03::0x00 - Card Latch Control

Table - Message Structure for Command 0x03::0x60 - Set/Get Ethernet Configuration (Ethernet Only)

Table - Response to Command 0x03::0x60 - Set/Get Ethernet Configuration (Ethernet Only)

Table - Message Structure for Command 0x03::0x70 - Set Chip Card Support

Table - Response to Command 0x03::0x70 - Set Chip Card Support

Table - Message Structure for Command 0x03::0x72 - Get Device Configuration

Table - Response to Command 0x03::0x72 - Get Device Configuration, Single Value Retrieved

Table - Response to Command 0x03::0x72 - Get Device Configuration, All Values Retrieved

Table - Tags, Lengths, and Values for Configuration Settings

Table - Format for Each Entry In PAN Whitelist Table

Table - Format for Each Entry In Account Data Whitelist Table

Table - Message Structure for Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist

Table - Response to Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist

C1

C1

C1

C1

C1

C1

C1

C1

Device Reader Mode. This value can be changed using

Command 0x03::0x70 - Set Chip Card Support.

· 0x00 = Disable ICC reader

· 0x01 = Enable ICC reader

RS-232 ending character Default is 0x0A = LF

Terminal INL File Version Number

This value indicates what version of the EMV database is included in the firmware. If new versions of firmware include a change to the database format, this number will change and the device overwrites the old database with the new factory defaults.

C1

C1

C4

Calculated

Bytes 1..n.Network Configuration Data

Depends on the value the host selected in the Subcommand byte: Apply Changes uses 0 bytes

Set Ethernet Static IP Address uses 4 bytes MSB first, e.g., 0xAABBCCDD Set Ethernet IP Address Mode uses 1 byte, 0x00 = DHCP, 0x01 = Static Set Ethernet Gateway Address uses 4 bytes MSB first e.g., 0xAABBCCDD Set Ethernet Netmask uses 4 bytes MSB first e.g., 0xAABBCCDD

C4

Calculated

Bytes 1..n.Network Configuration Data

Depends on the value the host selected in the Subcommand byte: Set commands use 1 byte equal to 0x00

Get Ethernet MAC Address uses 6 bytes MSB first, e.g., 0xAABBCCDDEEFF Get Ethernet IP Address uses 4 bytes MSB first, e.g., 0xAABBCCDD

Get Ethernet IP Address Mode uses 1 byte, 0x00 = DHCP, 0x01 = Static Get Ethernet Gateway Address uses 4 bytes MSB first e.g., 0xAABBCCDD Get Ethernet Netmask uses 4 bytes MSB first e.g., 0xAABBCCDD

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.

  • 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.

  • 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:

    • 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.

  • 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 NOT supported or is not in effect:

    • 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.

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

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

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:

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.

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:

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.

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:

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.

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:

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 .

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

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

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 .

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

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

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

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

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

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

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

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

Command 0x07:0x0D - Get Date Time

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

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:

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.

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.

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 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.

      • 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).

  • 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 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 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.

    • 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.

  • 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.

  • 01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    00

    Command ID Data Object (Tag C2) = 0x00 EMV L2 Start Transaction

    Data Field Data Object (Tag C4 or E0) = Byte 0: Maximum Process Time

    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:

    · User card insertion timeout: The transaction terminates.

    · User language selection timeout: The transaction continues with the default language.

    · User application selection timeout: The transaction terminates.

    Byte 1 Reserved. Set to 0x00 (preferred) or 0x02 (legacy).

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    00

    Command ID Data Object (Tag C2) = 0x00 EMV L2 Start Transaction

    C3

    01

    00

    Result Code Data Object (Tag C3) = 0x00 OK

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    02

    Command ID Data Object (Tag C2) = 0x02 EMV L2 User Selection Result

    C4

    02

    Data Field Data Object (Tag C4 or E0) = Byte 0 Selection Status:

    0x00 = User Selection Request completed, see Selection Result 0x01 = User Selection Request aborted, canceled by user

    0x02 = User Selection Request aborted, timeout

    Byte 1 Selection Result:

    Contains the value of the menu item the cardholder or operator selected. Use 0x00 to select the first menu item.

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    02

    Command ID Data Object (Tag C2) = 0x02 EMV L2 User Selection Result

    C3

    01

    Result Code Data Object (Tag C3) =

    0x00 = Success, the Selection Result was received 0x01 = Invalid Selection Status

    0x02 = Invalid Selection Result

    0x03 = Failure, no transaction currently in progress

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    03

    Command ID Data Object (Tag C2) = 0x03 EMV L2 Online Processing Result

    C4

    Calculated

    Data Field Data Object (Tag C4 or E0) =

    See Appendix B ARPC Response from Online Processing (EMV Only)

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    03

    Command ID Data Object (Tag C2) = 0x03 EMV L2 Online Processing Result

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 OK / Done

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    04

    Command ID Data Object (Tag C2) = 0x04 EMV L2 Cancel Transaction

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    04

    Command ID Data Object (Tag C2) = 0x04 EMV L2 Cancel Transaction

    C3

    01

    Result Code Data Object (Tag C3) =

    0x00 = Success, the transaction was canceled

    0x8D = Failure, no transaction currently in progress

    0x8F = Failure, transaction in progress, card already inserted

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    05

    Command ID Data Object (Tag C2) = 0x05 EMV L2 Modify Contact Terminal Configuration

    Data Field Data Object (Tag C4 or E0) = Byte 0: MAC Type

    MAC algorithm designator

    0x00 = ISO 9797 MAC Algorithm 3, Padding Method 1.

    Byte 1 Slot Number

    EMV Terminal Slot Number. Must be 0x01.

    Byte 2 Operation

    0x01 = Write Operation

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    05

    Command ID Data Object (Tag C2) = 0x05 EMV L2 Modify Terminal Configuration

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 = Success, the modify completed 0x90 = Device Has No Keys

    0x91 = Invalid Device Serial Number 0x92 = Invalid Type of MAC field 0x93 = Invalid Slot Number field 0x94 = Invalid Operation field

    0x95 = Invalid Database Selector field 0x96 = Invalid Objects to Write field 0x97 = Invalid MAC

    0x98 = No Slots Available

    0x9B = Invalid CAPK Checksum

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    06

    Command ID Data Object (Tag C2) = 0x06 EMV L2 Get Contact Terminal Configuration

    Data Field Data Object (Tag C4 or E0) = Byte 0: Slot Number

    Must be 0x01

    Byte 1: Operation 0x00 = Read Operation

    0x0F = Read All Tags of selected slot

    Byte 2: Database Selector 0x00 = EMV Contact L2

    Bytes 3..n: Tags to Read

    Note: Not needed if Operation is 0x0F Read All Tags of selected slot.

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    06

    Command ID Data Object (Tag C2) = 0x06 EMV L2 Get Contact Terminal Configuration

    C3

    01

    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

    0x95 = Failure, invalid Database Selector field 0x96 = Failure, invalid Tag to Read field

    C4

    Calculated

    Data Field Data Object (Tag C4 or E0) = Byte 0..1 Message Length

    Two byte hex, most significant byte first. This gives the total length of the EMV Terminal Configuration message that follows.

    Byte 2..N Tags Read:

    FA<len> /* container for generic data */

    <tag><len><value>

    …

    <tag><len><value>

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    07

    Command ID Data Object (Tag C2) = 0x07 EMV L2 Modify Contact Application Configuration

    Byte 0: MAC Type

    MAC algorithm designator

    0x00 = ISO 9797 MAC Algorithm 3, Padding Method 1

    Byte 1: Slot Number

    EMV Application Slot Number = Any value from 0x01 to 0x20 inclusive

    Byte 2: Operation

    0x01 = Write Operation

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    07

    Command ID Data Object (Tag C2) = 0x07 EMV L2 Modify Contact Application Configuration

    C3

    01

    01

    Result Code Data Object (Tag C3) = 0x00 = Success, the modify completed 0x90 = Device Has No Keys

    0x91 = Invalid Device Serial Number 0x92 = Invalid Type of MAC field 0x93 = Invalid Slot Number field 0x94 = Invalid Operation field

    0x95 = Invalid Database Selector field 0x96 = Invalid Objects to Write field 0x97 = Invalid MAC

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    08

    Command ID Data Object (Tag C2) = 0x08 EMV L2 Get Contact Application Configuration

    Data Field Data Object (Tag C4 or E0) = Byte 0: Slot Number

    Must be 0x01

    Byte 1: Operation

    0x00 = Read Operation

    0x0F = Read All Tags of selected slot

    Byte 2: Database Selector 0x00 = EMV Contact L2

    Bytes 3..n: Tags to Read

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    08

    Command ID Data Object (Tag C2) = 0x08 EMV L2 Get Contact Application Configuration

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 = Success, the read completed 0x93 = Failure, invalid slot number field 0x94 = Failure, invalid Operation field

    0x95 = Failure, invalid Database Selector field 0x96 = Failure, invalid Tag to Read field

    C4

    Calculated

    Byte 0..1: Message Length

    Two byte hex, most significant byte first. This gives the total length of the EMV Terminal Configuration message that follows.

    Byte 2..n Tags Read:

    FA<len> /* container for generic data */

    <tag><len><value>

    …

    <tag><len><value>

    When reading all tags for the selected slot, the last tag will be DFDF47, the Database Checksum.

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    06

    Command ID Data Object (Tag C2) = 0x09 EMV L2 Modify CA Public Key

    Data Field Data Object (Tag C4 or E0) = Byte 0 MAC Type

    MAC algorithm designator

    0x00 = ISO 9797 MAC Algorithm 3, Padding Method 1.

    Byte 1 Slot Number

    Any value from 0x01 to 0x34 inclusive

    0xFF = Next Available (slot with RID TLV length set to zero)

    If the Operation byte is set to Erase All, the device ignores this byte.

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    09

    Command ID Data Object (Tag C2) = 0x09 EMV L2 Modify CA Public Key

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 = Success, the modify completed 0x90 = Device Has No Keys

    0x91 = Invalid Device Serial Number 0x92 = Invalid Type of MAC field 0x93 = Invalid Slot Number field 0x94 = Invalid Operation field

    0x95 = Invalid Database Selector field 0x96 = Invalid Objects to Write field 0x97 = Invalid MAC

    0x98 = No Slots Available

    0x9B = Invalid CAPK Checksum

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0A

    Command ID Data Object (Tag C2) = 0x0A EMV L2 Get CA Public Key

    Data Field Data Object (Tag C4 or E0) = Byte 0: Slot Number

    Must be 0x01

    Byte 1: Operation

    0x00 = Read Operation

    0x0F = Read All Tags of selected slot

    Byte 2: Database Selector 0x00 = EMV Contact L2

    Bytes 3..n: Tags to Read

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0A

    Command ID Data Object (Tag C2) = 0x0A EMV L2 Get CA Public Key

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 = Success, the read completed 0x93 = Failure, invalid slot number field 0x94 = Failure, invalid Operation field

    0x95 = Failure, invalid Database Selector field 0x96 = Failure, invalid Tag to Read field

    C4

    Calculated

    Byte 0..1: Message Length

    Two byte hex, most significant byte first. This gives the total length of the EMV Terminal Configuration message that follows.

    Byte 2..n Tags Read:

    FA<len> /* container for generic data */

    <tag><len><value>

    …

    <tag><len><value>

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0B

    Command ID Data Object (Tag C2) = 0x0B EMV L2 Get Kernel Checksum

    C4

    01

    Data Field Data Object (Tag C4 or E0) = 0x11 = Read L2 Kernel checksum

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0B

    Command ID Data Object (Tag C2) = 0x0B EMV L2 Get Kernel Information

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 = Success, the read completed 0x02 = Bad parameter

    0x86 = Invalid read option 0x9A = Internal error

    0xFF = Failed memory allocation

    C4

    15

    Byte 0: Data return type 0x11 = Kernel checksum

    Byte 1..14: Kernel checksum in ASCII

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0D

    Command ID Data Object (Tag C2) = 0x0D EMV Get Date Time

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0D

    Command ID Data Object (Tag C2) = 0x0D EMV Get Date Time

    C3

    01

    00

    Result Code Data Object (Tag C3) = 0x00 OK / Done

    Data Field Data Object (Tag C4 or E0) = Byte 0 Month

    0x01..0x0C: valid Month number; Dec = 12.

    Byte 1 Day

    0x01..0x1F: valid day of the month; Last day = 31.

    Byte 2 Hour

    0x00..0x17: valid hour of the day; last hour day = 23.

    Byte 3 Minute

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0E

    Command ID Data Object (Tag C2) = 0x0E EMV L2 Commit Configuration

    C4

    01

    Byte 0: Database Selector 0x00 = EMV Contact L2

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0E

    Command ID Data Object (Tag C2) = 0x0E EMV L2 Commit Configuration

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 = Success

    0x01 = Failure

    0x95 = Invalid Database Selector field

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    10

    Command ID Data Object (Tag C2) = 0x10 Modify EMV L2 Terminal Capabilities Configuration

    Byte 0: MAC Type

    MAC algorithm designator

    0x00 = ISO 9797 MAC Algorithm 3, Padding Method 1.

    Byte 1: Database Selector 0x00 = EMV Contact L2

    Bytes 2..17: Serial Number 16 Byte device Serial Number

    Byte 18: Configuration Identifier

    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:

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    10

    Command ID Data Object (Tag C2) = 0x10 EMV L2 Modify EMV L2 Terminal Capabilities Configuration

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 = Success, the modify completed 0x90 = Device Has No Keys

    0x91 = Invalid Device Serial Number 0x92 = Invalid Type of MAC field 0x93 = Invalid Slot Number field 0x94 = Invalid Operation field

    0x95 = Invalid Database Selector field 0x96 = Invalid Objects to Write field 0x97 = Invalid MAC

    0x9C = Invalid Configuration Identifier

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C2

    01

    07

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

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

    Table - Response to Command 0x07::0x00 - EMV L2 Start Transaction

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

    Table - Response to Command 0x07::0x02 - EMV L2 User Selection Result

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Table - Response to Command 0x07:0x0D - Get Date Time

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

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

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

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

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C3

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    C1

    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 .

    C4

    13

    Byte 2 Transaction Options (options can be combined) 0x00 = Normal

    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)

    0x30 = Continue Mode Enabled, Continue. Same as 0x20 above but the device does not pause the transaction after sending the notification.

    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.

    0x80 = Quick Chip Mode Enabled

    Bytes 3..8 Transaction Amount:

    EMV Tag 9F02, format n12, 6 bytes. If Byte 9 Transaction Type is set to Refund (0x20), the Transaction Amount must be zero.

    Byte 9 Transaction Type:

    0x00 = Purchase (covers transaction types Payment, Goods, and Services) 0x02 = Cash back

    0x20 = Refund (converts internally to type 0x00 Purchase, Bytes 3..8 are is ignored and set to

    $0.00)

    Bytes 10..15 Cash Back Amount:

    Cash back amount. If non-zero, use EMV Tag 9F03, format n12, 6 bytes. For Transaction Type Refund (0x20) this must be zero.

    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

    Byte 18 Level of Transaction Status Notifications:

    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):

    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

    C4

    Calculated

    0xFF = Set to Factory Defaults (sets all items, Terminal, Applications, and Application Public Keys to factory default values)

    Bytes 3 Database Selector 0x00 = EMV Contact L2

    Byte 4..19 Device Serial Number 16 Byte device Serial Number

    Bytes 20..N: Objects to Write

    Note: Not needed if Operation is 0xFF Set to Factory Defaults. FA<len> /* container for generic data */

    <tag><len><value>

    …

    <tag><len><value>

    Bytes N..N+3 MAC

    First four bytes of a CBC-MAC computed using the AMK key (modified by XOR with 0xFF for the 7th, 15th, and 23rd 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.

    C4

    Calculated

    FA<len> /* container for generic data */

    <tag>

    …

    <tag>

    Tag DFDF47 cannot be read individually. This tag can only be retrieved using the

    ‘Read All Tags’ option.

    When reading all tags for the selected slot, the last tag will be DFDF47, the Database Checksum.

    C4

    Calculated

    Bytes 3: Database Selector 0x00 = EMV Contact L2

    Byte 4..19: Serial Number

    16 Byte device Serial Number

    Bytes 20..N: Objects to Write

    Note: Not needed if Operation is 0xFF Set to Factory Defaults. FA<len> /* container for generic data */

    <tag><len><value>

    …

    <tag><len><value>

    Bytes N..N+3: MAC

    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.

    C4

    Calculated

    Note: Not needed if Operation is 0x0F Read All Tags of selected slot.

    FA<len> /* container for generic data */

    <tag>

    …

    <tag>

    Tag DFDF47 cannot be read individually. This tag can only be retrieved using the

    ‘Read All Tags’ option.

    C4

    Calculated

    Byte 2 Operation

    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.

    0x01 = Writes a CA Public Key. To erase a single slot, write all of the slot’s tags’

    TLV lengths to 1 and values to 0.)

    Bytes 3 Database Selector 0x00 = EMV Contact L2

    Bytes 4..19 Serial Number

    16 Byte device Serial Number

    Bytes 20..n Objects to Write

    Note: Not needed if Operation is 0x00 Erase All. FA<len> /* container for generic data */

    < DFDF79><len><value> /* RID */

    < DFDF7A><len><value>/* Index */

    < DFDF7B><len><value>/* Modulus */

    < DFDF7C><len><value>/* Key Exponent */

    < DFDF7D><len><value> /* Checksum */.

    Bytes n..n+3: MAC

    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.

    C4

    Calculated

    Note: Not needed if Operation is 0x0F Read All Tags of selected slot.

    FA<len> /* container for generic data */

    <tag>

    …

    <tag>

    Tag DFDF47 cannot be read individually. This tag can only be retrieved using the

    ‘Read All Tags’ option.

    When reading all tags for the selected slot, the last tag will be DFDF47, the Database Checksum.

    C4

    07

    0x00..0x3B: valid minute of the hour; last minute = 59.

    Byte 4 Second

    0x00..0x3B: valid second of the minute; last second = 59.

    Byte 5 Reserved 0x00: Reserved

    Byte 6 Year

    0x00..0xFF: valid year value added to 2008; 2017-2008 = 09.

    C4

    Calculated

    0x00 = Vendor Config ID oDynamo-PIN-Bypass (Default)

    · Tag 0x9F33 = 0x604800 (MSR, IC with Contacts, Enciphered PIN for online PIN, No CVM, No Signature, no ODA)

    · Tag 0x9F35 = 0x24 (Unattended, Online Only)

    · Tag 0x9F40 = 0x7200A05001 (Goods, Services, Cashback, Payment, NumCommand Keys, Print Cardholder, Display cardholder, Code table 1)

    · Tag 0xDFDF20 = 0x432380 (Manual language selection, CDA Mode 1, Cardholder Confirmation, EMV language Selection, Application Preferred Order,

    · Subsequent Bypass, PIN Bypass, Floor Limit Checking)

    0x01 = Vendor Config ID oDynamo-No PIN

    · Tag 0x9F33 = 0x600800 (MSR, IC with Contacts, No CVM, No Signature, No ODA)

    · Tag 0x9F35 = 0x24 (Unattended, Online Only)

    · Tag 0x9F40 = 0x7200A05001 (Goods, Services, Cashback, Payment, NumCommand Keys, Print Cardholder, Display cardholder, Code table 1)

    · Tag 0xDFDF22 = 0x432080 (Manual language selection, CDA Mode 1, Cardholder Confirmation, EMV language Selection, Application Preferred Order,Floor Limit Checking)

    0x02 = Vendor Config ID oDynamo-OLP

    · Tag 0x9F33 = 0x60D8C8 (MSR, ICC, Offline and Online PIN, No CVM, No Signature, ODA)

    · Tag 0x9F35 = 0x25 (Unattended, Offline with Online Capability)

    · Tag 0x9F40 = 0x7200F05001 (Goods, Services, Cashback, Payment, NumAlphaCommandFunc Keys, Print Cardholder, Display cardholder, Code table 1)

    · Tag 0xDFDF22 = 0x4323E0 (Manual language selection, CDA Mode 1, Cardholder Confirmation, EMV language Selection, Application Preferred Order,

    · Subsequent Bypass, PIN Bypass, Floor Limit Checking, Random Trans Selection, Velocity Checking)

    0x03 = Vendor Config ID oDynamo-ATM

    · Tag 0x9F33 = 0x60D8C8 (MSR, ICC, Offline and Online PIN, No CVM, No Signature, ODA)

    · Tag 0x9F35 = 0x14 (Unattended, Financial, Online Only)

    · Tag 0x9F40 = 0x8C80F05001 (Cash, Inquiry, Transfer, Cash Deposit, NumAlphaCommandFunc Keys, Print Cardholder, Display cardholder, Code table 1)

    · Tag 0xDFDF22 = 0x432380 (Manual language selection, CDA Mode 1, Cardholder Confirmation, EMV language Selection, Application Preferred Order, Subsequent Bypass, PIN Bypass, Floor Limit Checking)

    0x04 = Vendor Config ID oDynamo-OLEP

    · Tag 0x9F33 = 0x6058C8 (MSR, ICC, Offline Encrypted and Online PIN, No CVM, No Signature, ODA)

    · Tag 0x9F35 = 0x25 (Unattended, Offline with Online Capability)

    · Tag 0x9F40 = 0x7200F05001 (Goods, Services, Cashback, Payment,

    · NumAlphaCommandFunc Keys, Print Cardholder, Display cardholder, Code table 1)

    · Tag 0xDFDF22 = 0x4323E0 (Manual language selection, CDA Mode 1,

    · Cardholder Confirmation, EMV language Selection, Application Preferred Order Subsequent Bypass, PIN Bypass, Floor Limit Checking, Random Trans Selection,Velocity Checking)

    Bytes 19..22: MAC

    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.

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    11

    Command ID Data Object (Tag C2) = 0x11 Read EMV L2 Terminal Capabilities Configuration

    C4

    Calculated

    Byte 0: Database Selector 0x00 = EMV Contact L2

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    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:

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    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).

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    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:

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    01

    Message Type Data Object (Tag C0) = 0x01 Command

    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:

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x03 Notification

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x03 Notification

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x03 Notification

    Tag

    Len

    Value / Description

    Typ

    Req

    Default

    F9

    var

    Container for MAC structure and generic data

    Tag

    Len

    Value / Description

    Typ

    Req

    Default

    /DFDF25

    var

    Device Serial Number (IFD Serial Number)

    Tag

    Len

    Value / Description

    Typ

    Req

    Default

    FC

    var

    Decrypted Data Container

    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 EMV 4.3 Book 3. MagTek custom TLV data objects not defined in that specification are defined in the following rows of this table.

    Tag

    Len

    Value / Description

    Typ

    Req

    Default

    F9

    var

    Container for MAC structure and generic data

    Tag

    Len

    Value / Description

    Typ

    Req

    Default

    ///DFDF52

    01

    Card Type

    · 0x00 = Other

    · 0x01 = Magnetic Stripe ISO/ABA Financial (MSR)

    · 0x02 = Magnetic Stripe AAMVA (MSR)

    · 0x03 = Manual Entry

    · 0x04 = Unknown

    · 0x05 = Contact Chip Card (ICC)

    · 0x06 = Contactless Chip Card (PICC), EMV

    · 0x07 = MSR Financial and Contact Chip Card (ICC)

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x01 Command

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x03 Notification

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

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

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x03 Notification

    Tag

    Len

    Value(s) / Description

    C0

    01

    02

    Message Type Data Object (Tag C0) = 0x02 Response

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

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

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x03 Notification

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x03 Notification

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x03 Notification

    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.

    Tag

    Len

    Value(s) / Description

    C0

    01

    03

    Message Type Data Object (Tag C0) = 0x03 Notification

    Tag

    Len

    Value(s) / Description

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

    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>

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

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

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

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

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

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

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

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

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

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

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

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

    Table - EMV ARQC Type - Account Data Not In Whitelist

    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.

    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.

    Table - EMV ARQC DFDF59 Decrypted Contents

    Padding to force DFDF59 plus padding to be a multiple of 8 bytes

    Table - EMV ARQC Type Account Data in Whitelist

    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.

    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.

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

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

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

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

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

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

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

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

    · 0x08 = Contactless PICC, Magnetic Stripe Data (MSD)

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    11

    Command ID Data Object (Tag C2) = 0x11 Read EMV L2 Terminal Capabilities Configuration

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 = Success, the read completed

    0x95 = Failure, invalid Database Selector field 0x9A = Internal Error, Database Corruption 0x9C = Invalid Configuration Identifier

    C4

    15

    Byte 0: Configuration Identifier

    One byte field containing the Configuration Identifier parameter the host set using

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

    Bytes 1..21: Current Configuration SHA-1 value, a 20 byte SHA-1 hash of the configuration

    required in the devices device’s Implementation Conformance Statement (ICS).

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0E

    Command ID Data Object (Tag C2) = 0x12 Read EMV L2 Configuration Check Values

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    0E

    Command ID Data Object (Tag C2) = 0x12 EMV L2 Configuration Check Values

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 = Success

    C4

    14

    Check Values (CV)

    Bytes 0..3 Master CV, combines all individual CVs (captures any changes)

    Bytes 4..7 EMV Terminal Configuration CV

    · Read the corresponding configurations using Command 0x07::0x11 - Read EMV L2 Terminal Capabilities Configuration and Command 0x07::0x06 - EMV L2 Get Contact Terminal Configuration

    · Modify the corresponding configurations using Command 0x07::0x10 - Modify EMV L2 Terminal Capabilities Configuration and Command 0x07::0x05 - EMV L2 Modify Contact Terminal Configuration

    Bytes 8..11 EMV Application Configuration CV Includes all non-empty EMV Application slots

    · Read the corresponding configurations using Command 0x07::0x08 - EMV L2 Get Contact Application Configuration

    · Modify the corresponding configurations using Command 0x07::0x07 - EMV L2 Modify Contact Application Configuration

    Bytes 12..15 Device Configuration CV

    · Read the corresponding configurations using Command 0x03::0x72

    - 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

    Bytes 16..19 CAPK CV

    Includes all non-empty CAPK slots

    · Read the corresponding configurations using Command 0x07::0x0A - EMV L2 Get CA Public Key

    · Modify the corresponding configurations using Command 0x07::0x09 - EMV L2 Modify CA Public Key

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    02

    Command ID Data Object (Tag C2) = 0x13 EMV L2 Continue Action

    E0

    Calculated

    Data Field Data Object (Tag C4 or E0) = (optional - No tags mean proceed)

    Action <DF45> <1><value>

    · 0x00 = Proceed with transaction

    · 0x01 = Cancel transaction

    New Transaction Amount <9F02><06><value>

    This optional parameter changes the transaction amount. The value is in EMV format.

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    88

    Command ID Data Object (Tag C2) = 0x13 EMV L2 Continue Action

    C3

    01

    Result Code Data Object (Tag C3) =

    0x00 = OK / Done

    0x02 = Invalid Parameter 0x08 = Not in Continue state

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    02

    Command ID Data Object (Tag C2) = 0x14 EMV L2 Offline PIN CVM Result

    E0

    Calculated

    Data Field Data Object (Tag C4 or E0) =

    <DF45(operation result)> <1><value> DF45 indicates the operation result as: 0x00 = Operation successful

    0x01 = General failure

    0x02 = User canceled operation. 0x03 = Operation timed out 0x04 = CVM failed

    0x05 = PIN Bypass selected

    <DF53><8><Offline encrypted PIN Block>

    <DFDF41><8><EPP PIN Sequence Number>

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    88

    Command ID Data Object (Tag C2) = 0x14 EMV L2 Offline PIN CVM Result

    C3

    01

    Result Code Data Object (Tag C3) =

    0x00 = OK / Done

    0x02 = Invalid Parameter

    0x08 = No offline PIN CVM in progress

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    80

    Command ID Data Object (Tag C2) = 0x80 EMV L2 Transaction Status

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    80

    Command ID Data Object (Tag C2) = 0x80 EMV L2 Transaction Status

    C3

    01

    Result Code Data Object (Tag C3) = 0x00 OK / Done

    C4

    05

    Data Field Data Object (Tag C4 or E0) =

    Byte 0 indicates the current major state of the transaction:

    0x00 = No events since start of transaction 0x01 = Card Inserted

    0x02 = Card Error

    0x03 = Transaction Progress Change 0x04 = Waiting for User Response 0x05 = Timed Out

    0x06 = Transaction Terminated 0x07 = Host Canceled Transaction 0x08 = Card Removed

    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.

    Byte 2 indicates the progress within the major transaction state: 0x00 = No transaction in progress

    0x01 = Waiting for cardholder to insert card 0x02 = Powering up the card

    0x03 = Selecting the application

    0x04 = Waiting for user language selection

    0x05 = Waiting for user application selection

    0x06 = Initiating application

    0x07 = Reading application data

    0x08 = Offline data authentication 0x09 = Process restrictions

    0x0A = Cardholder verification 0x0B = Terminal risk management 0x0C = Terminal action analysis

    0x0D = Generating first application cryptogram 0x0E = Card action analysis

    0x0F = Online processing

    0x10 = Waiting online processing response 0x11 = Transaction complete

    0x12 = Transaction error 0x13 = Transaction approved 0x14 = Transaction declined

    0x15 = Transaction canceled by MSR swipe 0x16 = EMV error - Conditions Not Satisfied 0x17 = EMV error - Card Blocked

    0x18 = Application selection failed 0x19 = EMV error - Card Not Accepted 0x1A = Empty Candidate List

    0x1B = Application Blocked

    Bytes 3..4 are reserved

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    81

    Command ID Data Object (Tag C2) = 0x81 Display Message Request

    C4

    Calculated

    Data Field Data Object (Tag C4 or E0) =

    A string of data up to 1024 bytes containing message to be displayed on the host

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    82

    Command ID Data Object (Tag C2) = 0x82 EMV L2 User Selection Request

    C4

    Calculated

    Data Field Data Object (Tag C4 or E0) =

    Byte 0 Selection Type specifies what kind of selection request this is: 0x00 = Payment Brand Application Selection

    0x01 = Language Selection

    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.

    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.

    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:

    Select Application<NULL>

    <ASCII AID Value 1>|<Application Name 1><NULL>

    <ASCII AID Value 2>|<Application Name 2><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.

    <ASCII AID Value 1>|<Application Name 1>|<TLV>|<TLV>|..<NULL

    <ASCII AID Value 2>|<Application Name 2>|<TLV>|<TLV>|..<NULL

    e.g. A0000000000010|VISA|5F55025555|4203480110|870101

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    83

    Command ID Data Object (Tag C2) = 0x83 ARQC Message

    C4

    Calculated

    Data Field Data Object (Tag C4 or E0) =

    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.

    Bytes 2..n ARQC Message

    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.

    T

    R

    /DFDF0B

    03

    Message Data Information Byte 0 Data Type

    · 0x00 = Reserved

    · 0x01 = EMV Contact L2 Data

    Byte 1 Encryption

    · 0x00 = Data is encrypted

    · 0x00 = Data is clear Text

    Byte 2 - Reserved

    B

    R

    /DFDF54

    var

    MAC KSN

    B

    R

    /DFDF55

    01

    MAC Encryption Type

    · 0xxx xxxx = Fixed Key (Not used)

    · 1xxx xxxx = DUKPT Key

    · xx00 xxxx = TDES

    · xx01 xxxx = AES128

    · xx10 xxxx = AES 256

    · xxxx xx00 = Data Variant

    · xxxx xx01 = PIN Variant

    · xxxx xx10 = MAC Variant

    B

    R

    B

    R

    /FA

    var

    Container for generic data

    T

    R

    //70

    var

    Container for ARQC

    T

    R

    ///DFDF53

    01

    Fallback Indicator

    · 0x00 = No Fallback

    · 0x01 = Technical Fallback

    · 0x81 = MSR Fallback

    B

    R

    ///5F20

    var

    Cardholder Name

    AN S

    O

    ///5F30

    02

    Service Code

    B

    O

    ///DFDF4D

    var

    Masked Track 2 ICC Data

    If the payment method presented by the cardholder provides it

    AN

    O

    ///DFDF52

    01

    Card Type

    · 0x00 = Other

    · 0x01 = Magnetic Stripe ISO/ABA Financial (MSR)

    · 0x02 = Magnetic Stripe AAMVA (MSR)

    · 0x03 = Manual Entry

    · 0x04 = Unknown

    · 0x05 = Contact Chip Card (ICC)

    · 0x06 = Contactless Chip Card (PICC), EMV

    · 0x07 = MSR Financial and Contact Chip Card (ICC)

    · 0x08 = Contactless PICC, Magnetic Stripe Data (MSD)

    B

    R

    ///F8

    var

    Container for Encrypted Data

    T

    R

    ////DFDF59

    var

    Encrypted Data Primitive

    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.

    B

    R

    ////DFDF56

    var

    Encrypted Transaction Data KSN

    B

    R

    ////DFDF57

    01

    Encrypted Transaction Data Encryption Type

    · 1xxx xxxx = DUKPT Key

    · xx00 xxxx = TDES

    · xxxx xx00 = Data Variant

    · xxxx xx01 = PIN Variant

    B

    R

    ////DFDF58

    01

    Number of Padding Bytes

    Number of bytes added to DFDF59 value to force its length to a multiple of 8 bytes for TDES.

    B

    R

    T

    R

    /DF8120

    05

    Terminal Action Code - Default

    For a list of possible values, see EMV 4.3 Book 3 values for TLV object 95 Terminal Verification Results.

    B

    O

    /DF8121

    05

    Terminal Action Code - Denial

    For a list of possible values, see EMV 4.3 Book 3 values for TLV object 95 Terminal Verification Results.

    B

    O

    /DF8122

    05

    Terminal Action Code - Online

    For a list of possible values, see EMV 4.3 Book 3 values for TLV object 95 Terminal Verification Results.

    B

    O

    /F4

    var

    Container for encrypted MSR data

    See Data Object F4 - Magnetic Stripe Reader Card Data for details

    T

    O

    /F5

    var

    Container for encrypted PIN Data

    T

    O

    //99

    var

    Encrypted PIN Block Data

    B

    O

    //DFDF41

    var

    Encrypted PIN Block KSN

    B

    O

    //DFDF42

    var

    PIN Block Encryption Type

    · 0xxx xxxx = Fixed Key (Not used)

    · 1xxx xxxx = DUKPT Key

    · xx00 xxxx = TDES

    · xx01 xxxx = AES128

    · xx10 xxxx = AES 256

    · xxxx xx00 = Data Variant

    · xxxx xx01 = PIN Variant

    · xxxx xx10 = MAC Variant

    B

    O

    T

    R

    /DFDF0B

    03

    Message Data Information Byte 0 Data Type

    · 0x00 = Reserved

    · 0x01 = EMV Contact L2 Data

    Byte 1 Encryption

    · 0x00 = Data is encrypted

    · 0x00 = Data is clear Text

    Byte 2 - Reserved

    B

    R

    /DFDF54

    var

    MAC KSN

    B

    R

    /DFDF55

    01

    MAC Encryption Type

    · 0xxx xxxx = Fixed Key (Not used)

    · 1xxx xxxx = DUKPT Key

    · xx00 xxxx = TDES

    · xx01 xxxx = AES128

    · xx10 xxxx = AES 256

    · xxxx xx00 = Data Variant

    · xxxx xx01 = PIN Variant

    · xxxx xx10 = MAC Variant

    B

    R

    /DFDF25

    var

    Device Serial Number (IFD Serial Number)

    B

    R

    /FA

    var

    Container for generic data

    T

    R

    //70

    var

    Container for ARQC

    T

    R

    ///DFDF53

    01

    Fallback Indicator

    · 0x00 = No Fallback

    · 0x01 = Technical Fallback

    · 0x81 = MSR Fallback

    B

    R

    ///5F20

    var

    Cardholder Name

    AN S

    O

    ///5F30

    02

    Service Code

    B

    O

    ///DFDF4D

    var

    Masked Track 2 ICC Data

    If the payment method presented by the cardholder provides it

    AN

    O

    B

    R

    var

    var

    List of Data Objects configured by terminal setting DFDF02 that can reported in the transaction

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    84

    Command ID Data Object (Tag C2) = 0x84 EMV L2 Transaction Result

    C4

    Calculated

    Data Field Data Object (Tag C4 or E0) =

    Byte 0 Signature Required. This field indicates whether a cardholder signature is required to complete the transaction:

    0x00 = No signature required

    0x01 = Signature required. If a signature is required, the host should acquire the signature from the cardholder as part of the transaction data.

    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.

    Byte 3 Batch Data:

    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.

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    87

    Command ID Data Object (Tag C2) = 0x87 EMV L2 PIN Entry Show Prompt Request

    C4

    01

    Data Field Data Object (Tag C4 or E0) =

    Byte 0 Prompt ID specifies which prompt the device want the secure host to display: 0x01 = AMOUNT

    0x02 = AMOUNT OK?

    0x03 = APPROVED

    0x04 = CALL YOUR BANK

    0x05 = CANCEL OR ENTER

    0x06 = CARD ERROR

    0x07 = DECLINED

    0x08 = ENTER AMOUNT

    0x09 = ENTER PIN

    0x0A = INCORRECT PIN

    0x0B = INSERT CARD

    0x0C = NOT ACCEPTED

    0x0D = PIN OK

    0x0E = PLEASE WAIT

    0x0F = PROCESSING ERROR

    0x10 = REMOVE CARD

    0x11 = USE CHIP READER

    0x12 = USE MAG STRIPE

    0x13 = TRY AGAIN

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    88

    Command ID Data Object (Tag C2) = 0x88 PIN CVM Request Notification

    C4

    01

    Data Field Data Object (Tag C4 or E0) =

    Byte 0 PAN status (see Command 0x03::0x80 - Read PAN Whitelist / Account Data Whitelist)

    0x00 = The card does not match any rule in the PAN whitelist. No PAN is available.

    0x01 = The card matches one or more rules in the PAN whitelist. Full cleartext PAN for PIN block construction is available.

    0x02 = The card matches one or more rules in the PAN whitelist. Partial cleartext PAN for PIN block construction is available.

    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.

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    88

    Command ID Data Object (Tag C2) = 0x88 PIN CVM Request Notification

    C3

    01

    Result Code Data Object (Tag C3) =

    0x00 = OK / Done

    E0

    Calculated

    Data Field Data Object (Tag C4 or E0) =

    <DF45(operation result)> <1><value> DF45 indicates the operation result as: 0x00 = Operation successful

    0x01 = General failure

    0x02 = User canceled operation. 0x03 = Operation timed out 0x04 = CVM failed

    0x05 = PIN Bypass selected

    <DF53><len><Encrypted Online PIN block>

    <DFDF41><len><PIN Encryption KSN>

    <DFDF42><len><PIN Encryption type>

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    89

    Command ID Data Object (Tag C2) = 0x89 PIN CVM Request Notification

    C4

    02

    Data Field Data Object (Tag C4 or E0) = 2-byte language ID

    0x656E = English 0x6465 = German

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    8A

    Command ID Data Object (Tag C2) = 0x8A EMV L2 Transaction Status

    C4

    05

    Data Field Data Object (Tag C4 or E0) =

    Byte 0 indicates the current major state of the transaction:

    · 0x00 = No events since start of transaction

    · 0x01 = Card Inserted

    · 0x02 = Card Error

    · 0x03 = Transaction Progress Change

    · 0x04 = Waiting for User Response

    · 0x05 = Timed Out

    · 0x06 = Transaction Terminated

    · 0x07 = Host Canceled Transaction

    · 0x08 = Card Removed

    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.

    Byte 2 indicates the progress within the major transaction state:

    · 0x00 = No transaction in progress

    · 0x01 = Waiting for cardholder to insert card

    · 0x02 = Powering up the card

    · 0x03 = Selecting the application

    · 0x04 = Waiting for user language selection

    · 0x05 = Waiting for user application selection

    · 0x06 = Initiating application

    · 0x07 = Reading application data

    · 0x08 = Offline data authentication

    · 0x09 = Process restrictions

    · 0x0A = Cardholder verification

    · 0x0B = Terminal risk management

    · 0x0C = Terminal action analysis

    · 0x0D = Generating first application cryptogram

    · 0x0E = Card action analysis

    · 0x0F = Online processing

    · 0x10 = Waiting online processing response

    · 0x11 = Transaction complete

    · 0x12 = Transaction error

    · 0x13 = Transaction approved

    · 0x14 = Transaction declined

    · 0x15 = Transaction canceled by MSR swipe

    · 0x16 = EMV error - Conditions Not Satisfied

    · 0x17 = EMV error - Card Blocked

    · 0x18 = Application selection failed

    · 0x19 = EMV error - Card Not Accepted

    · 0x1A = Empty Candidate List

    · 0x1B = Application Blocked

    · 0x20 = Waiting for Continue Response

    · 0x21 = Waiting for Offline PIN

    Bytes 3..4 Reserved

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    8B

    Command ID Data Object (Tag C2) = 0x8B EMV L2 Offline PIN CVM Request

    C1

    01

    07

    Application ID Data Object (Tag C1) = 0x07 EMV L2 Contact Messages

    C2

    01

    8C

    Command ID Data Object (Tag C2) = 0x8C EMV L2 Continue Notification

    C4

    Calculated

    Data Field Data Object (Tag C4 or E0) = Notification Flag <DF45><1><value>

    · 0x00 = Transaction Continuing, no response required

    · 0x01 = Transaction Paused, waiting for Command 0x07::0x13 - EMV L2 Continue Action

    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,

    0xDF52, 0xDF53, 0xDF54, 0xDF55, 0xDF56, 0x9F4D, 0x9F6E. For example: DF4501015F24032410019F0206000000012345