UL Brand Test Tool - Automation Server Protocol

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 50

Transaction Security

UL Brand Test Tool


Automation Server Protocol Specification

Author UL
Version 1.43
Date June 2020
Status Final
Classification Confidential
Document information

Document Title UL Brand Test Tool, Automation Server Protocol Specification


Classification Confidential
Status Final
Distribution UL internal only

All rights reserved. It is not allowed to multiply, electronically save or publish (parts of) this document, in any
form or manner (electronically, mechanically, photocopy etc.) without written approval in advance from UL.

UL, the UL logo and the UL certification mark are trademarks of UL LLC © 2020
UL Brand Test Tool
Automation Server Protocol Specification

Change history

Version Date Changes


1.0 10-01-2014 Initial document
1.1 28-03-2014 Initial enumeration of required requested data items
1.2 18-04-2014 Modifications from customer feedback.
1.3 30-04-2014 Addition of track data + array of entry modes.
Addition of Select Profile message.
1.4 15-05-2014 Addition of description to select profile message to match
uniqueness constraint enforced by BTT.
1.4 20-05-2014 Addition of use cases section.
1.4 02-07-2014 Addition of Get Archive and Archive messages.
1.4 03-07-2014 Cleaned up table/figure references. Added Activate Probe
message.
1.4 15-07-2014 Added some additional Requested Data. Added gratuity to
Initiate Transaction message.
1.4 17-07-2014 Added test_plan field to List Test Cases request.
1.4 28-07-2014 Removed applicability from List Test Cases request.
1.4 03-09-2014 Added Shutdown message.
1.4 18-12-2014 Added more detailed receipt checks to RequestedData.
1.4 27-12-2014 Added Getting started section with example Python client.
1.4 18-02-2015 Added limit- and network-related checks to RequestedData.
1.4 04-03-2015 Added Configuration section and TCP/IP and JSON logging
explanation.
1.5 16-03-2015 Addition of Start and Stop CardSimulatorServer messages.
Added some additional Requested Data
1.5 18-06-2015 Added contact or contactless option to Stop
CardSimulatorServer message.
1.5 05-08-2015 Extended message related checks in Requested Data.
1.6 28-08-2015 Added some additional Requested Data
1.7 14-09-2015 Added some additional Requested Data, changed “Receipt
label” to “Receipt Label”.
1.7 20-10-2015 Updated Initiate Transaction with multiple PINs. Updated
Requested Data. Added command line argument for port
number.
1.8 28-10-2015 Added ‘Simulate magstripe data’ command to support UL
SmartStripe.
1.8 10-11-2015 Added test case summary to Test Case Finalization
message.
1.8 17-12-2015 Added ‘Receipt or not supported’, ‘Mobile CVM’ and
‘NoCVM’ to Requested Data. Updated Initiate Transaction
with multiple amounts.
1.8 06-01-2016 Added ‘Online or fallback’ to Requested Data. Reply with
Test Case Finalization instead of Transaction Finalization for
non-automatable test cases.

Status: Final 3/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

1.8 26-01-2016 Added ‘not XXXX’ and ‘cancel’ to pin field in Initiate
Transaction.
1.8 02-02-2016 Added some additional Requested Data.
1.8 09-02-2016 Added ‘Out of scope’ and ‘Approve Letter L2’ to Requested
Data.
1.8 03-05-2016 Added ‘Issuer Scripts’ to Requested Data.
1.9 17-05-2016 Added ‘amount_range’ to Initiate Transaction Message.
Added amount pattern to ‘amount’ in Initiate Transaction
Message. Added ‘Time out’, ‘Message:
Incorrect PIN twice’, ‘Issuer Scripts successful’, ‘Message:
amount confirmation 2’, ‘Message: Second tap’, ‘PIN2’,
‘PIN3’ and some more items to Requested Data.
1.9 30-05-2016 Added Tool Info command and modified Test Case
Finalization command.
1.10 13-06-2016 Added optional ‘verbose’ to Initiate Test Case request and
‘description’, ‘guidance’ and ‘validations’ to Initiate
Transaction response. Added ‘cashback’ to
transaction_type. Added optional ‘verdicts’ to List Test
Cases request and ‘verdict’ to List of Test Cases response
1.11 04-07-2016 Updated Test Case Finalization example to reflect changes
on distinction between user, cardlog and host validations.
1.11 13-07-2016 Added “Tap again” to Requested Data. Added ‘none’ as
data_entry option.
1.11 23-08-2016 Added ‘cash’ to transaction_type. Added ‘= Purchase
Amount’ and ‘lowest/highest value above/below’
specifications to amount_range. Added ‘Power down’ and
‘Issuer Authentication’ to Requested data.
1.11 05-10-2016 Changed delimiter for multiple amounts in Initiate transaction
message from comma to semicolon.
1.12 27-10-2016 Added ‘reference_pin’ to Initiate transaction message and
added ‘bypass’ as possible value in the ‘pin’ field.
1.13 08-11-2016 Added Start_CardSimulation and Stop CardSimulation
1.13 09-11-2016 Added Export Current Project, Import Project and List
Projects
1.13 11-11-2016 Added Get Last CardLog
1.14 25-11-2016 Added extended Simulate Magstripe Data payload
1.15 05-12-2016 Added Get Last Card Simulation Reports
1.16 16-12-2016 Added Stop HostSimulation
1.17 03-02-2017 Added some additional Requested Data (“French OR not
supported”, “Magstripe Read”)
1.18 20-03-2017 Added some additional Requested Data (“Tip dialog”)
1.19 11-04-2017 Added some additional Requested Data (“Message Not
accepted or swipe”).
Added “automation_guidance” element to Initiate
Transaction message.

Status: Final 4/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

1.20 23-08-2017 Added ‘Mute Probe’ and ‘Unmute Probe’ commands. Added
Requested Data ‘Dynamic Limit Sets’, ‘Message:
contactless not permitted’ and ‘Display label=<STRING1>
and <STRING2>’. Removed Requested Data ‘Out of scope’.
1.21 11-09-2017 Added Requested Data ‘Message: Final or no amount’ and
‘Selected application=<STRING>’.
1.22 16-11-2017 Added Requested Data ‘Signature or noCVM’, ‘Message:
Insert swipe or try other card’ and ‘Test case specific
message’. Added inclusion of TPP files in Import Project and
Export Current Project message flow.
1.23 08-12-2017 Added Requested Data ‘Message: Insert or other card’.
1.24 02-01-2018 Added Requested Data ‘Message: Odometer’, ‘Message: ID
Number’, ‘Message: Vehicle Number’.
1.25 31-01-2018 Added Requested Data ‘Chip Inserted’.
1.26 09-03-2018 Added Requested Data ‘Online Referred’
1.27 09-03-2018 Added full receipt validation Receipt AID=<STRING>
1.28 22-03-2018 Added Requested Data ‘PIN and Signature’ for terminals
which support combination of PIN and Signature as CVM.
1.29 05-04-2018 Added Requested Data ‘Receipt AID=<STRING> or
<STRING>’
1.30 24-04-2018 Added Requested Data ‘Message: Display brand logo in idle
mode’
1.31 02-07-2018 Added clarification on unspecified amounts for Initiate
Transaction fields ‘amount’ and ‘amount_integer’.
1.32 27-09-2018 Explicitly state all requested data in Table 16, no longer
using <STRING> placeholders
1.33 23-10-2018 Add amount_range ‘Amount from previous transaction’
1.34 01-11-2018 Added Requested Data ‘Approved Purchase Amount’ and
‘Message: Gratuity’
1.35 12-11-2018 Added clarification on true or false requests
1.36 10-12-2018 Added a transaction type ‘balance_inquiry’ in the Initiate
Transaction message
1.37 17-12-2018 Added specification for receipt information as part of
transaction finalization
1.38 12-02-2019 Added transaction type ‘cancellation’ in the Initiate
Transaction message. Added Requested Data ‘Receipt
AID=A000000333010108’ and ‘Receipt
AID=A000000333010101’
1.39 27-02-2019 Added transaction type ‘advice’, ‘pre-authorization
completion advice’, ‘pre-authorization completion request’,
and ‘pre-authorization cancellation’
Added section 3.5.2 containing the possible values in the
automation guidance field in the initialize transaction
message
1.40 29-05-2019 Added section 2.3 describing connection handling

Status: Final 5/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

1.41 16-03-2020 Added Requested Data ‘Language choice: English’ and


‘Language choice: French’.
1.42 17-04-2020 Added automation guidance value ‘technical fallback’.
1.43 24-06-2020 Added automation guidance values ‘exception file must
contain specific PAN’ and ‘force transaction online’.

Status: Final 6/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Table of Contents
1 INTRODUCTION .................................................................................................................... 9
1.1 Scope ..................................................................................................................................... 9
1.2 Intended audience .................................................................................................................. 9
1.3 Document structure ................................................................................................................ 9
1.4 Updates .................................................................................................................................. 9
2 OVERVIEW .......................................................................................................................... 10
2.1 Architecture .......................................................................................................................... 10
2.2 Basic message description and details ................................................................................ 11
2.3 Connection handling ............................................................................................................. 11
2.4 Configuration ........................................................................................................................ 12
2.4.1 Command line arguments ..................................................................................... 12
2.5 Getting started ...................................................................................................................... 12
2.6 Typical use cases ................................................................................................................. 15
2.6.1 Complete test run .................................................................................................. 15
2.6.2 Follow up or debug testing .................................................................................... 16
3 MESSAGES ......................................................................................................................... 17
3.1 Select Profile ........................................................................................................................ 19
3.2 List Test Cases ..................................................................................................................... 19
3.3 List of Test Cases ................................................................................................................. 20
3.4 Initiate Test Case .................................................................................................................. 22
3.5 Initiate Transaction ............................................................................................................... 23
3.5.1 Amount Ranges ..................................................................................................... 26
3.5.2 Automation guidance ............................................................................................. 27
3.6 Transaction Finalization ....................................................................................................... 28
3.7 Test Case Finalization .......................................................................................................... 30
3.8 Terminate Testing................................................................................................................. 31
3.9 Get Archive ........................................................................................................................... 31
3.10 Archive .................................................................................................................................. 32
3.11 Start CardSimulatorServer ................................................................................................... 32
3.12 Stop CardSimulatorServer ................................................................................................... 32
3.13 Activate Probe ...................................................................................................................... 33
3.14 Mute Probe ........................................................................................................................... 33

