---
id: config-read-digital-wallet-open-id-credential
title: "Read credential"
description: "Retrieves a credential stored in the holder's wallet by its ID."
sidebar_label: "Read credential"
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 credential</h1>

<MethodEndpoint method={"get"} path={"/v2/config/digital-wallet/openid/sdjwt/credential/{credentialId}"}></MethodEndpoint>



Retrieves a credential stored in the holder's wallet by its ID.

## 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 a credential stored in the holder's wallet.","in":"path","name":"credentialId","required":true,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

The wallet found the credential.

</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"}>credential</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Credential record that the holder wallet stores. The wallet always returns every field. A field that has no value is returned with its empty value: `""` for a string, `0` for a number, `false` for a boolean and `null` for an object or an array.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier of the credential record. This field holds the same value as `credentialId`."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the credential stored in the holder's wallet."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialExchangeId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential exchange that produced this credential."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The raw JWT, SD-JWT, or mDoc token of the issued Verifiable Credential as received from the issuer's OpenID for Verifiable Credentials Issuance (OID4VCI) Credential Endpoint."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credential</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Decoded payload of the Verifiable Credential token. Contains the parsed claims from the W3C VC (JWT), IETF SD-JWT VC, or ISO 18013-5 mDoc/mDL credential. The field is `null` while the wallet waits for the credential.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","description":"Decoded payload of the Verifiable Credential token. Contains the parsed claims from the W3C VC (JWT), IETF SD-JWT VC, or ISO 18013-5 mDoc/mDL credential. The field is `null` while the wallet waits for the credential.","additionalProperties":true}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `offer_sent`, `offer_received`, `token_issued`, `credential_issued`, `credential_pending`, `credential_acked`, `credential_accepted`, `credential_deleted`, `issuance_denied`]"} schema={{"type":"string","enum":["","offer_sent","offer_received","token_issued","credential_issued","credential_pending","credential_acked","credential_accepted","credential_deleted","issuance_denied"],"description":"Current status of the credential in the holder's wallet. A stored credential normally holds one of three values. `credential_pending` means the credential needs more steps, for example a transaction code or a call to the OID4VCI Deferred Credential Endpoint. `credential_acked` means the wallet received and stored the credential. `credential_accepted` means the holder accepted the credential. The other values come from the issuance lifecycle and can appear while the exchange is in progress."}}></SchemaItem><SchemaItem collapsible={false} name={"acceptanceToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Acceptance token (transaction_id in OID4VCI) returned for deferred issuance. The wallet uses this to poll the Deferred Credential Endpoint."}}></SchemaItem><SchemaItem collapsible={false} name={"deferredEndpoint"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL of the OID4VCI Deferred Credential Endpoint. Present for deferred issuance."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialIssuer"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential Issuer Identifier as defined in OID4VCI. Typically the issuer's base URL used to resolve the Credential Issuer Metadata."}}></SchemaItem><SchemaItem collapsible={false} name={"preAuthorisedCode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Pre-authorized code from the credential offer. Present for the OID4VCI Pre-Authorized Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"userPin"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Transaction code (tx_code) required for the OID4VCI Pre-Authorized Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Unix timestamp (in seconds) when this credential record was created.","example":1750000000}}></SchemaItem><SchemaItem collapsible={false} name={"updatedAt"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Unix timestamp (in seconds) when this credential record was last modified.","example":1750000600}}></SchemaItem><SchemaItem collapsible={false} name={"issuedAt"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Unix time (seconds) when the issuer issued the credential.","example":1750000600}}></SchemaItem><SchemaItem collapsible={false} name={"openIdOrganisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier of the OpenID organisation (digital wallet deployment) that holds this credential."}}></SchemaItem><SchemaItem collapsible={false} name={"organisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier of the organisation that holds this credential."}}></SchemaItem><SchemaItem collapsible={false} name={"userPinRequired"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the holder must provide a transaction code (tx_code) to complete the OID4VCI Pre-Authorized Code Flow Token Request."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialFormat"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `vc+sd-jwt`, `vp+sd-jwt`, `dc+sd-jwt`, `jwt_vc_json`, `jwt_vc`, `mso_mdoc`]"} schema={{"type":"string","enum":["","vc+sd-jwt","vp+sd-jwt","dc+sd-jwt","jwt_vc_json","jwt_vc","mso_mdoc"],"description":"Format of the received credential as defined in OID4VCI. `jwt_vc_json` and `jwt_vc` are W3C VC (JWT) formats, `vc+sd-jwt`, `vp+sd-jwt`, and `dc+sd-jwt` are IETF SD-JWT VC formats, and `mso_mdoc` is the ISO 18013-5 mDoc/mDL format. The field is empty until the wallet knows the format."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier linking this credential to a presentation exchange, if received as part of a dynamic issuance flow involving OpenID for Verifiable Presentation (OpenID4VP)."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>issuer</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Display information about the credential issuer, resolved from the Credential Issuer Metadata of the issuer. The wallet always returns the five fields, with empty strings when it cannot resolve the metadata.

</div><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Display name of the issuer."}}></SchemaItem><SchemaItem collapsible={false} name={"location"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Location of the issuer."}}></SchemaItem><SchemaItem collapsible={false} name={"cover"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL of the issuer's cover image."}}></SchemaItem><SchemaItem collapsible={false} name={"logo"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL of the issuer's logo image."}}></SchemaItem><SchemaItem collapsible={false} name={"description"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Description of the issuer."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentialConfigurations</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Credential configuration from the Credential Issuer Metadata of the issuer that applies to this credential. The keys follow the OID4VCI metadata format, for example `vct`, `doctype`, `credential_definition` and `display`.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","description":"Credential configuration from the Credential Issuer Metadata of the issuer that applies to this credential. The keys follow the OID4VCI metadata format, for example `vct`, `doctype`, `credential_definition` and `display`.","additionalProperties":true}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>txCode</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Transaction code (`tx_code`) parameters taken from the OID4VCI Credential Offer. The keys use snake case because they mirror the OID4VCI wire format. The wallet returns `{"length": 0, "input_mode": "", "description": ""}` when the offer has no transaction code.

</div><SchemaItem collapsible={false} name={"length"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of characters that the transaction code has. The value is `0` when the offer has no transaction code.","example":4}}></SchemaItem><SchemaItem collapsible={false} name={"input_mode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Input method for the transaction code, as defined in OID4VCI. `numeric` accepts digits only. `text` accepts alphanumeric characters. The wallet stores the value that the issuer sends and does not check it. The value is empty when the offer has no transaction code.","example":"numeric"}}></SchemaItem><SchemaItem collapsible={false} name={"description"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Instruction for the holder that explains how to get the transaction code."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>authorizationDetails</strong><span className={"openapi-schema__name"}> object[]</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Authorization details that the issuer returned in the OID4VCI Token Response. The field is `null` for the Pre-Authorized Code Flow.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"type"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Authorization detail type. The value is `openid_credential` for an OID4VCI credential issuance request.","example":"openid_credential"}}></SchemaItem><SchemaItem collapsible={false} name={"credential_configuration_id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential configuration in the Credential Issuer Metadata of the issuer.","example":"PhotoIdCredential"}}></SchemaItem><SchemaItem collapsible={false} name={"credential_identifiers"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","description":"Credential identifiers that the issuer returned in the OID4VCI Token Response. The wallet sends one of these values in the Credential Request.","items":{"type":"string"}}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"revocationStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `Operational`, `Revoked`, `Suspended`]"} schema={{"type":"string","description":"Current revocation status. `Operational` means valid, `Revoked` means permanently invalidated, `Suspended` means temporarily invalidated. The field is empty when the wallet never checked the status, or when the credential does not support revocation.","enum":["","Operational","Revoked","Suspended"]}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidAttestation"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Legal Person Identification (LPID) attestation credential of the issuer, used to verify the issuer's legal identity in the EUDI Wallet ecosystem."}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidAttestationPop"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Proof of Possession (PoP) for the issuer's LPID attestation, proving the issuer controls the associated private key."}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidVerified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the issuer's LPID attestation has been successfully verified."}}></SchemaItem><SchemaItem collapsible={false} name={"autoPresent"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the wallet automatically presents this credential when a matching OpenID4VP Authorization Request is received."}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`version_01`]"} schema={{"type":"string","description":"Version of the OID4VCI issuance protocol used for this credential. The default is `draft_13`.","enum":["version_01"]}}></SchemaItem><SchemaItem collapsible={false} name={"cryptographicKeyIdentifier"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Key identifier (`kid`) of the signing key."}}></SchemaItem><SchemaItem collapsible={false} name={"cryptographicKeyFormat"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `did:key`, `x509`]"} schema={{"type":"string","description":"Format of the signing key: `did:key` or `x509`.","enum":["","did:key","x509"]}}></SchemaItem><SchemaItem collapsible={false} name={"expiredCredentialTokens"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","description":"Array of previously issued credential tokens that have expired.","items":{"type":"string"}}}></SchemaItem><SchemaItem collapsible={false} name={"expiredCredentials"} required={true} schemaName={"object[]"} qualifierMessage={undefined} schema={{"type":"array","description":"Array of decoded expired credential payloads.","items":{"type":"object","additionalProperties":true}}}></SchemaItem><SchemaItem collapsible={false} name={"requiresEncryption"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the issuer requires encrypted OID4VCI Credential Responses for this credential."}}></SchemaItem><SchemaItem collapsible={false} name={"isVerifiedWithTrustList"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the issuer of this credential was verified against a configured trust list."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>trustServiceProvider</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Details of the trust service provider entry that matched the issuer during trust list verification. The field is `null` when the wallet found no match.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","description":"Details of the trust service provider entry that matched the issuer during trust list verification. The field is `null` when the wallet found no match.","additionalProperties":true}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"oAuthFlow"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [``, `frontchannel`, `backchannel`]"} schema={{"type":"string","description":"OAuth 2.0 flow used for credential issuance. `frontchannel` uses browser redirects, `backchannel` uses server-to-server communication. The field is empty for the Pre-Authorized Code Flow.","enum":["","frontchannel","backchannel"]}}></SchemaItem><SchemaItem collapsible={false} name={"authorizationRequest"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OAuth 2.0 authorization request URL for the Authorization Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"isWalletUnitAttestation"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, this credential is a Wallet Unit Attestation (WUA) and not a regular credential. Reissuance requests are not applicable to it."}}></SchemaItem><SchemaItem collapsible={false} name={"notificationId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"`notification_id` from the issuer, for the OpenID4VCI Notification Endpoint."}}></SchemaItem><SchemaItem collapsible={false} name={"notificationEndpoint"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Notification Endpoint of the issuer."}}></SchemaItem><SchemaItem collapsible={false} name={"notificationSent"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"`true` after the wallet sent the notification to the issuer."}}></SchemaItem><SchemaItem collapsible={false} name={"accessTokenType"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Type of the access token from the issuer, for example `bearer` or `DPoP`."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dpopJwk</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

