Terminal Terminal

This document provides a step-by-step guide for merchants who manage POS and ECR systems and use the Terminal API app, and want to display a customized screen on the terminal when certain actions are triggered. This allows information to be shown or input to be collected during defined operational flows. 

The screens are fully customizable and can support a wide range of use cases tailored to customer needs. Think of them as white-label interfaces whose content you can adapt to present information in different ways.

Typical use cases include:

  • Confirmations or promotional messages with a title, subtitle, description, and action buttons to capture user decisions.

  • Provide a single-choice selection from a list, with optional icons and a unique ID per option (such as ratings, feedback, or receipt delivery preferences)

  • Allow multiple selections from a list (checkbox-style) with icons and configurable actions.

  • Show a custom image (e.g., promo or branding) with configurable button colors and standard actions.

  • Display a QR code for scanning to enroll, access resources, or connect to external services.

  • Present structured data in a table or formatted list for receipts, itemized details, or transaction information.

  • Capture a digital signature for approvals, contracts, or delivery confirmations.

  • Collecting data such as email, phone number, ZIP code, or tip amount with built-in validation.

General Usage

These screens are displayed in response to HTTP requests from an external system (e.g., a Point-of-Sale system, a remote server, ECR, or a tool like Postman). You will not directly "open" these screens from the application's main interface. Instead, they will appear automatically when you send http request to the terminal API with a proper payload body.
Check the api specifications https://docs.terminal.worldline-solutions.com/api-reference#tag/Payments to see all the required payload for all UI screens in the example section. These API specifications are general ones that include the payloads of the payment transactions, and they are compatible with the UI screens as well.

Request and interaction flow

1- The external system sends a POST HTTP request to the terminal api " https://api.terminal.iacc.global.worldline-solutions.com/api/v1/merchants/{umid}/terminals/{utid}/tapi "

2- Include a valid umid and utid with the authorization token

3- The request body must contain a NEXO body as described in the API specifications

4- The NEXO body request consists of SaleToPOIDeviceRequest object that contains Header and DeviceRequest objects

5- The TAPI app will treat the request as a UI request only if an InputRequest object is provided inside DeviceRequest

6- Specify the screen to display by providing DisplayOutput -> MessageContent -> InfoScreen (or any other supported screen name)

7- The application will display the corresponding screen immediately.

8- Your interaction with these screens will involve viewing information, making selections, or entering data as prompted.

9- Once you complete the interaction, the application will send a response back to the external system.

Example of the request


    
    curl --location 'https://api.terminal.iacc.global.worldline-solutions.com/api/v1//merchants/mohamed/terminals/mohamed1/tapi' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer e.....\
--header 'Cookie: AWSALB=h.....' \
--data '{
    "SaleToPOIDeviceRequest": {
        "Header": {
            "MessageFunction": "SDDR",
            "ProtocolVersion": "5.0-WL1.0",
            "ExchangeIdentification": "440",
            "CreationDateTime": "2020-05-04T18:13:51.0+01:00",
            "InitiatingParty": {
                "Identification": "SaleTermA",
                "Type": "MERC"
            }
        },
        "DeviceRequest": {
            "InputRequest": {
                "DisplayOutput": {
                    "MessageContent": {
                        "InfoScreen": {
                            "ShowLogo" : true,
                            "BackgroundColor": "#6200EE",
                            "ButtonColor": "#3700B3",
                            "Title": "Do you want to redeem your loyalty card?",
                            "Subtitle": "You currently have enough point for a 2.50 EUR discount",
                            "PrimaryButton": {
                                "ButtonId": "first_button",
                                "ButtonContent": "Yes"
                            },
                            "SecondaryButton": {
                                "ButtonId": "second_button",
                                "ButtonContent": "No"
                            }
                        }
                    }
                },
                "InputData": {
                    "InputCommand": "GetAnyKey",
                    "MaximumInputTime": "30000"
                }
            }
        }
    }
}'

    