Status: Final 7/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

3.15 Unmute Probe ...................................................................................................................... 33


3.16 Simulate Magstripe Data ...................................................................................................... 34
3.17 Start CardSimulation ............................................................................................................ 34
3.18 Stop CardSimulation............................................................................................................. 35
3.19 Export Current Project .......................................................................................................... 35
3.20 Import Project ....................................................................................................................... 36
3.21 List Projects .......................................................................................................................... 36
3.22 List of Projects ...................................................................................................................... 36
3.23 Get Last CardLog ................................................................................................................. 37
3.24 CardLog ................................................................................................................................ 37
3.25 Get Last Card Simulation Reports ........................................................................................ 38
3.26 Stop HostSimulation ............................................................................................................. 38
3.27 Tool Info ................................................................................................................................ 38
3.28 ACK ...................................................................................................................................... 39
3.29 NACK .................................................................................................................................... 39
3.30 Shutdown .............................................................................................................................. 39
4 REQUESTED DATA ............................................................................................................ 40
4.1 Automation of user inputs ..................................................................................................... 40
4.2 True or false requests .......................................................................................................... 40
4.3 String requests ..................................................................................................................... 47
REFERENCES .................................................................................................................................. 48
A.1 LIST OF FIGURES ............................................................................................................... 49
A.2 LIST OF TABLES ................................................................................................................ 50

Status: Final 8/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

1 Introduction
1.1 Scope
The purpose of this document is to describe the control protocol specification between the Test
Automation Environment (supported by the UL Integrated Test Automation Module) and the UL
Brand Test Tool.

1.2 Intended audience


This document is intended primarily for developers that will need to interact / control the UL Brand
Test Tool to execute the brand certification test cases in an unattended fashion. Note that a valid
license of the UL Integrated Test Automation Module is required.

1.3 Document structure


This document is structured as follows:

• Chapter 1: Introduction
This chapter elaborates on the document purpose and scope as well as the supporting
information used in the rest of the document.

• Chapter 2: Overview
This chapter outlines the basic architecture principles and the basic message descriptions
of the control protocol.

• Chapter 3: Messages
This chapter explains all the messages that can be exchanged between the Test
Automation Environment and the UL Brand Test Tool. It also provides examples of each
message for ease of use.

References to the underlying standards are provided at the end of the document

1.4 Updates
This document will be periodically updated to enhance the functionality as required. Interoperability
between Test Automation Environments is guaranteed by the correct usage and validation of the
specification version number.

Status: Final 9/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

2 Overview
2.1 Architecture
The UL Brand Test Tool in combination with the optional UL Integrated Test Automation Module
can be run in such a way that it can be controlled by an external program. This external program,
hereafter referred to as the Test Automation Environment, communicates with the UL Brand Test
tool using messages defined in this document over a configurable TCP socket.

It is necessary that the Test Automation Environment is also capable of controlling the Point-of-Sale
under test. This functionality can be assigned to a separate entity, the POS Controller, which
should be able to:

• Insert, swipe or tap cards;

• Enter amounts, select transaction types and type PINs (in general, key entry);

• Read and provide minimal interpretation of text from the screen;

• Capture and analyze the text of the receipt.

The POS Controller takes over the usual role of a human user in this model of Brand Testing.

The overview of automated brand testing is illustrated in Figure 1.

Figure 1 BTT automation

The Test Automation Environment sets up a connection with the UL Brand Test Tool and, using the
control protocol, selects a test case. The UL Brand Test Tool then simulates a card through the
SmartLink Box or SmartWave Box and configures its host simulator to respond appropriately.
Instructions are sent back to the Test Automation Environment for performing the transaction along
with requests for specific data. The Test Automation Environment sends the appropriate messages

Status: Final 10/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

to the POS controller to initiate a transaction according to the instructions (swiping, tapping,
inserting for a specific transaction amount etc.). At the end of the transaction, the Test Automation
Environment sends the requested data back to the UL Brand Test Tool, signaling the end of the
test. The UL Brand Test Tool finalizes the test and responds with a verdict for the test or with
additional instructions for subsequent steps of the test case. The Test Automation Environment
may repeat this procedure at its leisure.

2.2 Basic message description and details


Messages sent between the Test Automation Environment and the UL Brand Test Tool are
preceded by a four byte length header followed by a JSON message. The JSON message is the
primary Protocol Data Unit for communications. Each message contains a message type field and
a payload field, where the contents of the payload depend on the message being communicated.

At the TCP level, messages are preceded by a four byte, big endian length header followed by the
control message itself. The length header indicates the exact length of the message excluding the
four length bytes. The message itself is encoded in JSON as described in the normative reference
[1].

Length Indicator JSON Message


Figure 2 TCP view of control message

The JSON message portion of request and response messages must always be UTF-8 encoded.
The Length Indicator specifies the number of octets used to encode the JSON message.

Each JSON message (both requests and responses) contain a “message_type” field, a
“version” (which will always be set to 1.0 in this version of the message specification) and a
“payload” field. The message type is always a string field, and the UL Brand Test Tool will ignore
case when receiving a message, but will respond with a specific case (see section 3). The structure
of the payload field is determined by the message type as described in the following section.

{
“message_type” : “Initiate Transaction”,
“version” : “1.0”,
“payload” : …
}
Figure 3 High level control message structure

2.3 Connection handling


UL Brand Test Tool accepts concurrent connections from different Test Automation Environments,
but will allow only one connection to use the Automation Server at a time. If the Automation Server
is processing a command, or waiting for a command from a client TAE, messages from other
clients will be answered with a NACK (Automation server in use).

Status: Final 11/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

2.4 Configuration
The BTT Automation server has some configurable options that can be used to customize the
behavior for certain environments. To do so, go to Configuration and then select BTT
Automation.

On the Server Settings page you find two tabs. On the ‘TCP/IP Settings’ tab you can set the
TCP/IP port and timeouts. On the ‘Execution options’ tab you can configure the UL Brand Test Tool
to always start in Automation mode, which is useful in a fully automated testing environment.
Furthermore, you can configure probe activation and the timeouts for test case start up and
finalization.

On the Logging Settings page you can enable or disable TCP/IP and JSON logging and configure
basic logging settings such as the addition of timestamps.

Figure 4 BTT Automation - Server Settings

2.4.1 Command line arguments


The BTT Automation server supports one command line argument to specify the automation port
number. Specifying the port in a command line argument will override the port that is configured in
the BTT Automation configuration. The port should be specified as shown in Figure 1.

-automationPort=4500
Figure 5 Command line arguments

2.5 Getting started


To start the Automation Mode in the UL Brand Test Tool go to Actions in the menu and then select
Start Automation Server. Please note that this option is only available when the UL Integrated

Status: Final 12/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Test Automation Module is installed. When the Automation server is active, the UL Brand Test Tool
will show an Automation Reporting window, containing a ‘JSON Logger’ and a ‘TCP-IP Logger’ tab.

Figure 6 UL Brand Test Tool with active Automation Server

The JSON Logger page displays all valid JSON messages that are sent and received by the
Automation Server. It provides a simple way of inspecting the communication between BTT and
TAE for debugging.

The TCP-IP Logger page provides more detailed communication info. It logs the opening and
closing of TCP/IP sockets and all messages that are sent and received. For each message, three
logging lines are displayed:

• The MLI (Message Length Indicator) that was read from the message, indicating how many
bytes should be send or received before this message is complete.

• A message telling that the complete message is sent or received.

• The message that was sent or received.

Note: These logging tabs are meant for debugging purpose, and tend to get very large if they are
left open. In a production environment, this logging should be disabled or restarted from time to
time, because otherwise it will eventually lead to out-of-memory problems.

Status: Final 13/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

The first step in a typical test run is selecting the correct profile by sending a “Select Profile”
message from the Test Automation Environment. A very simple Python TAE that sends the “Select
Profile” message and awaits the response is shown in Figure 7.

#!/usr/bin/env python

import socket
import struct
import time

TCP_IP = ‘127.0.0.1’
TCP_PORT = 4500
BUFFER_SIZE = 1024
MESSAGE = “{\”message_type\” : \”Select Profile\”, \”version\” :
\”1.0\”, \”payload\” : { \”profile\” : \”Visa\”, \”description\” :
\”Example project\” } }”

# Create message
MLI = struct.pack(“!I”, len(MESSAGE))
MLI_MESSAGE = MLI + MESSAGE

# Send message
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((TCP_IP, TCP_PORT))
s.send(MLI_MESSAGE)
print “Sent data: ‘”, MESSAGE, “’”

# Receive MLI from response (you might want to add some timeout handling
as well
respMLI = s.recv(BUFFER_SIZE)
respMLI = struct.unpack(“!I”, respMLI)[0]

# Receive actual message


total_msg = []
response = ‘’
while 1:
if len(response) >= respMLI:
break
try:
data = s.recv(BUFFER_SIZE)
if data:
total_msg.append(data)
except:
pass
response = ‘’.join(total_msg)
s.close()

Status: Final 14/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

print “Received data: ‘”, response, “’”


Figure 7 Simple Python Test Automation Environment sending a “Select Profile” message

2.6 Typical use cases


