---
id: config-update-digital-wallet-open-id-credential-history
title: "Issue deferred credential"
description: "Updates a credential exchange record. Used to issue a credential via the OID4VCI Deferred Credential Endpoint by providing the credential claims for a pending issuance."
sidebar_label: "Issue deferred credential"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "put 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"}>Issue deferred credential</h1>

<MethodEndpoint method={"put"} path={"/v2/config/digital-wallet/openid/sdjwt/credential/history/{credentialExchangeId}"}></MethodEndpoint>



Updates a credential exchange record. Used to issue a credential via the OID4VCI Deferred Credential Endpoint by providing the credential claims for a pending issuance.

## 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 the credential exchange record tracking a single OID4VCI credential issuance lifecycle.","in":"path","name":"credentialExchangeId","required":true,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><MimeTabs className={"openapi-tabs__mime"}><TabItem label={"application/json"} value={"application/json-schema"}><details style={{}} className={"openapi-markdown__details mime"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-mime"}><h3 className={"openapi-markdown__details-summary-header-body"}>Body</h3></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><div><span className={"badge badge--info"}>oneOf</span><SchemaTabs><TabItem label={"Default (all fields)"} value={"0-item-properties"}><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></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Updated credential object for the OID4VCI Deferred Credential Endpoint. Use `credentialSubject` for W3C VC (JWT) format, or `claims` for IETF SD-JWT VC and ISO 18013-5 mDoc/mDL formats.

</div><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentialSubject</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","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"}>claims</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem></TabItem><TabItem label={"IETF SD-JWT VC"} value={"1-item-properties"}><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></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Credential object for deferred issuance in IETF SD-JWT VC (`dc+sd-jwt`) format. Contains the `id` from the `credentialDefinitions` array and `claims` as flat key-value pairs.

</div><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The `id` field from a specific entry in the `credentialDefinitions` array of the create credential definition response."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>claims</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Flat key-value pairs representing the credential claims for IETF SD-JWT VC format. Keys are claim names (e.g. `given_name`, `birthdate`), values are the claim data.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Flat key-value pairs representing the credential claims for IETF SD-JWT VC format. Keys are claim names (e.g. `given_name`, `birthdate`), values are the claim data."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem></TabItem><TabItem label={"ISO 18013-5 mDoc/mDL"} value={"2-item-properties"}><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></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Credential object for deferred issuance in ISO 18013-5 mDoc/mDL (`mso_mdoc`) format. Contains the `id` from the `credentialDefinitions` array and `claims` namespaced under the doctype.

</div><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The `id` field from a specific entry in the `credentialDefinitions` array of the create credential definition response."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>claims</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Claims namespaced under the ISO 18013-5 mDoc/mDL doctype (e.g. `eu.europa.ec.eudi.pid.1`). The top-level key is the doctype namespace containing the data elements as key-value pairs.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Claims namespaced under the ISO 18013-5 mDoc/mDL doctype (e.g. `eu.europa.ec.eudi.pid.1`). The top-level key is the doctype namespace containing the data elements as key-value pairs."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem></TabItem><TabItem label={"W3C VC (JWT)"} value={"3-item-properties"}><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></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Credential object for deferred issuance in W3C VC (JWT) (`jwt_vc_json`) format. Contains the `id` from the `credentialDefinitions` array and `credentialSubject` for the claims.