Screen scope

Showing any screen depends on the MessageContent object that the external system sends. MessageContent should contain the screen names like:

  • InfoScreen : A basic information display with a title, subtitle, descriptive text, and primary/secondary action buttons. Ideal for confirmations, promotional messages, or scenarios where you need to capture a user’s decision.

  • ImageInfoScreen : Shows an image with texts. Excellent for transaction status screens, with customizable button colors and standard actions.

  • MultiOptionSingleSelectionScreen : A single-choice interface with multiple options, each supporting custom icons. Great for menus or category selection, each option includes a unique ID for response handling.

  • QRScreen : Displays a QR code for easy scanning. Perfect for loyalty enrollments, website links, or linking to external resources, with customizable title/subtitle and optional actions.

  • InfoTableScreen : Presents structured data in a table or formatted list. Ideal for receipts, itemized bills, or transaction details, with properly aligned, readable data.

  • SignatureScreen : A digital signature capture area for electronic approvals, contracts, or delivery confirmations. Includes a drawing surface and confirm/cancel options.

  • ImageScreen : Shows a base64-encoded image only. Excellent for promos, product visuals, instructions, or branding, with customizable button colors and standard actions.

  • MultiOptionMultipleSelectionScreen : A multiple-choice interface that allows selecting several options. Useful for surveys, preferences, or configuration tasks, with checkbox-style selection, icons, and customizable action buttons.

  • CaptureDataScreen : A data input interface with built-in validation and typed fields (e.g., EMAIL). Suitable for collecting contact information, registration data, or any structured input, with clear labeling and standard submit/cancel actions.

Customization and look

Users can control the screen appearance and which UI elements are shown by including element fields in the request JSON (in MessageContent). The application will render the corresponding screen based on the specified fields.

Not all fields are applicable for every screen, use the relevant fields for the screens that you need. You can find all the relevant fields in  the API specifications .

  Common Fields
  These fields are common across most of the screens:

    ShowLogo : (Optional) a Boolean field to specify whether to show the Worldline logo at the top of the screen.
    Title : (Mandatory) The main heading for the screen.
   * Subtitle : (Optional) Additional information or a sub-heading.

    Text : (Optional) Detailed text explaining the image or providing instructions.
    PrimaryButton : (Optional) The main action button.
        ButtonId : (Mandatory if PrimaryButton is present) A unique identifier for the button.
        ButtonContent : (Mandatory if PrimaryButton is present) The text displayed on the button.
    SecondaryButton : (Optional) The secondary action button.
        ButtonId : (Mandatory if SecondaryButton is present) A unique identifier for the button.
       * ButtonContent : (Mandatory if SecondaryButton is present) The text displayed on the button.

Supported Icon Formats (applies to Icon and OptionIcon only)

  • Description: It accepts a string to indicate the type and icon to display. This flow applies only to Icon and OptionIcon fields.

  • Formats: You have to provide one of the following three formats

material.iconName : Use the material. prefix; displays the iconName stored in the drawable resources. ( Material Icons )

icon.iconName : Use the icon. imageName; which must be stored in the drawable resource folder in Tapi app (check the available icons in our UI library at the end of this guide)

emoji.emojiUnicode or emoji.EmojiCharacter : Use the emoji. prefix; displays the specified emoji by Unicode or by the actual emoji character. ( Unicode emoji list )

Emulator

You can use this emulator to simulate how the feature works and check how the screens look like. ( link )

Screen Guides

1. Info Screen

          

  • Purpose: This screen displays general information or messages to the user, typically with a title and subtitle. It's used for simple notifications or confirmations.

  • How to Open: This screen appears when the external system sends a request with InfoScreen object in the MessageContent to display a simple informational message.

  • Elements & Interaction:

  • Logo: (Optional) Worldline logo may be displayed at the top.

  • Title: A main heading for the screen.

  • Subtitle: Additional information or a sub-heading.

  • Primary Button (e.g., "Accept", "OK"): Tap this button to confirm you have viewed the information and proceed.

  • Secondary Button (e.g., "Cancel", "Back"): Tap this button to dismiss the screen or go back to a previous step