2.6.1 Complete test run
In abstract, the usage of the UL Brand Test Tool in an automated fashion can be vague. A typical
use case of the UL Brand Test Tool is the execution of a test session for a particular device (POS,
ATM or other). UL The Brand Test Tool must be configured with the specific details of the device.
The user would then select the individual test cases to be performed from the UL Brand Test Tool’s
test case navigation panels and execute them. The instructions on the screen would be followed
and any required inputs would be given by the user.

The process is similar in the automated environment. The overall flow is diagrammed in Figure 8.
After starting the Automation Server in the UL Brand Test Tool, the process is as follows:
1. The Test Automation Environment sends the “Select Profile” message to the UL Brand Test
Tool.
2. If the selected project exists, the UL Brand Test Tool selects the project and responds with
an “ACK” message.
3. The Test Automation Environment sends the “List Test Cases” message, specifying
interface and brand to be tested or selects all.
4. The UL Brand Test Tool responds with a “List of Test Cases” to be performed.
5. The Test Automation Environment selects a test case from the received list and issues an
“Initiate Test Case” message.
6. The UL Brand Test Tool activates the test case and probe and retrieves appropriate
instructions. An “Initiate Transaction” message is sent in response.
7. The Test Automation Environment reads the instructions in the message and initiates the
correct type of transaction (for example a sale or refund) on the terminal.
8. An EMV or Contactless EMV transaction takes place between the terminal and the UL
SmartLink Box or UL SmartWave Box.
9. At the completion of the transaction, the Test Automation Environment sends the “Finalize
Transaction” message to the UL Brand Test Tool including any additional requested data.
10. If there are additional transactions to be performed (a refund, adjustment, completion or
other) the UL Brand Test Tool returns to step 6. Otherwise, the UL Brand Test Tool returns
the verdict in a “Finalize Test Case” message.
11. If there are additional tests to be performed in the test session, the Test Automation
Environment should return to step 5.

Status: Final 15/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Figure 8 Example use case: Running all tests in a specific profile

2.6.2 Follow up or debug testing


It is not necessary to list the test cases every time. If all tests in a test run were completed and
some tests failed, a second test run may be initiated after fixing the implementation of the device. In
this second test run, it may be desirable to test if the issue has been fixed before initiating a
complete test run. The “Initiate Test Case” messages for the failing tests may be initiated
immediately after activation of the Automation Server.

Status: Final 16/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

3 Messages
The following Message Types are supported:

1. Select Profile TAE A request from the Test Automation Environment to the UL
Brand Test Tool to select a particular profile in the UL
Brand Test Tool.
2. List Test Cases TAE A request from the Test Automation Environment to the UL
Brand Test Tool to receive a list of the test cases needed to
be run.
3. List of Test Cases BTT A response from the UL Brand Test Tool which lists the test
cases needed to be run by the Test Automation
Environment.
4. Initiate Test Case TAE A request from the Test Automation Environment to the UL
Brand Test Tool to start a particular test case.
5. Initiate Transaction BTT A message from the UL Brand Test Tool containing
instructions to perform for the current test case.
6. Transaction Finalization TAE A message from the Test Automation Environment to the
UL Brand Test Tool indicating that the transaction has
finished and passing requested data back.
7. Test Case Finalization BTT A message from the UL Brand Test Tool to the Test
Automation Environment indicating that a particular test
case has been completed and the verdict for that test case.
8. Terminate Testing TAE A message from the Test Automation Environment to the
UL Brand Test Tool to terminate execution of a particular
test case.
9. Get Archive TAE A message from the Test Automation Environment to the
UL Brand Test Tool requesting an archive of the latest test
reports for the current profile.
10. Archive BTT A message from the UL Brand Test Tool to the Test
Automation Environment delivering the archive of test
reports for the current profile.
11. Start TAE A message from the Test Automation Environment to start
CardSimulatorServer the Card Simulator Server.
12. Stop TAE A message from the Test Automation Environment to stop
CardSimulatorServer the Card Simulator Server.
13. Activate Probe TAE A message sent from the Test Automation Environment to
activate the probe (contact or contactless) and begin card
simulation.
14. Mute Probe TAE A message sent from the Test Automation Environment to
mute the contactless probe.
15. Unmute Probe TAE A message sent from the Test Automation Environment to
stop muting the contactless probe.
16. Simulate Magstripe Data TAE A message from the Test Automation Environment to
simulate magstripe data.

Status: Final 17/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

17. Start CardSimulation TAE A message from the Test Automation Environment to start
simulating a particular card image.
18. Stop CardSimulation TAE A message from the Test Automation Environment to stop
any running card simulation.
19. Export Current Project TAE A message from the Test Automation Environment
instructing UL Brand Test Tool to create a *.tpp archive for
the currently active project.
20. Import Project TAE A message from the Test Automation Environment
instructing UL Brand Test Tool to import a *.tpp archive as
a new project.
21. List Projects TAE A message from the Test Automation Environment
requesting a list of all projects currently being managed by
UL Brand Test Tool.
22. List of Projects BTT A message sent by the UL Brand Test Tool in response to
a List Project request containing a list of all projects
currently be managed by UL Brand Test Tool.
23. Get Last CardLog TAE A message sent by the Test Automation Environment to
request the most recent card simulation log generated by
the Card Simulation Server.
24. CardLog BTT A message sent by the Brand Test Tool in response to a
Get Last CardLog request containing the contents of the
most recent card simulation log generated by the Card
Simulation Server.
25. Get Last Card TAE A message sent by the Test Automation Environment to
Simulation Report request the results of the most recent completed simulation
managed by the Card Simulation Server.
26. Stop HostSimulation TAE A message sent by the Test Automation Environment to
terminate any running Host Simulation service.
27. Tool Info BTT A message from the Test Automation Environment to
TAE request information about the running UL Brand Test Tool,
on which the UL Brand Test Tool will reply with a Tool Info
message containing the tool info.
28. ACK BTT A message used by the UL Brand Test Tool to
acknowledge a command without sending response data.
29. NACK BTT A message sent by either entity indicating that the last
TAE received message was not understood or could not be
processed.
30. Shutdown TAE A message sent by the Test Automation Environment to
initiate a shutdown of the UL Brand Test Tool.
Table 1 Message Type Descriptions

The UL Brand Test Tool will always respond with the indicated case, but will ignore the case sent
by the automation environment.

Status: Final 18/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

3.1 Select Profile


Select Profile is a request sent by the Test Automation Environment to activate a particular project
in the UL Brand Test Tool. During setup of the UL Brand Test Tool, multiple projects can be created
featuring different terminal features, brand and test plan support or connection methods. This
message is used to activate that project so that the UL Brand Test Tool understands which tests
are applicable for the particular terminal being tested.

The message type parameter of the message must be the case sensitive literal “Select Profile”. The
payload has a single field described in the table below.

Field Allowed Values Description


profile … The case sensitive name of the project to be selected.
description … The case sensitive description of the project to be selected.
Table 2 Fields of Select Profile message payload

An example message to select a project called ‘Test’ would be as follows:


{
“message_type” : “Select Profile”,
“version” : “1.0”,
“payload” : {
“profile” : “Test”,
“description” : “Test and demo project”
}
}
Figure 9 Example Select Profile message

Opening the UL Brand Test Tool window and manually selecting a project will have the same
effect.

3.2 List Test Cases


List Test Cases is a request sent by the Test Automation Environment to receive a list of test cases
that can be executed by the UL Brand Test Tool. The Test Automation Environment may send
additional control data in the payload part of the message to control the content of the list to a
degree.

The message type parameter of the message must be the case sensitive literal “List Test Cases”.
The payload has a number of fields each of which may only contain one of a number of options.
These fields are described in the table below. All of the test cases that are in the scope of the
current profile and match the requested options will be returned.

It is recommended that the entire list of test cases is not retrieved all at once. It is useful to request
the entire list once, to get the list of test plans, but then individual test runs should focus on specific
test plans. In some cases, there are test plans such as the Mastercard Subset_8_2014 that have
groupings of test cases. The list of test cases will indicate a test plan that includes the grouping
such as “Subset_8_2014/PayPass_MChip_MC”. For the purposes of List Test Cases, that test plan
would merely be “Subset_8_2014” and all groupings would be returned.

Status: Final 19/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Field Allowed Values Description


brand all Instructs the UL Brand Test Tool to limit the list of test
American Express cases to include test cases only for the indicated brand.
Diners
Discover
Interac
JCB
Mastercard
UnionPay International
Visa

interface all Instructs the UL Brand Test Tool to limit the list of test
contact cases to include test cases only for the indicated interface.
contactless
test_plan all The test plan to get test cases for. The values of the test
ADVT_6__0__1 plans supported by BTT can be discovered by first sending
M_TIP_Subset_2013B this request with this option set to all.

verdicts JSON boolean Indicates whether the “verdict” element should be included
(optional) in the “List of Test Cases” response. Omitting this element
is the same as sending it with the value false.
Table 3 Fields of List Test Cases message payload

An example message which requests the UL Brand Test Tool to return only the test cases for the
contactless interface for all brands and test plans is listed below. The test plans that are applicable
for automation are determined by the UL Brand Test Tool.
{
“message_type” : “List Test Cases”,
“version” : “1.0”,
“payload” : {
“brand” : “all”,
“interface” : “contactless”,
“test_plan” : “all”
}
}
Figure 10 Example List Test Cases message

3.3 List of Test Cases


The List of Test Cases is a response from the UL Brand Test Tool to a List Test Cases request. As
its name describes, it returns a list of test cases to the Test Automation Environment subject to the
request criteria.

The payload of the List of Test Cases message is an array of test case objects. Each test case
object contains a number of string fields defining the test case.

Status: Final 20/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Field Allowed Values Description


test_plan string Indicates the name of the test plan that the test
case belongs to.
brand string Indicates the scheme that owns the test plan,
this value will coincide with one of the allowable
brand values of the “List Test Cases” message.
interface string Indicates the intended test interface of the test
case.
version string Indicates the version of the test plan being
executed.
test_case string Indicates the name of the test case.
verdict string A string indicating the current verdict of the test
case as maintained by UL Brand Test Tool.
This element is only present if the “List Test
Cases” request contained the “verdicts” element
with a value of true.
Table 4 Fields of each element in the List of Test Cases message payload

