---
id: config-read-digital-wallet-open-id-global-configuration-cover-image
title: "Read issuer configuration cover image"
description: "Returns the cover image of the issuer configuration as image bytes: the image of [Update issuer configuration cover image](/docs/openid4vc-api/config-update-digital-wallet-open-id-global-configuration-cover-image). After that upload, `definitionDefaults.display.backgroundImage.uri` of the issuer configuration is the URL of this call, with the ID of the issuer configuration in the path. The call is public: it needs no `Authorization` header."
sidebar_label: "Read issuer configuration cover image"
hide_title: true
hide_table_of_contents: true
api: eJztWF1v27gS/SsDPtmAJNuJux++i+Jm7TRwb9EGTdosEAQVLY4tNjKpJSk7voH/+8WQki0nTvuyD3cXfUpMcYbDM4fDM3xkAkuDGXco2GjOC4sRE2gzI0sntWIj9hFdZZQFlyNkeoUG5JIvEPTcD0lrKzSQaTWXi8pwsgJu60mzjUM7ChMbq9tPpeDuBcvWCnedntCZ7ekSlRTDVRbzUvbC9LjyPmIhF9LxIl7zokAX09RYinhR6Bkv4gPXsXcde9fdBM7mDg24nDuoykJzEUEqcC6VpMkTnPOqcDYR0pYF3yQznt0vjK6UmJKDpDIy/SYEMiD26eO7ME1ayHhRRLCWLvefppNvO1D+W8ldnsA1gc+LgtyW1ayQ2QikA4UoLCgN6Vnlcm3kf71tCjlygSZhEdMlBodTwUYsLPERuZgE5G48cB9KVFNx4VEbt6MYE2Z+xyxiJTd8iQ6NZaPbxyc0uf7ujiJPC/VNmAu90AFbrsRfmxDuE85VTcSQdEJIUvgEM4uY4kvcwVTtgIuYwT8raeiQOFNhxGyW45Kz0SNzm5JMrDNSLdg2YvjAl2VBY7OfxWA+5CfxL9kpxkP+6yD+df7qJO6L0+wn/JkPZsNXbHtH3m2plUVLDk/6ffrzHN7WkQqMSMdaOVQuvt6U2CSdKMKLNd9YSL1F72uJizQCXlgNc22Aw+X7iwgupm9AG7jB2WVwTWBkwSMFsDemXy9tOGJzbZbc0Xal4mbDttttxEIstB/6NQxbajnnZVnIzOPb+2ppi+0l9mjfMjRGm7EWxED//6QFzF3UhKNnXzFzxFJDlHcygLm33kculcMFGtZK1bDf3x5xf2S3++z+zgVIVVYOdgeDNU7+g5tjxoc5PQOHDw4yLXbV1OC8srwIdUlopMPtIMu5WiCscww1IZj5QZvAB1VswOrlztpCzlcI0kU+3XXEkGqz4EpaD/oXW9kSlUCRRpDOkbvK4BchLZ8VKFIiRlpWptQWv+CDtM6mCWWWsnm4i/f6+HnLuQ1lbzoZQfqGywIFOA0LdN8t/TDbgBQj+O3JQXydEkefcmv4g1v/UG5dv1TMiVxKtykzgnR6bOYzCh2xPcKqVz8q1j+aVRYNpT/jisI1yIWP0zptUOyvwzYpthGzmFVGug0b3VIe+YKUEKulFAQtBR2vpibDz+Mui9gxUhIJHmK5MFy5WBciNrpyPt9LdLkmoXZxfu0Vl8vZiPVWJ7Xu7R0K3lob947p3d7j4rmem4ptzxNf1ppuhcYGVFYn/ZOfkkE/eQgixqGiL0Hr3RM7jsUcsRUvqv+n2ElP7UJZoGuHMmxC0WvbC4Wld7Cw7T1mR9eMm0UDcY4p4Akudc0rFrHKFGzEcudKO+r1BC41tS9JADCRmm2jpw4ujRZV5qvWC26+5+HK8YVUi5fMbfj8NJC7PbGvqKCFOnRWysOawMNALZjDydhL5oMG5FnhuEIVDtjZ5RTucdN0N8f7ln2PVBqcywdIQzCQQsd/4mBLnmF39MTBCOqJv/FSxve4eZ0mMDZI7SZvryu4zWeaGwGVogXPskxXysFrmOAKC6rHFKpN4MybWceNsyGuVK/t/Zf0X4cedUF+3t5cUwVbQifFzdskSdIuCR4L6bA/SBM451kOu5YMCLvQJ9pMlxiKKP0kx765G9Wr0Mq6ctT0Nf5O0yY6H5ZWu5ocYvEuLaSB0KFAauV3nVLhCw0lrtBswB/mGot0f06CEf1uDHdLanNvQVMhbwBo1Woys1yJmX44HPcblCQAYUa9Gzg9AqH9nWGJI+kf8VUw/GAWU5GGvUkHHa60y/EFv3tMuglcazBYFjyrkx5B1lBA4ZqAiqCy4bpxdEMJLNBhAx1NSOAmlwVZlAV3PqNcLGUQHruL6Pm+O77JCq2mdDZ49geaCISiG9WAe+zrvVmP6J4mNc2aazl98R4MXWAop3tWWeikh6Uu7RIz+DdSsuZ1rCiAK7smGgwH/SaUg/UF8szJFT0Z+RuWCsJcN2qJZ14t4ZJLKj22Kktt3L/35WZXMeTFfuiwTrVL3DFF2Bj6akKC4VkeAiajIB4p/QKVkyQ0/IZ2N/QUBkk/ArpU5htyszyccBm+50SLtpea8w30c9joyhyEEPkXDJ45evXgzczS6JWklxmYOqixsTA9v34DV5OYqsfncQTTqw+96fkYBr/0B6fxK1gKnUFnOXnX9U5vTsfweQydtzfX3XZUns1w/mkybaQIzT6vSF5yBb9XViq0tvlYGj2XBdoQKZk2Qmbc2unZ5ZSEUCEzVNbf803BL3mWI5wk/Wf5W6/XCfefE20WvdrW9t5Nx+fvr85jstlGzElXHBDB51PorFqics1Fsr/lT/onw+Q0GZBtqa1bctWKhx61vttYPr2YWgr/x0Pn3/uhs1Yp1Gn0yoJLRTTxvHysBeAtWw3DE9dcUm+j15bUjI9pN94IQRax0fNnwLYWvItYrq0jv4+PM27xkym2Wxr+s0JT9wgrbiQ1KEEv1s3K8Zf2Nhc7H+t+sgt/34fVoxlpxKTa7HsHxqK6w3iK+PZu95bY6kPOsgxL17JvPVUeyH/qRLbb/wEqXMsq
sidebar_class_name: "get api-method"
info_path: docs/openid4vc-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>Read issuer configuration cover image</h1>

