---
title: "Show an image on the terminal"
description: "Engage your shoppers by showing an ad or other image on the display of the payment terminal."
url: "https://docs.adyen.com/point-of-sale/shopper-engagement/display-data/display-image"
source_url: "https://docs.adyen.com/point-of-sale/shopper-engagement/display-data/display-image.md"
canonical: "https://docs.adyen.com/point-of-sale/shopper-engagement/display-data/display-image"
last_modified: "2025-03-14T16:18:00+01:00"
language: "en"
---

# Show an image on the terminal

Engage your shoppers by showing an ad or other image on the display of the payment terminal.

[View source](/point-of-sale/shopper-engagement/display-data/display-image.md)

You can show an image on the display of the payment terminal, for example an advertisement, or a special offer that is generated by your POS app. By showing an image, you can use your terminal to increase shopper loyalty, or for marketing purposes.

The image can be a PNG, JPEG, GIF, or BMP file that you convert to Base64.

The terminal shows the image during the time you set in the request. If you do not set a time-out, the image continues to be shown until you send another request. For example, a payment request, a request for a different image, or a request to [show the standby screen](/point-of-sale/shopper-engagement/display-data/idle-display).

The following illustrations show an image on a portrait, small portrait, and landscape display.

![](/images/e/7/2/4/5/e72453405f2a3a77a8fa96dae13e8c78f1f8d6ef-screen-enshowimageportrait.png)

![](/images/e/4/e/d/4/e4ed4a505643dd470d45628aec2106a587327999-screen-enshowimageportrait-small.png)

![](/images/b/b/1/7/d/bb17d2b234d306e315648d277e7834ff6c7d502d-screen-enshowimagelandscape.png)

### Security

The terminal never runs or stores an image that it receives. The terminal only decodes the image, to be able to show it on the display.

## Make a display request for an image

1. Convert a PNG, JPEG, GIF, or BMP image file to Base64.

2. Make a [Terminal API](/point-of-sale/design-your-integration/terminal-api) display request, specifying:

   * The standard [`SaleToPOIRequest.MessageHeader` ](/point-of-sale/design-your-integration/terminal-api#request-message-header)object, with `MessageClass` set to **Device** and `MessageCategory` set to **Display**.

     | Parameter         | Required                                                                                    | Description                                                                                                                                                 |
     | ----------------- | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
     | `ProtocolVersion` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | **3.0**                                                                                                                                                     |
     | `MessageClass`    | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | **Device**                                                                                                                                                  |
     | `MessageCategory` | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | **Display**                                                                                                                                                 |
     | `MessageType`     | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | **Request**                                                                                                                                                 |
     | `ServiceID`       | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (`POIID`) being used. |
     | `SaleID`          | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Your unique ID for the POS system component to send this request from.                                                                                      |
     | `POIID`           | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The unique ID of the terminal to send this request to. Format: *\[device model]-\[serial number]*.                                                          |

   - The [DisplayRequest.DisplayOutput](https://docs.adyen.com/api-explorer/terminal-api/latest/post/display#request-DisplayOutput) array with one item containing:

     | Parameter                                     | Description                                                                                                                                                                                                                                               |
     | --------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
     | `Device`                                      | **CustomerDisplay**                                                                                                                                                                                                                                       |
     | `InfoQualify`                                 | **Display**                                                                                                                                                                                                                                               |
     | `MinimumDisplayTime`                          | The number of seconds that the image is shown. If you omit this parameter, the terminal shows the image until you send another request, for example, a request to [show the standby screen](/point-of-sale/shopper-engagement/display-data/idle-display). |
     | `OutputContent.OutputFormat`                  | **MessageRef**                                                                                                                                                                                                                                            |
     | `OutputContent.PredefinedContent.ReferenceID` | **Image**                                                                                                                                                                                                                                                 |
     | `OutputContent.OutputText`                    | An array with a `Text` parameter containing the image as a Base64-encoded string.                                                                                                                                                                         |

   **Display request for an image**

   ```json
   {
      "SaleToPOIRequest":{
         "MessageHeader":{
            "ProtocolVersion":"3.0",
            "MessageClass":"Device",
            "MessageCategory":"Display",
            "MessageType":"Request",
            "ServiceID":"043001",
            "SaleID":"POSSystemID12345",
            "POIID":"V400m-346403161"
         },
         "DisplayRequest":{
            "DisplayOutput":[
               {
                  "Device":"CustomerDisplay",
                  "InfoQualify":"Display",
                  "MinimumDisplayTime":60,
                  "OutputContent":{
                     "OutputFormat":"MessageRef",
                     "PredefinedContent":{
                        "ReferenceID":"Image"
                     },
                     "OutputText":[
                        {
                           "Text":"iVBORw0KGgoAAAAN...AAASUVORK5CYII="
                        }
                     ]
                  }
               }
            ]
         }
      }
   }
   ```

3. Check the result.

   * If an error occurs while decoding the image, the image will not be shown.
   * If the request is successful, the [OutputResult](https://docs.adyen.com/api-explorer/terminal-api/latest/post/display#responses-200-OutputResult) includes `Response.Result`: **Success**.

   **Display response**

   ```json
   {
       "SaleToPOIResponse": {
           "DisplayResponse": {
               "OutputResult": [
                   {
                       "Device": "CustomerDisplay",
                       "InfoQualify": "Display",
                       "Response": {
                           "Result": "Success"
                       }
                   }
               ]
           },
           "MessageHeader": {...}
       }
   }
   ```

## See also

* [Show a virtual receipt on the display](/point-of-sale/shopper-engagement/display-data/display-receipt)
* [Set the display to standby](/point-of-sale/shopper-engagement/display-data/idle-display)
* [Let your shopper scan a QR code on the terminal display.](/point-of-sale/shopper-engagement/display-data/display-qr-code)