JSON Web Key (JWK) representing the holder's public key for DPoP binding.

</div><SchemaItem collapsible={false} name={"alg"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Algorithm intended for use with the key.","example":"ES256"}}></SchemaItem><SchemaItem collapsible={false} name={"crv"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Cryptographic curve.","example":"P-256"}}></SchemaItem><SchemaItem collapsible={false} name={"kid"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Key ID used to match a specific key.","example":"holder-binding-1f3313ef9aa943ef9ae0400a7c1f60ac-b55eca95c94245bfb1b4b23e72b57d23"}}></SchemaItem><SchemaItem collapsible={false} name={"kty"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Key type.","example":"EC"}}></SchemaItem><SchemaItem collapsible={false} name={"x"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"X coordinate for the EC public key (Base64URL encoded).","example":"faUHD5Av6fIPPSuHSyoEwcU1AX1uB_ribM69rHFbS8A"}}></SchemaItem><SchemaItem collapsible={false} name={"y"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Y coordinate for the EC public key (Base64URL encoded).","example":"g4K2Gv0wigHmPjWi724brAFqg_xleKttWxF55lAGTS4"}}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"credential\": {\n    \"id\": \"string\",\n    \"credentialId\": \"string\",\n    \"credentialExchangeId\": \"string\",\n    \"credentialToken\": \"string\",\n    \"credential\": {},\n    \"credentialStatus\": \"\",\n    \"acceptanceToken\": \"string\",\n    \"deferredEndpoint\": \"string\",\n    \"credentialIssuer\": \"string\",\n    \"preAuthorisedCode\": \"string\",\n    \"userPin\": \"string\",\n    \"createdAt\": 1750000000,\n    \"updatedAt\": 1750000600,\n    \"issuedAt\": 1750000600,\n    \"openIdOrganisationId\": \"string\",\n    \"organisationId\": \"string\",\n    \"userPinRequired\": true,\n    \"credentialFormat\": \"\",\n    \"presentationId\": \"string\",\n    \"issuer\": {\n      \"name\": \"string\",\n      \"location\": \"string\",\n      \"cover\": \"string\",\n      \"logo\": \"string\",\n      \"description\": \"string\"\n    },\n    \"credentialConfigurations\": {},\n    \"txCode\": {\n      \"length\": 4,\n      \"input_mode\": \"numeric\",\n      \"description\": \"string\"\n    },\n    \"authorizationDetails\": [\n      {\n        \"type\": \"openid_credential\",\n        \"credential_configuration_id\": \"PhotoIdCredential\",\n        \"credential_identifiers\": [\n          \"string\"\n        ]\n      }\n    ],\n    \"revocationStatus\": \"\",\n    \"legalPidAttestation\": \"string\",\n    \"legalPidAttestationPop\": \"string\",\n    \"legalPidVerified\": true,\n    \"autoPresent\": true,\n    \"version\": \"version_01\",\n    \"cryptographicKeyIdentifier\": \"string\",\n    \"cryptographicKeyFormat\": \"\",\n    \"expiredCredentialTokens\": [\n      \"string\"\n    ],\n    \"expiredCredentials\": [\n      {}\n    ],\n    \"requiresEncryption\": true,\n    \"isVerifiedWithTrustList\": true,\n    \"trustServiceProvider\": {},\n    \"oAuthFlow\": \"\",\n    \"authorizationRequest\": \"string\",\n    \"isWalletUnitAttestation\": true,\n    \"notificationId\": \"string\",\n    \"notificationEndpoint\": \"string\",\n    \"notificationSent\": true,\n    \"accessTokenType\": \"string\",\n    \"dpopJwk\": {\n      \"alg\": \"ES256\",\n      \"crv\": \"P-256\",\n      \"kid\": \"holder-binding-1f3313ef9aa943ef9ae0400a7c1f60ac-b55eca95c94245bfb1b4b23e72b57d23\",\n      \"kty\": \"EC\",\n      \"x\": \"faUHD5Av6fIPPSuHSyoEwcU1AX1uB_ribM69rHFbS8A\",\n      \"y\": \"g4K2Gv0wigHmPjWi724brAFqg_xleKttWxF55lAGTS4\"\n    }\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

The organisation is not valid or the credential ID is unknown. Holder operations are also not available for a sandbox organisation.

</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={"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>
      