The Test Case JSON object is the exact payload that must be used in an “Initiate Test Case”
message to initiate that particular test case.

An example of the “List of Test Cases” message follows:


{
“message_type” : “List of Test Cases”,
“version” : “1.0”,
“payload” : [
{
“test_plan” : “ADVT qVSDC”,
“brand” : “Visa”,
“interface” : “contactless”,
“version” : “2.0”,
“test_case” : “qVSDC01”
},

{
“test_plan” : “ExpressPay”,
“brand” : “American Express”,
“interface” : “contactless”,
“version” : “3.0”,
“test_case” : “EMV Mode 13 1 1”
},

]
}
Figure 11 Example List of Test Cases message

Status: Final 21/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

3.4 Initiate Test Case


The “Initiate Test Case” message instructs the UL Brand Test Tool to launch a particular test case.
It is the automated equivalent of double clicking a particular test case in the GUI of the tool itself
when running in manual mode.

The payload of the Initiate Test Case must be the precise content (ignoring whitespace) of a test
case returned in a “List of Test Cases” message, with an optional boolean “verbose” field. It is
not necessary that a List of Test Cases was returned to the Test Automation Environment in a
particular session as long as the content of the payload is correctly formatted.

Field Allowed Values Description


test_plan JSON string Indicates the name of the test plan that the test
case belongs to.
brand JSON string Indicates the scheme which owns the test plan,
this value will coincide with one of the allowable
brand values of the “List Test Cases” message.
interface JSON string Indicates the intended test interface of the test
case.
version JSON string Indicates the version of the test plan being
executed.
test_case JSON string Indicates the name of the test case.
verbose JSON boolean Indicates whether the “description”, “guidance”
(optional) and “validations” elements should be included in
the “Initiate Transaction” responses for this test
case. This field is optional. Omitting this element
is the same as sending it with the value false.
Table 5 Fields of each element in the List of Test Cases message payload

For clarity, the payload format is defined as follows:


{
“message_type” : “Initiate Test Case”,
“version” : “1.0”,
“payload” : {
“test_plan” : “ADVT qVSDC”,
“brand” : “Visa”,
“interface” : “contactless”,
“version” : “2.0”,
“test_case” : “qVSDC01”,
“verbose” : false
}
}
Figure 12 Example Initiate Test Case message

Status: Final 22/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

3.5 Initiate Transaction


The “Initiate Transaction” message is sent by the UL Brand Test Tool to the Test Automation
Environment in order to start a transaction. Before sending the message, the particular test case
will have been executed in the UL Brand Test Tool, launching any necessary internal processes.
The Test Automation Environment should then initiate a transaction defined by the fields of the
payload object. The fields have the below definitions.

Field Allowed Values Description


transaction_type sale Indicates the type of transaction to be
refund performed by the terminal.
reversal
advice
cancellation
cash
cashback
pre-authorization
pre-authorization
completion advice
pre-authorization
completion request
pre-authorization
cancellation
completion
balance_inquiry
data_entry Array of: Indicates the method of input for the card data
keyed and the order of interfaces to attempt to initiate
swipe a transaction over. The final interface should be
insert successful. ‘none’ means no transaction on
tap terminal required.
none
card Contact Probe The card indicates the card to be used for this
Contactless Probe particular test case. It is either one of the
… probes (contact or contactless) or a named
card for one of the test plans. If the field is ‘null’,
no card image is attached to this transaction.
pan … A string field that will only be populated when
the “data_entry” field has a value of “key”.
Empty if the transaction is not keyed.
track1 … A string field that will contain the track 1 data
(without LRC) to inject into the terminal for a
swipe/fallback transaction.
track2 … A string field that will contain the track 2 data
(without LRC) to inject into the terminal for a
swipe/fallback transaction.

Status: Final 23/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Field Allowed Values Description


amount … A string field containing a semicolon separated
list that indicates the amounts (usually only
one) to be used for the transaction with the
decimal point indicated and full number of digits
after the decimal point included. This field
represents the entire amount (for instance,
including cashback amounts and tips). If
multiple amounts are presented, the TAE may
decide which amount to use. If no amount is
defined, the TAE can choose which amount to
use. Note that if an amount_range is specified,
the TAE should use an amount within the
specified range.
Instead of a specific amount, UL Brand Test
Tool can also specify an amount pattern, e.g.
*65*, which means ‘any amount with ‘65’ in it.
amount_integer … An integer field that indicates the amount to be
used in the lowest denomination of the
currency.
If the amount_integer is 0 and the amount is
null, the TAE can use any amount that respects
the amount_range (if specified).
amount_range See section 3.5.1.1 See section 3.5.1
amount_other … A string field that indicates the cash back
amount to be used for the transaction with the
decimal point indicated.
amount_other_integer … An integer field that indicates the cash back
amount to be used in the lowest denomination
of the currency.
gratuity … A string field indicating the gratuity amount to
be used for the transaction with the decimal
point indicated.
gratuity_integer … An integer field that indicates the gratuity
amount to be used in the lowest denomination
of the currency.
currency_code … A string field containing the particular currency
code to be used for the transaction.
application_index … An integer field that indicates the index of the
application to select during an EMV transaction
with multiple applications.
application_label … A string field which indicates the application
label of the field to select during an EMV
transaction with multiple applications.
Note that letter case can be different from the
card application.

Status: Final 24/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Field Allowed Values Description


preferred_name … A string field which, when not empty, indicates
the preferred name of the application to select.
pin … A comma separated list of 4-12 digit strings
indicating the PINs (usually only one) to use if
prompted by the device under test.
• If PIN is ‘not XXXX’, use any PIN but this
one.
• If PIN is ‘cancel’, press cancel button on
terminal.
• If PIN is ‘bypass’, attempt to bypass.
reference_pin string The reference PIN for this test plan. If no test
case specific PIN is specified, but the terminal
is still asking for a PIN, this reference PIN can
be used.
send_receipt true Indicates whether the receipt is required to be
false sent to the UL Brand Test Tool as test evidence
or not.
requested_data See section 4 An array containing strings for specific input
data that should be sent in the transaction
finalization message.
automation_guidance array of strings An array containing strings of optional
additional guidance information (like special
conditions) for an automation environment that
may need to be considered to be able to
execute the transaction.
Such a special condition can typically not be
determined from the other automation
instruction information, and will be unique for
that test case.
All instructions currently in use in the
automation_guidance field are listed in section
3.5.2.
description string A string containing the test purpose and other
information about this test case. This element is
only present if the “Initiate Transaction” request
contained the “verbose” element with a value of
true.
guidance array of strings An ordered array of strings describing the steps
the user must follow in order to execute this
test case. This element is only present if the
“Initiate Transaction” request contained the
“verbose” element with a value of true.

Status: Final 25/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Field Allowed Values Description


validations JSON object - keys A map containing information about validations
and values are strings the user will be expected to complete. For each
element, the value is the text describing the
validation and the key is a globally unique
identifier associated with this particular
validation. This element is only present if the
“Initiate Transaction” request contained the
“verbose” element with a value of true.
Table 6 Fields of Initiate Transaction message payload

The fields application_label or preferred_name will be filled if the test case instructions
define them. If the test case has no preference, both fields can be null. An example follows:
{
“message_type” : “Initiate Transaction”,
“version” : “1.0”,
“payload” : {
“transaction_type” : “sale”,
“data_entry” : [“insert”],
“card” : “Contact Probe”,
“pan” : “”,
“track1” : “”,
“track2” : “”,
“amount” : “20.00”,
“amount_integer” : 2000,
“amount_range” : [
">= CVM Required Limit",
"< Contactless Transaction Limit,Contactless Floor Limit"
],
“amount_other” : “0.00”,
“amount_other_integer” : 0,
“currency_code” : “978”,
“application label” : “Visa Credit 1”,
“preferred_name” : “Виса Кредит 1”,
“pin” : “1234”,
“reference_pin” : “1234”,
“send_receipt” : false,
“requested_data” : [
“Receipt AID=A000000003101001”,
“TSI”
] }
}
Figure 13 Example Initiate Transaction message

3.5.1 Amount Ranges


An array field containing strings for amount range input data sent in the initiate transaction
message. If there is no specific amount range requirement, this array will be empty.

Status: Final 26/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

The sign “<, >, =, >= or <=” indicates the comparison between amount value and particular limits’
value. Incidentally this can be specified with ‘highest/lowest value </>’.

For example, ‘< CVM Required limit’ on a terminal with CVM Required limit $15,00, means ‘any
amount between $0.00 and $15.00.

Note that for this field, the considered amount is the total amount of the transaction including
cashback, gratuity, etc.

3.5.1.1 Allowed values


“<, >, =, >= or <=”
with supported “limits” strings:
• Contactless Transaction Limit
• CVM Required Limit
• Contactless Transaction Limit (CDCVM)
• Terminal Floor Limit
• Contactless Floor Limit
• Floor Limit

Special case without “<, >”, etc:


• Amount from previous transaction

3.5.2 Automation guidance


The automation guidance field in the initiate transaction message conveys user guidance
instructions that do not fit into any of the standard fields within the message. In the table below is
an overview of all possible values for the automation guidance.
Automation guidance value Explanation
add gratuity amount N/A
after completion use contactless to cancel N/A
that request
disconnect terminal from online host This instruction is usually given to achieve a
timeout, such that the terminal will send a
reversal
day closure on host This instruction is used in the UPI test plans, to
insure that a refund can be performed for the
previous transaction.
do not start a transaction N/A
exception file must contain specific PAN N/A
force transaction online N/A
generate settlement file N/A
POS Backup solution within six hours N/A
press enter after tapping card N/A
reader cannot connect to issuer host N/A
terminal timeouts before PIN is entered N/A

