--- 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/f/b/8/d/4/fb8d4fedf6daf1771fae70d948a547ad2296d79a-screen-enshowimageportrait.png) ![](/images/a/c/e/4/a/ace4a26351a350733a3e0a8afaeaa02afd0bf22d-screen-enshowimageportrait-small.png) ![](/images/1/d/d/5/8/1dd5882c7d271a5108a5c49a7ca1a4de4db938ff-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)