---
id: config-read-digital-wallet-open-id-notification
title: "Read notification"
description: "Retrieves a wallet notification by its ID for OID4VCI or OpenID4VP events."
sidebar_label: "Read notification"
hide_title: true
hide_table_of_contents: true
api: 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
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 notification</h1>

<MethodEndpoint method={"get"} path={"/v2/config/digital-wallet/openid/notification/{notificationId}"}></MethodEndpoint>



Retrieves a wallet notification by its ID for OID4VCI or OpenID4VP events.

## 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":"Unique identifier of an OID4VCI credential lifecycle notification.","in":"path","name":"notificationId","required":true,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div></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={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>notification</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the notification."}}></SchemaItem><SchemaItem collapsible={false} name={"notificationType"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`credential_acked`, `credential_revoked`, `credential_expired`]"} schema={{"type":"string","description":"Type of the OID4VCI notification event. `credential_acked` (holder acknowledged), `credential_revoked` (issuer revoked), `credential_expired` (credential expired).","enum":["credential_acked","credential_revoked","credential_expired"]}}></SchemaItem><SchemaItem collapsible={false} name={"notificationTypeRelatedId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the related resource (e.g. credential exchange ID)."}}></SchemaItem><SchemaItem collapsible={false} name={"notificationContent"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"JSON object containing the notification payload details."}}></SchemaItem><SchemaItem collapsible={false} name={"status"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`read`, `unread`]"} schema={{"type":"string","description":"Read status. `unread` for new notifications, `read` for viewed.","enum":["read","unread"]}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when the notification was created."}}></SchemaItem><SchemaItem collapsible={false} name={"updatedAt"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when the notification was last modified."}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"notification\": {\n    \"id\": \"string\",\n    \"notificationType\": \"credential_acked\",\n    \"notificationTypeRelatedId\": \"string\",\n    \"notificationContent\": {},\n    \"status\": \"read\",\n    \"createdAt\": 0,\n    \"updatedAt\": 0\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

</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></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</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></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      