Status: Final 27/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Automation guidance value Explanation


the next logical transaction will continue this This occurs in mobile transactions, in which
terminal transaction two taps are required to complete the payment
OR
next transaction will be a continuation of
current transaction
use terminal a Used in UPI test plans: terminal a and terminal
b have different country codes configured
use terminal b Used in UPI test plans: terminal a and terminal
b have different country codes configured
technical fallback N/A
Table 7: Possible values of the automation guidance field in the Initiate Transaction message

3.6 Transaction Finalization


The Transaction Finalization message is sent by the Test Automation Environment to indicate to
the UL Brand Test Tool that the transaction has ended and to forward the data requested in the
Initiate Transaction message. The below fields must be present in the payload.

Field Allowed Values Description


outcome completed Indicates whether the transaction
approved • completed normally
declined • and was approved/declined
terminated • terminated abnormally (for instance due to card
errors)
requested_data … An array containing the string representations of the
indicated data requested in the Initiate Transaction
message’s “requested_data” field.
receipt JSON object The receipt information, which will be used to add a
(optional) see Table receipt file as part of the test results. Should be present
9 Fields of the if the “send_receipt” field of the Initiate Transaction
Receipt object message was set to true.
Table 8 Fields of the Transaction Finalization message payload

Status: Final 28/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

The number of elements of the field “requested_data” must exactly match the number of elements
of the field “requested_data” in the preceding initiate transaction message. Furthermore, no
element may be null. If either or both of these criteria are not met, the test case will be immediately
terminated. The intention of this behavior is to avoid giving a user the erroneous perception that a
test case is passing when it is not possible to.

The receipt field is optional, so a null value is always accepted by the UL Brand Test Tool. If the
receipt field is not null, it should contain a proper receipt JSON object, consisting of base64
encoded receipt data, and an optional receipt type (maximum 12 characters [a-z][A-Z][0-9]). If a
Transaction Finalization command is sent, a NACK is returned when:
• the receipt contains no or empty receipt data,
• the receipt contains receipt data that is not formatted in base64 encoding,
• the receipt type is not formatted with characters [a-z][A-Z][0-9],
• the receipt type is longer than 12 characters,
• saving this receipt to file leads to an error (including file already exists).
If a Transaction Finalization command is sent containing a receipt, then the message is processed
as usual. If the test case was expecting a receipt for this transaction, and the receipt was included
in the Transaction Finalization command, a file is created in the report folder of the test execution,
with a file name following the receipt file name convention from manual test case execution, a file
extension according to the provided type, and binary data of the file equal to the base64 decoded
data provided in the command.

Field Allowed Values Description


type JSON string (optional) Indicates the type of the receipt data. This name
will be used as extension of the receipt file.
data JSON string Base64 encoded receipt data. The decoded
data is to be stored in the receipt file as part of
the test results.
Table 9 Fields of the Receipt object

An example Transaction Finalization message corresponding to the example Initiate Transaction


message is given below:
{
“message_type” : “Transaction Finalization”,
“version” : “1.0”,
“payload” : {
“outcome” : “approved”,
“requested_data” : [
true,
“0000”
],
“receipt” : null
}
}
Figure 14 Example Transaction Finalization message

Status: Final 29/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

An example Transaction Finalization message with receipt:


{
“message_type” : “Transaction Finalization”,
“version” : “1.0”,
“payload” : {
“outcome” : “approved”,
“requested_data” : [
true,
“0000”
],
“receipt” : {
“type” : “txt”,
“data” : “dGVzdA==”
}
}
}
Figure 15 Example Transaction Finalization message

3.7 Test Case Finalization


The Test Case Finalization message is sent by the UL Brand Test Tool after all transactions in a
Test Case have been completed. It contains the resulting verdict of the test case in the “verdict”
field which may contain the values “passed”, “failed”, “inconclusive” or “non_automatable”. Note
that this message will not work while waiting for probe activation.

Next to the verdict, the message also contains a summary of the validations performed for the test
case. For each transaction, a list of validations with verdicts and an overall verdict for the
transaction are included. Note that all the validations, irrespective of the applicability are included in
the message.
{
“message_type” : “Test Case Finalization”,
“version” : “1.0”,
“payload” : {
“verdict” : “passed”,
“transaction_results” : [
{
“name” : “Sale”,
“verdict” : “passed”,
“userChecks” : [
{
“validation”: “Terminal displays transaction amount”,
“verdict” : “passed”,
“property” : “”,
“operator” : “”,
“mask” : “”,
“received” : “yes”,
“expected” : “yes”

Status: Final 30/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

}
],
“cardLogChecks” : [
{
“validation” : “ARQC returned in 1st Generate AC”,
“verdict” : “passed”,
“property” : “CONTACT.APDU(CLA=80,INS=AE)[1].COMMAND:BYTE”,
“operator” : “==”,
“mask” : “”,
“received” : “01”,
“expected” : “01”
}
],
“hostChecks”: [
]
}
]
}
}
Figure 16 Example Test Case Finalization message

3.8 Terminate Testing


The Terminate Testing message may be sent by the Test Automation Environment at any time to
terminate a current test case. While this should not be necessary during normal operations,
exceptional conditions may lead to the need to resynchronize the Test Automation Environment
and the UL Brand Test Tool and the Terminate Testing message may be used to achieve this. The
payload of this message is null.
{
“message_type” : “Terminate Testing”,
“version” : “1.0”,
“payload” : null
}
Figure 17 Example Terminate Testing message

3.9 Get Archive


The get archive message is sent by the Test Automation Environment at any time to receive an
archive of the test reports of the current profile. If it is desired to have archives ordered by test plan
or brand then the Test Automation Environment must be configured to use separate profiles for
each grouping desired. There is no payload necessary for the Get Archive message.
{
“message_type” : “Get Archive”,
“version” : “1.0”,
“payload” : null
}
Figure 18 Example Get Archive message

Status: Final 31/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

3.10 Archive
The archive message is the response of the Brand Test Tool to a successful Get Archive or Get
Last Card Simulation Reports request. If the archival was unsuccessful then a NACK would be
sent. The payload of the Archive message is the Base64 encoded zip archive produced. An actual
archive message would be much larger than the example provided below.
{
“message_type” : “Archive”,
“version” : “1.0”,
“payload” : “VGhpcyBpcyBleGFtcGxlIGRhdGEu…”
}
Figure 19 Example Archive message

3.11 Start CardSimulatorServer


Beside the Automation mode, the Brand Test Tool also has another server mode, meant for card
simulation only. This is called the Card Simulator Server. The Card Simulator Server can also be
controlled over a TCP/IP connection, but the used port and command language are different from
the Automation mode. Please refer to the Card Simulator Server Protocol documentation for a
detailed description of the usage. As a convenience, this protocol also contains the Start
CardSimulation and Stop CardSimulation messages, which can be used instead of direct
communication with the Card Simulator Server. In order to be able to use BTT Automation and
Card Simulator Server within the same Brand Test Tool, it is possible to start the Card Simulator
Server with a command message in BTT Automation. The Card Simulator Server will start as a test
case, and the BTT will send an ACK message. The Card Simulator Server can be started in contact
or contactless mode, which can be specified in the payload.

Field Allowed Values Description


interface contact The interface for which the Card Simulator Server has to be
contactless started.
Table 10 Fields of the Start CardSimulatorServer message payload

Further communication with the Card Simulator Server is done using the normal Card Simulator
Server Protocol, not over the BTT Automation interface.
{
“message_type” : “Start CardSimulatorServer”,
“version” : “1.0”,
“payload” : {
“interface” : “contactless”
}
}
Figure 20 Example Start CardSimulatorServer message

3.12 Stop CardSimulatorServer


When the card simulation part of a test session is complete, the Card Simulator Server can be
stopped with a Stop CardSimulatorServer message. The BTT will stop the Card Simulator Server
and respond with a Test Case Finalization message.

Status: Final 32/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

{
“message_type” : “Stop CardSimulatorServer”,
“version” : “1.0”,
“payload” : null
}
Figure 21 Example Stop CardSimulatorServer message

3.13 Activate Probe


The activate probe message is sent by the Test Automation Environment to the Brand Test Tool
when the Brand Test Tool is configured to require activation of the probes. This behavior can be
controlled under the Configuration menu > BTT Automation > Server settings > Execution options.
This message will be responded to with an ACK, even if the probe is currently activated.
{
“message_type” : “Activate Probe”,
“version” : “1.0”,
“payload” : null
}
Figure 22 Example Activate Probe message

3.14 Mute Probe


The mute probe message is sent by the Test Automation Environment to the Brand Test Tool to
mute the SmartWave Box probe. If a test case is being executed, the BTT will mute the probe
immediately after receiving the command. When a new transaction or test case is started, the
probe is reset and will no longer be muted. This message will be responded to with an ACK.
{
“message_type” : “Mute Probe”,
“version” : “1.0”,
“payload” : null
}
Figure 23 Example Mute Probe message

3.15 Unmute Probe


The unmute probe message is sent by the Test Automation Environment to the Brand Test Tool to
stop muting the SmartWave Box probe. If a test case is being executed, the BTT will unmute the
probe immediately after receiving the command. This message will be responded to with an ACK,
even if the probe is not muted.
{
“message_type” : “Unmute Probe”,
“version” : “1.0”,
“payload” : null
}
Figure 24 Example Unmute Probe message

Status: Final 33/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

3.16 Simulate Magstripe Data


The Simulate Magstripe Data message is sent by the Test Automation Environment to the Brand
Test Tool to simulate magstripe data using the UL SmartStripe. Successful execution of the
command requires the SmartStripe to be enabled under the Configuration menu > General Settings
> Hardware -> SmartStripe. If a test case containing magnetic stripe data is being executed and the
SmartStripe is enabled and connected, the BTT will activate the SmartStripe immediately after
receiving the command. Note that BTT will always reply with an ACK, even if the SmartStripe is not
connected or no magstripe data could be found.