<MethodEndpoint method={"get"} path={"/v4/config/ows/issuer/configurations/{configurationId}/cover-image"}></MethodEndpoint>



Returns the cover image of the issuer configuration as image bytes: the image of [Update issuer configuration cover image](/docs/openid4vc-api/config-update-digital-wallet-open-id-global-configuration-cover-image). After that upload, `definitionDefaults.display.backgroundImage.uri` of the issuer configuration is the URL of this call, with the ID of the issuer configuration in the path. The call is public: it needs no `Authorization` header.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"The ID of the issuer configuration, as in `definitionDefaults.display.logo.uri` and `definitionDefaults.display.backgroundImage.uri` of the issuer configuration after an image upload.","in":"path","name":"configurationId","required":true,"schema":{"type":"string"},"example":"b7d1f4a2-8c3e-4a91-9f52-0d3c6e7a1b45"}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

The image bytes. The `Content-Type` header is always `image/jpeg`, also for a PNG, GIF or WebP image.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"image/jpeg"} value={"image/jpeg"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem","marginLeft":"1rem"}}>

string

</div></ul></details></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

No issuer configuration has this ID: `Failed to get issuer configuration cover image by id: <configurationId>`.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"404"} value={"404"}><div>

The issuer configuration has no cover image: `Issuer configuration <configurationId> has no cover image`.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

The server cannot read the stored image.

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      