---
title: "Bespoke interaction on the terminal"
description: "Collect information using the terminal, and show information on the display."
url: "https://docs.adyen.com/unified-commerce/terminal-interaction"
source_url: "https://docs.adyen.com/unified-commerce/terminal-interaction.md"
canonical: "https://docs.adyen.com/unified-commerce/terminal-interaction"
last_modified: "2021-07-06T12:16:00+02:00"
language: "en"
---

# Bespoke interaction on the terminal

Collect information using the terminal, and show information on the display.

[View source](/unified-commerce/terminal-interaction.md)

You can use the payment terminal to interact with the customer, by sending input requests and display requests to the terminal.

* Using [input requests](#collect-information) you can collect personal details from customers, ask for their consent (for example, to store their details, or to enroll in your loyalty program), or get feedback.
* Using [display requests](#show-information) you can show static or animated images on the terminal display, a QR code with a URL to something that you want to draw attention to, or an overview of the customer's purchase.

## Requirements

To use payment terminals in this way:

* You need to have a Terminal API integration using either cloud or local communications.
* When using input requests, you need to implement logic in your back-end system to process the received input.
* When you collect personal details, you need to consider [data privacy](/unified-commerce/shopper-engagement#data-privacy).

### Data privacy

Before storing any customer data, including payment data, you need to consider data privacy.

* Consult your legal department or an accredited third-party company to understand the data privacy regulations of the countries/regions that you operate in.
* Ask for your customer's explicit permission to store their data, and be clear about what you intend to use it for. For this, you could use the Terms and Conditions on your website, or you can [use the payment terminal to interact with the customer](/unified-commerce/terminal-interaction).

If the customer asks to remove their information, you can use our [Data Protection API](/development-resources/data-protection-api) to remove any customer-related data that you have stored with Adyen. The API also enables you to comply with the General Data Protection Regulation (GDPR) [right to erasure](https://gdpr-info.eu/art-17-gdpr/).

## Collect information

An input request lets you gather information from your customer or staff. There are several types of input request:

* [Confirmation](/point-of-sale/shopper-engagement/shopper-input/confirmation): show some information and ask the user to confirm they agree.
* [Signature](/point-of-sale/shopper-engagement/shopper-input/signature): show some information and ask the user to confirm by supplying their signature.
* [Multiple choice—single answer](/point-of-sale/shopper-engagement/shopper-input/menu): show a multiple-choice question and let the user select one of the answers. You can use this for NPS surveys, order lists, and such.
* [Multiple choice—multiple answers](/point-of-sale/shopper-engagement/shopper-input/multi-menu): show a multiple-choice question and let the user select more than one of the answers.
* [Digit](/point-of-sale/shopper-engagement/shopper-input/digit): ask for numeric input, like a zip code. Another example is a pay-at-table flow where you ask your staff for the table number. This input accepts input of whole numbers.
* [Amount](/point-of-sale/shopper-engagement/shopper-input/amount): ask for an amount. This input request shows the currency and accepts input of a number with two decimals.
* [Phone number](/point-of-sale/shopper-engagement/shopper-input/phone-number): ask for a telephone number. The country code is prefilled based on the location of the terminal, but can be changed.
* [Rating](/point-of-sale/shopper-engagement/shopper-input/rating): show a question and let the user select a rating from 0 to 10.
* [Text](/point-of-sale/shopper-engagement/shopper-input/text): you'd typically use this to collect an email address.

For each input type, we provide predefined elements to show on the terminal display, and fields that you need to populate with your own text. The user enters a response with the terminal keypad or the on-screen keyboard and buttons.

You can make these input request before or after a payment, or as part of a payment flow involving [shopper recognition](/unified-commerce/loyalty-program). For example, if

Note that the communication flow is between your POS app and the terminal, and does not involve the Adyen backend. You need to process the collected input with your own business logic.

Here are some examples of what it looks like on terminal displays of various sizes when you ask for information through input requests.

|                                                                                                                |
| -------------------------------------------------------------------------------------------------------------- |
| Ask for personal details: ![](/images/d/3/a/2/a/d3a2a6c0d1d045c2bca02d98955a83c5e55b1a42-gettextlandscape.png) |

|                                                                                                                                       |                                                                                                              |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| Get a rating: ![](/user/pages/docs/06.unified-commerce/13.terminal-interaction/GetNPS_portrait.svg?decoding=auto\&fetchpriority=auto) | Ask for consent: ![](/images/2/9/0/7/9/2907944f06aff397104da78d724e1b9f7d7835b2-getconfirmationportrait.png) |

For more examples and implementation instructions, refer to our [Terminal API input request documentation](/point-of-sale/shopper-engagement/shopper-input).

## Show information

A display request lets you show information on the display of the payment terminal outside of a payment flow. You can:

* Engage shoppers by [showing an image](/point-of-sale/shopper-engagement/display-data/display-image) in PNG, JPEG, GIF, or BMP format. For example, an advertisement or an offer generated by the POS app.
* [Show a QR code](/point-of-sale/shopper-engagement/display-data/display-qr-code) that the shopper can scan with their mobile device. For example, a QR code with the URL to join your loyalty program or to download an app.
* [Show a virtual receipt](/point-of-sale/shopper-engagement/display-data/display-receipt) with an overview of the customer's purchase, before you initiate payment.

Here are some examples of what it looks like on terminal displays of various sizes when you make a display request.

|                                                                                                                    |
| ------------------------------------------------------------------------------------------------------------------ |
| Show an image: ![](/images/0/0/8/1/5/0081584003f7c864f027ecbf2cd5f71b3cba81cb-showimagelandscape.png "Show image") |

|                                                                                                                       |                                                                                                                             |
| --------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| Show a QR code: ![](/images/0/9/1/5/5/09155c57f83d498a41d90158035c3a92f44ae68e-showqrcodeportrait.png "Show QR code") | Show a virtual receipt: ![](/images/2/d/2/b/8/2d2b8fdcc0c7f52deb8a536e87df9af57bfabf02-lineitemportrait.png "Show receipt") |

For more examples and implementation instructions, refer to our [Terminal API display request documentation](/point-of-sale/shopper-engagement/display-data).

## See also

* [Shopper engagement](/unified-commerce/shopper-engagement)
* [Input requests](/point-of-sale/shopper-engagement/shopper-input)
* [Display requests](/point-of-sale/shopper-engagement/display-data)