Field Allowed Values Description


filename A string Card image filename to be used for simulation. This field is
optional (see below).
Table 11 Fields of the Simulate Magstripe Data message payload

There are two ways to call this method. The first is to call with no payload, in which case the
request is forwarded to the current running card simulation. The following figure shows and
example of this form of the request:
{
“message_type” : “Simulate Magstripe Data”,
“version” : “1.0”,
“payload” : null
}
Figure 25 Example Simulate Magstripe Data message

The second way of calling this method is to specify the card image filename in the payload. When
used in this way, the card simulator server is not used and the SmartStripe probe is used directly to
simulate a magnetic swipe.
{
“message_type” : “Simulate Magstripe Data”,
“version” : “1.0”,
“payload” : {
“filename” : “C:\\path\\image.xml”
}
}
Figure 26 Example Simulate Magstripe Data message

3.17 Start CardSimulation


Once a Start CardSimulationServer message has been successfully sent to the BTT and the Card
Simulation Server is running, card simulation can be started with the Start CardSimulation
message. The filename of the card image to be simulated is sent with the image. Card simulation
can also be manage by communicating directly with the Card Simulation Server, but this message
is provided as a convenience. If card simulation is successfully started, the BTT will respond to this
message with an ACK message.

Status: Final 34/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

Field Allowed Values Description


filename A string Card image filename to be used for simulation.
Table 12 Fields of the Start CardSimulation message payload

{
“message_type” : “Start CardSimulation”,
“version” : “1.0”,
“payload” : {
“filename” : “C:\\path\\image.xml”
}
}
Figure 27 Example Start CardSimulatorServer message

3.18 Stop CardSimulation


Sending this message causes the Card Simulator Server to stop any current card simulation. Card
simulation can also be manage by communicating directly with the Card Simulation Server, but this
message is provided as a convenience. If card simulation is successfully stopped, the BTT will
respond to this message with an ACK message.
{
“message_type” : “Stop CardSimulation”,
“version” : “1.0”,
“payload” : null
}
Figure 28 Example Start CardSimulatorServer message

3.19 Export Current Project


Use this command to export the current project in *.tpp format. This is the same format created
when the Export Project item from the File menu is used. The name of the file to be generated can
be supplied as a message parameter. In that case, if the project is exported and the output archive
file is successfully created, the BTT will respond to this message with an ACK message.
If the filename is not provided, the BTT will respond with an Archive message, containing the
Base64 encoded TPP file.

Field Allowed Values Description


filename A string (optional) Name of the file to be used for saving the archived project.
This file will be created by the BTT if it doesn’t exist, and
will be overwritten if it already exists.
Table 13 Fields of the Export Current Project message payload

Status: Final 35/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

{
“message_type” : “Export Current Project”,
“version” : “1.0”,
“payload” : {
“filename” : “C:\\path\\project.tpp”
}
}
Figure 29 Example Export Current Project message

3.20 Import Project


Use this command to import a project archive into the BTT. This file should be a *.tpp file previously
created by BTT or STP. This method has the same effect as selecting the Input Project item from
the File menu. Either the name of the file to be imported, or the Base64 encoded file itself must be
supplied as a message parameter. If the project is successfully imported the BTT will respond to
this message with an ACK message.

Field Allowed Values Description


filename A string (optional) Name of the file to be imported.
file A string (optional) Base64 encoded TPP file
Table 14 Fields of the Import Project message payload

{
“message_type” : “Import Project”,
“version” : “1.0”,
“payload” : {
“filename” : “C:\\path\\project.tpp”
}
}
Figure 30 Example Import Project message

3.21 List Projects


List Projects is a request sent by the Test Automation Environment to receive a list of projects
(a.k.a. profiles) known to the BTT. This request takes no arguments and the response will be a List
of Projects message.
{
“message_type” : “List Projects”,
“version” : “1.0”,
“payload” : null
}
Figure 31 Example List Projects message

3.22 List of Projects


The List of Projects message is a response from the UL Brand Test Tool to a List Projects request.
As its name describes, it returns a list of projects (a.k.a. profiles) to the Test Automation
Environment which are currently managed by the BTT.

Status: Final 36/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

The payload of the List of Projects message is an array of project (a.k.a. profile) objects. Each test
case object contains a number of string fields defining the project.

Field Allowed Values Description


profile any string The project name.
description Any string The project description.
Table 15 Fields of List of Projects message payload

An example of the List of Projects message follows:


{
“message_type” : “List of Projects”,
“version” : “1.0”,
“payload” : [
{
“profile” : “project 1”,
“description” : “description of project 1”
},

{
“profile” : “project N”,
“description” : “description of project N”
},

]
}
Figure 32 Example List of Projects message from BTT to TAE

3.23 Get Last CardLog


Get Last CardLog is a request sent by the Test Automation Environment to receive the apdu log of
the most recent completed simulation managed by the Card Simulation Server. This request takes
no arguments. If no card log can be found, or in case of other error, the response is a NACK
message. Otherwise the response will be a CardLog message.
{
“message_type” : “Get Last CardLog”,
“version” : “1.0”,
“payload” : null
}
Figure 33 Example Get Last CardLog message

3.24 CardLog
The CardLog message is sent from the UL Brand Test Tool to the Test Automation Environment in
response to a Get Last CardLog request. The payload of the CardLog message is the Base64
encoded json-format card log data. An actual archive message would be much larger than the
example provided below.

Status: Final 37/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

{
“message_type” : “CardLog”,
“version” : “1.0”,
“payload” : “VGhpcyBpcyBleGFtcGxlIGRhdGEu…”
}
Figure 34 Example CardLog message from BTT to TAE

3.25 Get Last Card Simulation Reports


Get Last Card Simulation Reports is a request sent by the Test Automation Environment to receive
the results of the most recent completed simulation managed by the Card Simulation Server. This
request takes no arguments. If no card log can be found, or in case of other error, the response is
a NACK message. Otherwise the response will be an Archive message.
{
“message_type” : “Get Last Card Simulation Reports”,
“version” : “1.0”,
“payload” : null
}
Figure 35 Example Get Last Card Simulation Reports message

3.26 Stop HostSimulation


Stop HostSimulation is a request sent by the Test Automation Environment to terminate any
running Host Simulation service. The request takes no arguments and only returns NACK if no
Host Simulation service is known to be running. Otherwise the response is always ACK.
{
“message_type” : “Stop HostSimulation”,
“version” : “1.0”,
“payload” : null
}
Figure 36 Example Stop HostSimulation message

3.27 Tool Info


The Tool Info message is sent by the Test Automation Environment to the Brand Test Tool to
request general information about the tool. In the message from TAE to BTT, the payload will be
null. The Brand Test Tool will respond with another Tool Info message, where the payload will
contain the tool versioning information.
{
“message_type” : “Tool Info”,
“version” : “1.0”,
“payload” : {
“name” : “UL Brand Test Tool”
“version” : “5.1.0”
“revision” : “8888”
}
}
Figure 37 Example Tool Info message from BTT to TAE

Status: Final 38/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

3.28 ACK
The ACK message is sent in response to a request message to the UL Brand Test Tool that
doesn’t prompt any response data. It signifies successful execution of the request. The payload is
null.
{
“message_type” : “ACK”,
“version” : “1.0”,
“payload” : null
}
Figure 38 Example ACK message

3.29 NACK
The NACK message is sent in response to an unexpected or corrupted message. Its payload is a
string which may give details on the reason for NACKing.
{
“message_type” : “NACK”,
“version” : “1.0”,
“payload” : “Message type not supported.”
}
Figure 39 Example NACK message

3.30 Shutdown
The Shutdown message is sent by the Automation Environment to intitiate a clean shutdown of the
Brand Test Tool. This is especially useful when multiple Brand Test Tools are configured on a
specific system each using separate devices and ports. The payload must be an integer (less than
231) indicating the number of milliseconds to wait before initiating the termination of the Brand Test
Tool. The response will be an ACK, provided that the message can be sent before the Brand Test
Tool terminates.
{
“message_type” : “Shutdown”,
“version” : “1.0”,
“payload” : 1000
}
Figure 40 Example Shutdown message

Status: Final 39/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

4 Requested data
4.1 Automation of user inputs
General user inputs cannot be automated due to the general nature of language and the specific
nature of computers. However, many test cases contain checks that require a human to provide
some additional information or answer yes/no questions. The straightforward automation strategy is
to enumerate the questions being asked and to categorize these questions into as few classes as
possible. This results in a broad enumeration of data which must be requested from an automation
device.

In the following sections, the enumeration of “requested_data” that the automation tool are
expected to understand are described. Furthermore, the format of the response data is also
described.

In the case that the automation tool does not understand the request, null should be returned for
that particular request; a NACK must not be used when the request is not understand.

4.2 True or false requests


The following table lists the “requested_data” elements which expect to receive the JSON
literals true or false in response. The response value for each element must be a
straightforward answer to the question whether the statement in the “Explanation” column is true or
false. It could be the case that false is the correct answer for the validation of the transaction. For
instance, when the validation states “Signature line is NOT printed on receipt or captured
electronically” the response value false to the requested_data element “Signature” will make
the validation pass.

requested_data value Explanation


Above Contactless limit The transaction amount is above the Contactless Transaction limit.
Above CVM limit The transaction amount is above the CVM Required limit
Account selection The terminal prompts for personal account application selection.
Amount correct The amount that is authorized is the transaction amount, including a
possible gratuity amount.
Amount first The terminal requests the transaction amount before asking for
presentation of the card.
Amount not entered The amount is not entered.
Approved The transaction is approved.
Approved Purchase The transaction is approved for the purchase amount only
Amount
Approve Letter L2 The "Terminal EMV Level 2 Approve letter" is provided.
Balance The terminal presents the current balance of the card.
Batch data script In the Batch Data Capture, the TVR byte 5, bit 6 (Script Processing
processing did not fail before final Generate AC) shall be set to ‘0’.
Batch emptied The terminal has cleared all transactions.