2. Image Info Screen

          

  • Purpose: This screen displays an image along with a title, subtitle, and descriptive text. It's used to convey important information or instructions visually.

  • How to Open: This screen appears when the external system sends a request with ImageInfoScreen object in the MessageContent to display an image with accompanying information.

  • Elements & Interaction:

  • Logo: (Optional) Worldline logo may be displayed at the top.

  • Title: A main heading for the screen.

  • Subtitle: Additional information or a sub-heading.

  • Icon: A visual icon related to the message.

  • Text: Detailed text explaining the image or providing instructions.

  • Primary Button (e.g., "Accept", "OK"): Tap this button to confirm you have viewed the information and proceed.

  • Secondary Button (e.g., "Cancel", "Back"): Tap this button to dismiss the screen or go back to a previous step.

3. Multi-Options Single Selection Screen

          

  • Purpose: This screen presents a list of options from which you must select only one. It's used for choices where only one answer is valid.

  • How to Open: This screen appears when the external system sends a request with MultiOptionsSingleSelectionScreen object in the MessageContent and requires you to make a single choice from a predefined list.

  • Elements & Interaction:

  • Logo: (Optional) Worldline logo may be displayed at the top.

  • Title: A main heading for the screen, indicating the type of selection required.

  • Option List: A list of selectable items. Each item may have an icon, title, and content.

  • Selecting an Option: Tap on the desired option from the list. The screen will typically close automatically after your selection is made.

4. QR Screen

           

  • Purpose: This screen displays a QR code, usually accompanied by a title, subtitle, and descriptive text. It's used for actions like scanning with another device or displaying payment information.

  • How to Open: This screen appears when the external system needs to present a QR code to the user. It sends a request with QRScreen object in the MessageContent.

  • Elements & Interaction:

  • Logo: (Optional) Worldline logo may be displayed at the top.

  • Title: A main heading for the screen.

  • Subtitle: Additional information or a sub-heading.

  • Text: Text providing context or instructions for the QR code.

  • QR Code: The scannable QR code image.

  • Primary Button (e.g., "Accept", "OK"): Tap this button to confirm or proceed after the QR code has been used.

  • Secondary Button (e.g., "Cancel", "Back"): Tap this button to dismiss the screen.

5. Info Table Screen

         

  • Purpose: This screen displays formatted text, typically in a table-like structure, to present detailed information such as a receipt or transaction summary.

  • How to Open: This screen appears when the external system needs to display structured text information.  It sends a request with InfoTableScreen object in the MessageContent.

  • Elements & Interaction:

  • Logo: (Optional) Worldline logo may be displayed at the top.

  • Title: A main heading for the screen.

  • FormattedString: The formatted text, which might represent a receipt, a list of items, or other structured data.

  • Primary Button (e.g., "Accept", "OK"): Tap this button to confirm you have viewed the information and proceed.

  • Secondary Button (e.g., "Cancel", "Back"): Tap this button to dismiss the screen.

6. Signature Screen

         

  • Purpose: This screen allows the user to provide a digital signature, typically by drawing on the screen.

  • How to Open: This screen appears when the external system requires a signature for authorization or confirmation. It sends a request with SignatureScreen object in the MessageContent.

  • Elements & Interaction:

  • Logo: (Optional) Worldline logo may be displayed at the top.

  • Title: A main heading for the screen, indicating the purpose of the signature.

  • Signature Area: A blank area where you can draw your signature using your finger or a stylus.

  • Primary Button (e.g., "Accept", "Confirm"): Tap this button to accept and submit your drawn signature.

  • Secondary Button (e.g., "Clear", "Cancel"): Tap this button to clear the signature area or cancel the signature process.