</div><SchemaItem collapsible={false} name={"id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The `id` field from a specific entry in the `credentialDefinitions` array of the create credential definition response."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentialSubject</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

W3C Verifiable Credential subject containing the claims as key-value pairs following the W3C Verifiable Credentials Data Model.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"W3C Verifiable Credential subject containing the claims as key-value pairs following the W3C Verifiable Credentials Data Model."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem></TabItem></SchemaTabs></div></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Credential history updated successfully

</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"}>credentialHistory</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"CredentialExchangeId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the credential exchange record, tracking the full lifecycle of a single OID4VCI credential issuance."}}></SchemaItem><SchemaItem collapsible={false} name={"issuanceMode"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Issuance mode used for this exchange. `InTime` means the credential was issued immediately via the OID4VCI Credential Endpoint. `Deferred` means the credential is pending via the Deferred Credential Endpoint."}}></SchemaItem><SchemaItem collapsible={false} name={"isPreAuthorised"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the issuance used the OID4VCI Pre-Authorized Code Flow. When `false`, the Authorization Code Flow was used."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialOffer"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The OID4VCI Credential Offer URI or JSON sent to the holder to initiate the issuance flow."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialStatus"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`pending`, `ready`]"} schema={{"type":"string","enum":["pending","ready"],"description":"Processing status of the credential. `pending` means the credential is being prepared. `ready` means it is available for the holder to retrieve."}}></SchemaItem><SchemaItem collapsible={false} name={"status"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`offer_sent`, `offer_received`, `credential_issued`, `credential_acked`, `credential_accepted`, `credential_deleted`, `issuance_denied`]"} schema={{"type":"string","enum":["offer_sent","offer_received","credential_issued","credential_acked","credential_accepted","credential_deleted","issuance_denied"],"description":"Lifecycle status of the credential exchange in the OID4VCI protocol flow: `offer_sent` (Credential Offer sent to holder), `offer_received` (holder scanned/received offer), `credential_issued` (credential issued via Credential Endpoint), `credential_acked` (holder acknowledged receipt), `credential_accepted` (holder accepted credential), `credential_deleted` (holder deleted credential), `issuance_denied` (issuer denied issuance)."}}></SchemaItem><SchemaItem collapsible={false} name={"clientId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Client identifier of the holder's wallet, typically a DID or URL. Provided during the OID4VCI Token Request."}}></SchemaItem><SchemaItem collapsible={false} name={"userPin"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Transaction code (tx_code) for the Pre-Authorized Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when this exchange record was created."}}></SchemaItem><SchemaItem collapsible={false} name={"updatedAt"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when this exchange record was last modified."}}></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></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The credential payload being issued. Contains `type` and `credentialSubject` for W3C VC (JWT) format, or `vct`/`doctype` and `claims` for IETF SD-JWT VC / ISO 18013-5 mDoc/mDL formats.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"The credential payload being issued. Contains `type` and `credentialSubject` for W3C VC (JWT) format, or `vct`/`doctype` and `claims` for IETF SD-JWT VC / ISO 18013-5 mDoc/mDL formats."}} 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"}>disclosureMapping</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Selective disclosure mapping for IETF SD-JWT VC credentials. Each entry maps a claim path to its disclosure setting.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Selective disclosure mapping for IETF SD-JWT VC credentials. Each entry maps a claim path to its disclosure setting."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"presentationDefinitionId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of a presentation definition required for dynamic credential requests."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationExchangeId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the presentation exchange session linked to a dynamic credential request."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>holder</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Metadata about the credential holder obtained during the OID4VCI exchange.

</div><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the holder, typically a DID or display name resolved from wallet client metadata."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialFormat"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`jwt_vc_json`, `dc+sd-jwt`, `mso_mdoc`]"} schema={{"type":"string","description":"Credential format used for this issuance. Values: `jwt_vc_json` (W3C VC JWT), `dc+sd-jwt` (IETF SD-JWT VC), `mso_mdoc` (ISO 18013-5 mDoc/mDL).","enum":["jwt_vc_json","dc+sd-jwt","mso_mdoc"]}}></SchemaItem><SchemaItem collapsible={false} name={"supportRevocation"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether revocation is enabled for the issued credential."}}></SchemaItem><SchemaItem collapsible={false} name={"revocationStatus"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`Operational`, `Revoked`, `Suspended`]"} schema={{"type":"string","description":"Current revocation status: `Operational` (valid), `Revoked` (permanently invalidated), `Suspended` (temporarily invalidated).","enum":["Operational","Revoked","Suspended"]}}></SchemaItem><SchemaItem collapsible={false} name={"clientAssertion"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OAuth 2.0 client assertion JWT provided by the holder's wallet for client authentication."}}></SchemaItem><SchemaItem collapsible={false} name={"clientAssertionTokenType"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Type of the client assertion token."}}></SchemaItem><SchemaItem collapsible={false} name={"isClientAssertionVerified"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the holder's client assertion JWT was verified."}}></SchemaItem><SchemaItem collapsible={false} name={"walletUnitAttestation"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Wallet Unit Attestation (WUA) credential presented by the holder, certifying the wallet instance is genuine."}}></SchemaItem><SchemaItem collapsible={false} name={"walletUnitAttestationPoP"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Proof of Possession for the Wallet Unit Attestation."}}></SchemaItem><SchemaItem collapsible={false} name={"walletUnitAttestationVerified"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the Wallet Unit Attestation was verified."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>walletUnitValidity</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Array of wallet unit validity records containing attestation and proof of possession verification status.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>attestation</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Wallet unit attestation verification status.

</div><SchemaItem collapsible={false} name={"isExpired"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the attestation has expired."}}></SchemaItem><SchemaItem collapsible={false} name={"isRevoked"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the attestation has been revoked."}}></SchemaItem><SchemaItem collapsible={false} name={"isVerified"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the attestation was verified."}}></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"}>proofOfPossession</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Proof of possession verification status.