Status: Final 40/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

requested_data value Explanation


Below Contactless limit The transaction amount is below the Contactless Transaction limit.
Below CVM limit The transaction amount is below the CVM Required limit.
Below Floor limit The transaction amount is below the Floor limit.
Bilingual The message is displayed in Bilingual format.
Cash transaction A cash transaction is performed successfully.
Capture The transaction was captured by the terminal.
Cardholder confirmation The terminal prompted the cardholder to select the application.
Cardholder confirmation 2 The terminal prompted the cardholder to select the application
(possibly related to second application).
CDA failed TVR post transaction shows CDA Failed.
CDA successful TVR post transaction shows CDA Successful.
Chinese The terminal displays messages in Chinese.
Chip The terminal performed the transaction using the chip.
Chip Inserted The card is inserted in the chip reader of the terminal.
Cirrus AID The Cirrus AID is set in the terminal.
CVC The terminal prompts for CVC/CSC/CID entry.
Completion The transaction completes normally (approval or disapproval).
Completion with CDA The terminal performs CDA and processes the transaction until
completion.
Contactless The terminal performed the transaction using the contactless chip.
The terminal does not prompt to use another interface.
Contactless completion The terminal performed a contactless transaction until completion.
Currency selection The terminal prompts for currency selection.
DCC selection The terminal prompts for Direct Currency Conversion Customer
Choice.
Declines The transaction is declined.
Display label The terminal displays the application label.
Display label=AMEX 2 The terminal displays the label “AMEX2” during the transaction.
Display label=INTERAC The terminal displays the label “INTERAC” during the transaction.
Display label=AMERICAN The terminal displays both the labels “AMERICAN EXPRESS” and
EXPRESS and AMEX 2 “AMEX2” during the transaction
Display label=DINERS The terminal displays both the labels “DINERS CLUB1” and “DINERS
CLUB1 and DINERS CLUB2” during the transaction
CLUB2
Display The terminal displays both the labels “DISCOVER1” and
label=DISCOVER1 and “DISCOVER2” during the transaction
DISCOVER2
Display label=AMERICAN The terminal displays the label “AMERICAN EXPRESS” during the
EXPRESS or no label transaction, or no Application label is displayed on screen.
Display label=CREDITO The terminal displays the label “CREDITO DE VISA” during the
DE VISA or no label transaction, or no Application label is displayed on screen.
Display label=VISA The terminal displays the label “VISA CREDIT” during the
CREDIT or no label transaction, or no Application label is displayed on screen.
Display log The terminal displays the transaction log.

Status: Final 41/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

requested_data value Explanation


Dynamic Limit Sets The terminal is configured with Dynamic Limit Sets.
English The terminal displays messages in English.
English or French The terminal offers a choice between English and French.
Equals Contactless limit The transaction amount equals the Contactless Transaction limit.
Equals CVM limit The transaction amount equals the CVM Required limit.
Equals Floor limit The transaction amount equals the Floor limit.
EReceipt AID E-receipt shall be sent with an AID
EReceipt CAN is masked If Card Account Number is present in the e-receipt, it is masked until
the last 4 digits.
Fallback The terminal performed the transaction in fallback mode.
French The terminal displays messages in French.
French OR not supported Terminal displays messages in French OR terminal does not support
language preference.
Green light The terminal shows a solid green light.
Issuer Authentication In this transaction, Issuer Authentication was performed.
Issuer Scripts The terminal sends all issuer script commands that have been
received from the host to the card.
Issuer Scripts successful The issuer scripts commands that have been received from the host
are send to the card successfully.
Japanese The terminal displays messages in Japanese.
Korean The terminal displays messages in Korean.
Language choice The terminal offers a choice of language.
Language choice: English The language choice includes English as an option.
Language choice: French The language choice includes French as an option.
Magstripe The terminal performed the transaction using the magnetic stripe.
Magstripe Read Terminal reads the magnetic stripe
Message The terminal displayed a message to the cardholder.
Message: amount The amount is presented to the cardholder.
Message: amount The terminal prompts for amount confirmation.
confirmation
Message: amount The terminal prompts for amount confirmation for a second time.
confirmation 2
Message: AOSA The terminal prints the available offline spending amount.
Message: Approved The terminal displays an approved message or similar.
Message: Attendant Terminal displays a message informing the cardholder to see
attendant (or similar message).
Message: Blocked The terminal displays a card blocked message.
Message: Call The terminal indicates a number to call for instructions.
Message: Captured The terminal displays a message that the card is captured.
Message: Check Mobile The terminal displays: ‘Please check your mobile device’.
Message: Contactless not The terminal displays a message that contactless is not permitted.
permitted
Message: Continue The terminal prompts to continue with (fallback to) magnetic stripe or
Fallback insert chip.

Status: Final 42/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

requested_data value Explanation


Message: Collision The terminal displays a message to present only one card.
Message: Declined The terminal displays a declined message.
Message: Display brand The terminal displays the logo of the brand when it is not currently
logo in idle mode processing a transaction
Message: Exchange rate The terminal displays exchange rate and converted amount.
Message: Expired The terminal displays an expired card message.
Message: Fallback The terminal prompts to fall back to magnetic stripe.
Message: Final or no The terminal displays final transaction amount or no amount
amount
Message: Gratuity The terminal prompts to enter the gratuity amount
Message: ID Number The terminal prompts for ID Number.
Message: Incorrect PIN The terminal indicates that the PIN was incorrect.
Message: Incorrect PIN The terminal indicates that the PIN was incorrect twice.
twice
Message: Insert The terminal prompts to insert the card.
Message: Insert or swipe The terminal prompts to insert or swipe the card.
Message: Insert or other The terminal prompts to insert the card or try another card.
card
Message: Insert swipe or The terminal prompts to insert, swipe or try another card
try other card
Message: Last PIN The terminal indicates that the cardholder has only one PIN attempt
remaining.
Message: Not accepted The terminal indicates that the card is ‘Not Accepted’ or displays a
similar message.
Message: Not accepted or The terminal indicates that the card is ‘Not Accepted’ or displays a
swipe similar message, or, the terminal prompts to swipe the card.
Message: Odometer The terminal prompts for Odometer.
Message: Online The terminal indicates that the transaction is being processed online.
Message: PIN Bypass The terminal displays an option for PIN bypass.
Message: PIN required The terminal displays a message that PIN is required.
Message: PIN Try The terminal displays a message that PIN Try limit has been
exceeded exceeded.
Message: PIN Unblock The terminal displays the outcome of the PIN Unblock.
Message: Present The terminal prompts for card presentation.
Message: Contactless The terminal prompts for presenting a contactless card.
Message: Processed The terminal displays a message that transaction is processed.
Message: Purchase The terminal presents the transaction type as purchase.
Message: Read The terminal indicates after presenting the card that the card has
been successfully read.
Message: Refer The terminal indicates that the user should refer to the payment
device for more instructions.
Message: Reject The terminal displays a message that the card has been rejected.
Message: Remove The terminal prompts for card removal.
Message: Retry The terminal prompts for or allows the failed transaction to be retried.

Status: Final 43/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

requested_data value Explanation


Message: Second tap The terminal prompts for a second tap.
Message: Sign The terminal prompts for signature.
Message: Signature OK The terminal asks the attendant if the signature was OK.
Message: Swipe The terminal prompts to swipe the card.
Message: Terminated The terminal displays a message that the transaction is terminated.
Message: TVR The terminal displays the TVR.
Message: Too many taps The terminal displays: ‘Cannot process transaction - Too many taps’.
Message: Use Chip The terminal prompts for chip insertion.
Message: Vehicle The terminal prompts for Vehicle Number.
Number
Message: Voice The terminal prompts for voice authorization.
Messages on reader Instructions were displayed on the separate card reader, not on the
ATM display.
Network message: In the network message, DataElement 54 (Additional Amounts) is
Additional Amounts present and correct.
Network message: In the network message, DataElement 55 Tag 9F03 (Amount Other)
Amount Other is present and correct.
Network message: CVM CVM results in the host message is set to 'Unknown'.
Unknown
Network message: In the network message, DataElement 55 Tag 9F1A (Terminal
Terminal Country Code Country Code) is present and correct.
Network message: In the network message, DataElement 55 Tag 5F2A (Transaction
Transaction Currency Currency Code) is present and correct.
Code
Network message: In the network message, DataElement 55 Tag 9A (Transaction Date)
Transaction Date is present and correct.
Network simulator: ARQC The network simulator successfully validated the ARQC.
validated
Network simulator: The network simulator received an authorization request for this
Authorization request transaction.
Network simulator: CVC3 The network simulator successfully validated the CVC3 retrieved
validated from Track 1 or Track 2.
Network simulator: PIN The network simulator successfully decrypts the PIN and shows the
decrypted correct PIN value.
Mobile CVM The terminal uses Mobile CVM.
NoCVM The transaction is performed using NoCVM.
CVM The terminal performs cardholder verification.
Online The transaction is performed online.
Online or fallback The transaction is performed online or the terminal asks for another
interface.
Online PIN The terminal sends an online PIN.
Online Referred The transaction is online referred.
PAN The PAN is printed on the receipt, preferably masked.
PAN not padded The PAN which is printed is not padded with ‘F’s.

Status: Final 44/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

requested_data value Explanation