7. Image Screen

         

  • Purpose: This screen displays a single image, often a large one, without additional text or complex interactions.

  • How to Open: This screen appears when the external system needs to display a standalone image as base64. It sends a request with ImageScreen object in the MessageContent.

  • Elements & Interaction:

  • Logo: (Optional) Worldline logo may be displayed at the top.

  • Image: The main image displayed on the screen.

  • Primary Button (e.g., "OK", "Continue"): Tap this button to acknowledge the image and proceed.

  • Secondary Button (e.g., "Cancel"): Tap this button to dismiss the screen.

8. Multi-Options Multiple Selection Screen

           

  • Purpose: This screen presents a list of options from which you can select multiple items. It's used for choices where more than one answer is valid.

  • How to Open: This screen appears when the external system requires you to make multiple choices from a predefined list. It sends a request with MultiOptionsMultiSelectionScreen object in the MessageContent.

  • Elements & Interaction:

  • Logo: (Optional) Worldline logo may be displayed at the top.

  • Title: A main heading for the screen, indicating the type of selection required.

  • Option List: A list of selectable items. Each item may have an icon, title, and content.

  • Selecting Options: Tap on each desired option to select or deselect it.

  • Primary Button (e.g., "Confirm", "Done"): Tap this button to submit your selected options.

  • Secondary Button (e.g., "Cancel", "Clear All"): Tap this button to dismiss the screen or clear all selections.

9. Capture Data Screen

           

           

  • Purpose: This screen is used to capture various types of data from the user, such as email addresses, phone numbers, amounts, or zip codes.

  • How to Open: This screen is shown when the external system requires specific data input from the user. The request contains a CaptureDataScreen object in the MessageContent, and the required input type is indicated by CapturingDataType, which can be EMAIL, AMOUNT, PHONE_NUMBER, or ZIP_CODE.

  • Elements & Interaction:

  • Logo: (Optional) Worldline logo may be displayed at the top.

  • Title: A main heading for the screen, indicating the type of data to be captured.

  • Input Field(s): One or more fields where you can enter the requested data (e.g., a text field for email, a numeric field for amount).

  • Hint Text: Placeholder text within the input field to guide you on what to enter.

  • Primary Button (e.g., "Submit", "Confirm"): Tap this button to submit the entered data.

  • Secondary Button (e.g., "Cancel", "Clear"): Tap this button to dismiss the screen or clear the input fields.

Available custom icons in our UI library

Name Icon
ic_cloud

Image-2025-6-26_12-59-50.png

ic_email

Image-2025-6-26_12-56-19.png

ic_markunread_mailbox

Image-2025-6-26_12-56-8.png

ic_smiley_satisfied

Image-2025-6-26_12-56-39.png

ic_smiley_medium

Image-2025-6-26_12-56-46.png

ic_smiley_dissatisfied

Image-2025-6-26_12-56-50.png

ic_connector_chademo

Image-2025-6-26_12-58-9.png

ic_connector_combo

Image-2025-6-26_12-58-4.png

ic_connector_css

Image-2025-6-26_12-57-59.png

ic_connector_shuko

Image-2025-6-26_12-57-56.png

ic_connector_swiss

Image-2025-6-26_12-57-51.png

ic_connector_uk

Image-2025-6-26_12-57-32.png

ic_connector_type_1

Image-2025-6-26_12-57-45.png

ic_connector_type_2

Image-2025-6-26_12-57-40.png

ic_connector_type_3

Image-2025-6-26_12-57-37.png

ic_sms

Image-2025-6-26_12-57-2.png

ic_yes

Image-2025-6-26_13-1-31.png

ic_no

Image-2025-6-26_13-1-13.png

charging_cable_car

Image-2025-6-26_13-2-20.png

charging_cable_car_gif

Charging_cable_car.gif