</div><SchemaItem collapsible={false} name={"isExpired"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the proof of possession has expired."}}></SchemaItem><SchemaItem collapsible={false} name={"isVerified"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the proof of possession was verified."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"validatedAt"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when the wallet unit validity was validated."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialToken"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The signed credential token (JWT, SD-JWT, or mDoc) issued to the holder."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>cnf</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Confirmation claim (`cnf`) containing the holder's public key JWK for key binding.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Confirmation claim (`cnf`) containing the holder's public key JWK for key binding."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"jti"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"JWT Token Identifier (`jti`), unique identifier for the issued credential token."}}></SchemaItem><SchemaItem collapsible={false} name={"proof"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Proof JWT provided by the holder in the OID4VCI Credential Request, demonstrating key possession."}}></SchemaItem><SchemaItem collapsible={false} name={"proofType"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Type of the proof provided in the Credential Request (e.g. `jwt`)."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>decodedWalletUnitAttestation</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Decoded payload of the holder's Wallet Unit Attestation credential.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Decoded payload of the holder's Wallet Unit Attestation credential."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"idToken"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OpenID Connect ID Token shared by the holder during the issuance flow."}}></SchemaItem><SchemaItem collapsible={false} name={"idTokenDecoded"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Decoded payload of the holder's OpenID Connect ID Token."}}></SchemaItem><SchemaItem collapsible={false} name={"idTokenVerified"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the holder's OpenID Connect ID Token was verified."}}></SchemaItem><SchemaItem collapsible={false} name={"issuanceDeniedReason"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Human-readable reason why the issuer denied the credential issuance request."}}></SchemaItem><SchemaItem collapsible={false} name={"expiredCredentialTokens"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Array of previously issued credential tokens that have expired."}}></SchemaItem><SchemaItem collapsible={false} name={"expiredCredentials"} required={false} schemaName={"object[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"object"},"description":"Array of decoded expired credential payloads."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentialResponseEncryption</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"alg"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"enc"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"jwk"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"issuerTrustServiceProvider"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"The details of issuer trust service provider"}}></SchemaItem><SchemaItem collapsible={false} name={"holderTrustServiceProvider"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"The details of holder trust service provider"}}></SchemaItem><SchemaItem collapsible={false} name={"individualId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the individual recipient the credential offer was sent to."}}></SchemaItem><SchemaItem collapsible={false} name={"mapperId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Mapper identifier linking the credential offer to an external individual record."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialResponseInterval"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Minimum polling interval (in seconds) for the OID4VCI Deferred Credential Endpoint."}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"credentialHistory\": {\n    \"CredentialExchangeId\": \"string\",\n    \"issuanceMode\": \"string\",\n    \"isPreAuthorised\": true,\n    \"credentialOffer\": \"string\",\n    \"credentialStatus\": \"pending\",\n    \"status\": \"offer_sent\",\n    \"clientId\": \"string\",\n    \"userPin\": \"string\",\n    \"createdAt\": 0,\n    \"updatedAt\": 0,\n    \"credential\": {},\n    \"disclosureMapping\": {},\n    \"presentationDefinitionId\": \"string\",\n    \"presentationExchangeId\": \"string\",\n    \"holder\": {\n      \"name\": \"string\"\n    },\n    \"credentialFormat\": \"jwt_vc_json\",\n    \"supportRevocation\": true,\n    \"revocationStatus\": \"Operational\",\n    \"clientAssertion\": \"string\",\n    \"clientAssertionTokenType\": \"string\",\n    \"isClientAssertionVerified\": true,\n    \"walletUnitAttestation\": \"string\",\n    \"walletUnitAttestationPoP\": \"string\",\n    \"walletUnitAttestationVerified\": true,\n    \"walletUnitValidity\": [\n      {\n        \"attestation\": {\n          \"isExpired\": true,\n          \"isRevoked\": true,\n          \"isVerified\": true\n        },\n        \"proofOfPossession\": {\n          \"isExpired\": true,\n          \"isVerified\": true\n        },\n        \"validatedAt\": 0\n      }\n    ],\n    \"credentialToken\": \"string\",\n    \"cnf\": {},\n    \"jti\": \"string\",\n    \"proof\": \"string\",\n    \"proofType\": \"string\",\n    \"decodedWalletUnitAttestation\": {},\n    \"idToken\": \"string\",\n    \"idTokenDecoded\": {},\n    \"idTokenVerified\": true,\n    \"issuanceDeniedReason\": \"string\",\n    \"expiredCredentialTokens\": [\n      \"string\"\n    ],\n    \"expiredCredentials\": [\n      {}\n    ],\n    \"credentialResponseEncryption\": {\n      \"alg\": \"string\",\n      \"enc\": \"string\",\n      \"jwk\": {}\n    },\n    \"issuerTrustServiceProvider\": {},\n    \"holderTrustServiceProvider\": {},\n    \"individualId\": \"string\",\n    \"mapperId\": \"string\",\n    \"credentialResponseInterval\": 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>
      