PIN The terminal prompts for PIN entry.
PIN2 The terminal prompts for PIN entry for a second time.
PIN3 The terminal prompts for PIN entry for a third time.
PIN bypass The terminal allows PIN bypass.
PIN entered in compliant The PIN is entered in an approved PCI PTS compliant PIN entry
device device.
PIN or Signature The terminal prompts for PIN entry or prints a space on the receipt for
a signature.
PIN and Signature The terminal prompts for PIN entry and prints a space on the receipt
for a signature.
Power down The terminal powers down the currently used interface before
continuing.
Receipt The terminal prints a receipt.
Receipt amount The terminal prints the transaction amount on the receipt.
Receipt AID The terminal prints the AID on the receipt.
Receipt Call The terminal prints on the receipt a number to call for instructions.
Receipt The terminal prints the AID “A0000001523010010203040506070809”
AID=A00000015230100 on the receipt.
10203040506070809
Receipt The terminal prints the AID “A0000001523010020203040506070809”
AID=A0000001523 on the receipt.
010020203040506070809
Receipt The terminal prints the AID “A0000000031010” on the receipt.
AID=A0000000031010
Receipt The terminal prints the AID “A000000003101009” on the receipt.
AID=A000000003101009
Receipt The terminal prints the AID “A0000001523010” on the receipt.
AID=A0000001523010
Receipt The terminal prints one of the two AIDs “A000000003101004” or
AID=A000000003101004 “A000000003101005” on the receipt.
or A000000003101005
Receipt The terminal prints the AID “A000000333010108” on the receipt.
AID=A000000333010108
Receipt The terminal prints the AID “A000000333010101” on the receipt.
AID=A000000333010101
Receipt data source The terminal prints the transaction data source on the receipt.
Receipt DCC The terminal prints the receipt with supplemental Direct Currency
Conversion information.
Receipt Label The terminal prints the label on the receipt.
Receipt Label OR AID The terminal prints the label or the AID on the receipt.
Receipt merchant name The terminal prints the merchant name on the receipt.
Receipt merchant number The terminal prints the merchant number on the receipt.
Receipt or not supported Terminal prints receipt or the terminal is not capable of printing a
receipt.

Status: Final 45/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

requested_data value Explanation


Receipt PAN is masked If the terminal prints a receipt with the PAN, the PAN is masked until
the last 4 digits.
Receipt PIN The terminal shows that PIN is verified.
Receipt prompt The terminal prompts before printing the receipt.
Receipt response code The terminal prints the transaction response code on the receipt.
Receipt Signature or PIN The terminal prints a signature line or that the signature was
electronically captured or that the PIN was verified on the receipt.
Receipt terminal number The terminal prints the Terminal Number on the receipt.
Receipt transaction type The terminal prints the transaction type on the receipt.
Rejected The terminal rejected the card.
Rejected second interface The terminal rejected the card on another (second) interface.
Reversal advice An acquirer reversal advice message is generated.
Reversal response The terminal receives a reversal response.
Reversed The terminal issued a reversal message.
Risk Management The terminal performs risk management.
Second tap The second tap completes successfully.
Selected application The terminal selects application “AMERICAN EXPRESS”.
=AMERICAN EXPRESS
Selected The terminal selects application “AMEX 2”.
application=AMEX 2
Selection ends The transaction ends after selection.
Signature The terminal prints a space on the receipt for a signature.
Signature optional or If the transaction amount is lower than NO CVM limit, signature is not
under NO CVM limit required, else the terminal can optionally print/display signature
panel.
Signature or noCVM The terminal prints a space on the receipt for a signature, or
considers the amount under the NoCVM limit.
Tap Again The terminal requests the Cardholder to present the Card for a
second time.
Terminated The terminal aborts the transaction.
Test case specific The terminal displays a test case specific sequence of messages.
message Please execute the test case in verbose mode to retrieve more
information on what should be validated.
Time out The transaction times out.
TIP The terminal indicates that the cardholder may enter a tip.
Tip dialog The terminal shows the tip dialog as specified.
TIP first The terminal requests a tip before prompting for card presentation.
Transaction not started The terminal does not start a transaction (GPO request is not
reached).
Transaction record A transaction record was produced automatically.
Transaction record: AID The resulting transaction record contains the AID and the Entry Mode
and Entry Mode of the refund transaction.
Table 16 True or false request data

Status: Final 46/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

4.3 String requests


The following table lists the “requested_data” elements which expect to receive string
responses. Where hexadecimal characters are requested the expected string will contain
characters matching the regular expression [a-fA-F0-9] with optional space characters in between
bytes.

Requested_data Expected value Description


value format
Amount xx.xx Amount of the transaction, separated by a decimal.
ARC ASCII string (2-3 Requests the Authorisation Response Code.
characters)
ARPC Hex characters The value of the authorization response cryptogram
received from the network.
ARQC Hex characters. The text of the receipt, which should only be sent to the
UL Brand Test Tool if the “send_receipt” field of the
Initiate Transaction message was set to true.
Cashback xx.xx Amount of cash back requested, separated by a
amount decimal.
Cardholder Comma separated A comma separated list of application preferred
selection list list names/labels that the terminal presented to the
cardholder for confirmation.
Currency 3 digit ISO currency Indicates the currency used to perform the transaction.
code
Get message Arbitrary string The message that is displayed by the terminal.
Get receipt last Decimal string The last 4 digits of the PAN as printed on the receipt.
PAN digits
Issuer Script Hex characters The issuer script results at the end of the transaction.
Results
Network type 0100 or 0200 The type of MasterCard network which is used (dual
message or single message).
POS Entry Mode Hex characters The POS Entry Mode from the network request
message.
Tip amount Decimal string The amount of money entered as a tip.
TSI Hex characters The Terminal Status Information at the end of the
transaction.
TVR Hex characters The last TVR presented to the card.
TVR_1 Hex characters The TVR presented to the card at first generate AC.
TVR_2 Hex characters The TVR presented to the card at second generate
AC.
Table 17 String valued request data

Status: Final 47/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

References
Ref. Title Author Version Date
[1] Standard ECMA 404: The JSON Data ECMA 1st Edition October 2013
Interchange Format

Status: Final 48/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

A.1 List of Figures


Figure 1 BTT automation .................................................................................................................. 10
Figure 2 TCP view of control message ............................................................................................. 11
Figure 3 High level control message structure .................................................................................. 11
Figure 4 BTT Automation - Server Settings ...................................................................................... 12
Figure 5 Command line arguments ................................................................................................... 12
Figure 6 UL Brand Test Tool with active Automation Server ............................................................ 13
Figure 7 Simple Python Test Automation Environment sending a “Select Profile” message ........... 15
Figure 8 Example use case: Running all tests in a specific profile ................................................... 16
Figure 9 Example Select Profile message ........................................................................................ 19
Figure 10 Example List Test Cases message .................................................................................. 20
Figure 11 Example List of Test Cases message .............................................................................. 21
Figure 12 Example Initiate Test Case message ............................................................................... 22
Figure 13 Example Initiate Transaction message ............................................................................. 26
Figure 14 Example Transaction Finalization message ..................................................................... 29
Figure 15 Example Transaction Finalization message ..................................................................... 30
Figure 16 Example Test Case Finalization message ........................................................................ 31
Figure 17 Example Terminate Testing message .............................................................................. 31
Figure 18 Example Get Archive message......................................................................................... 31
Figure 19 Example Archive message ............................................................................................... 32
Figure 20 Example Start CardSimulatorServer message ................................................................. 32
Figure 21 Example Stop CardSimulatorServer message ................................................................. 33
Figure 22 Example Activate Probe message .................................................................................... 33
Figure 23 Example Mute Probe message ......................................................................................... 33
Figure 24 Example Unmute Probe message .................................................................................... 33
Figure 25 Example Simulate Magstripe Data message .................................................................... 34
Figure 26 Example Simulate Magstripe Data message .................................................................... 34
Figure 27 Example Start CardSimulatorServer message ................................................................. 35
Figure 28 Example Start CardSimulatorServer message ................................................................. 35
Figure 29 Example Export Current Project message ........................................................................ 36
Figure 30 Example Import Project message ..................................................................................... 36
Figure 31 Example List Projects message ........................................................................................ 36
Figure 32 Example List of Projects message from BTT to TAE ....................................................... 37
Figure 33 Example Get Last CardLog message ............................................................................... 37
Figure 34 Example CardLog message from BTT to TAE ................................................................. 38
Figure 35 Example Get Last Card Simulation Reports message ..................................................... 38
Figure 36 Example Stop HostSimulation message ........................................................................... 38
Figure 37 Example Tool Info message from BTT to TAE ................................................................. 38
Figure 38 Example ACK message .................................................................................................... 39
Figure 39 Example NACK message ................................................................................................. 39
Figure 40 Example Shutdown message ........................................................................................... 39

Status: Final 49/50 Version: 1.43


UL Brand Test Tool
Automation Server Protocol Specification

A.2 List of Tables


Table 1 Message Type Descriptions ................................................................................................. 18
Table 2 Fields of Select Profile message payload ............................................................................ 19
Table 3 Fields of List Test Cases message payload ........................................................................ 20
Table 4 Fields of each element in the List of Test Cases message payload .................................... 21
Table 5 Fields of each element in the List of Test Cases message payload .................................... 22
Table 6 Fields of Initiate Transaction message payload ................................................................... 26
Table 7: Possible values of the automation guidance field in the Initiate Transaction message ...... 28
Table 8 Fields of the Transaction Finalization message payload ..................................................... 28
Table 9 Fields of the Receipt object .................................................................................................. 29
Table 10 Fields of the Start CardSimulatorServer message payload ............................................... 32
Table 11 Fields of the Simulate Magstripe Data message payload .................................................. 34
Table 12 Fields of the Start CardSimulation message payload ........................................................ 35
Table 13 Fields of the Export Current Project message payload ..................................................... 35
Table 14 Fields of the Import Project message payload ................................................................... 36
Table 15 Fields of List of Projects message payload ........................................................................ 37
Table 16 True or false request data .................................................................................................. 46
Table 17 String valued request data ................................................................................................. 47

Status: Final 50/50 Version: 1.43

You might also like