Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
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.
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
01
C1
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.
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
C1
C1
C1
C1
C4
03
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
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.
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
*: 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
C1
C1
C1
C1
C1
C1
C1
C1
C1
If AMK (Acquirer Master Key) exists
C1
C1
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:
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
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
C0
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)
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.
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).
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
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
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
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
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
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
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
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
07
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
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>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.
Padding to force DFDF59 plus padding to be a multiple of 8 bytes
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.
· 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