---
id: config-digital-wallet-open-id-issue-credential
title: "Issue credential"
description: "Issues a Verifiable Credential to a holder using the OpenID for Verifiable Credentials Issuance (OID4VCI) protocol. Supports two issuance modes: **InTime** (credential issued immediately via the Credential Endpoint) and **Deferred** (credential issued later via the Deferred Credential Endpoint by calling the [Issue deferred credential](/docs/openid4vc-api/config-update-digital-wallet-open-id-credential-history) API). Supports W3C VC (JWT), IETF SD-JWT VC, and ISO 18013-5 mDoc/mDL credential formats."
sidebar_label: "Issue credential"
hide_title: true
hide_table_of_contents: true
api: eJztGdty2zb2VzB4sr0kdbFsJ5xMprbl7Cq92FO59oPjsWHyiEJMAiwASlE1+pv+SX9s5wC8SZHTrjdpt9vmIaYAnINzv2FJY9CR4rnhUtCQjrQuQBNGrkDxCWcPKZBTBTEIw1lKjCSMTGUagyKF5iIhZgrkPAcxGpKJVNvBNEG0TERAds5Hw8HV6WiX5EoaGck0IOMiz6Uympi5JLw6mckYdEj29kbikmewt0d2ooYQPAYx4VkGMWcG0gWZcWapaZF7JuJccmF2CRMx2dsbwgSUgng7spQZUDWa6uw2fORhQSKWppUAbqzYSFyBNLhvdzqxjHRH5iB4PJhFPst5J5JiwhO/yGNmwI95wg1L/TlLUzA+HvV57DdI/CnXRqrFLjm+GO22BHa9f0quTsnO2+vLXY+Mzi7fkPHQf3t9Sa5OPcvzaHxOei+6vX3/gGRDGXWy4Tct8lBnGTM6eCeoR2UOiqEhjGIaUkfk0BF3bWmzio4ts41UqEcV/FiANicyXtBwiZAGhMFPlucpjyzSznuNJrakOppCxvBLCjif0PBmSc0iBxpS+fAeIkM9arhJcWEIE1akhuywNCUTDmmsd8sLuYKYhje0sphvZQzUow1zQ5hwwUt+blfe07esS+5Z+Nsb+ldu26KTL31n21K+9F3DhWAZj9pmVhrIM2/OFWgQxlrRhlJvVx6FDyzLU9BoUS5YEJ9cKPCPCzOVimt0YhkDmXMzJUYxoVmEGEiEF4dLOmNpYT/WKApLbNSjhUrHaLWWX+vKbfeUkwmosNN5moeQvtq+83pDsOgL3J7nbi9lPLOcsThWoLXzr0IYtaAhHZ9Rj6YyYik39reR0eNUppmVdOJier2oSfrLz+jo2igAc1ejpOMZsNkvPycgyOCArjz6wJWZYnSiIe29fNn1uwO/16cehYzxlIYUFH8M3sspE1pL8VWpg0CjtCYs4+niTjArr7fVIerRhM9AVBtnij9Sj3J9J2eg7novaGhUAc1Kv7e5cnhQreRTKeBOFNkDKBrSfwwOj7q9/v7g4PCIrla3Hi00qAuO/Pf3B/t0tfIa46gMw1qUs403qZz/bQr/j6aAmq+T+WcKDBW+L20PW4y4xcozzPj3IRzpvEaZtlJAXJ/4s7gZt2cm3FoVGlS36x+9ePkS/QwSln7nbPdkkSTk+GQz6hwcHr1wCns6Hf7hgngys4b01VN7v5cArfDOTq7PR0PibxS3f7zkniGB8dnBweHR4X7vqL//LBFsqxv/JIKQKgm4loGlPzgIes+TzqfEs1bi/m+Lpd4bF654/iymgv8w1+tcCu3K4X63i3/We3yk4Ld2aLnCptBwh64h/F+uI/1UE9dqEZhSbEFdKt44hEtTYDEovAF/Dbq9/6iJbHcUoJRUp66dsN/DFue3m5d7G+w10GFNOhcGElC0bjNoOOh2V1vQNzDaKC6SNgg9YTHhIi8MyZliGRhQtFTYunJ+EMxl9Z9skl4XzYFT519UNCNhQAmWEg1qBorYazZktPKohqhQtga+WdLjnH8N+Gk71hNgChSWTXYFuWYJ+ictxxzEzTnIjhtpDa5OsVu2Aw+FQsrATCV6ci5tN5szREU7s3450+msD3PKuU9Hx+/nptO4T8eOnLD8tqy4ELHO7RAyWXLqYhUN6dSYXIedTgyZxEFSwBPFhAm4tN62juBCybhw5ewTaH4Nw9iwBEdcT4Brt71JyG2jAhderQFVimhiglvwqA1fTofUo2VDUJa2P1nLppuWcHwxIo+wIOgqKFDnAAG5nAKxYZ/IiR3M3a/huSfuGpIV2pAHILmCCf8AsWsA7h2N5J7sCGnAIjCKcTvm0zmLYNcjECTBBtqQlICvFrJQKA7/ERav7wPsntomt6QP9tcbO3TDfuj68mPeogi0JkY+giA507oiz2EqaSZckDUiSC1BXeU0dxmtXRv1ZlMmBorvm5HdWeWKH6XK2lv/+1TZoKpTVr3UAJ0jpmrKuv2IbqWam+rA7fakumovfwuGxcwwtz6L1vDHMtqMUHXxsvJc9i530MA/UTfX8FzEfMbjgqXtdUQmJrIK48wl/6qV1m6y+1XjTrVH8H82S+t+2HbhDWOqgXDcPuOxHe1HEtVtgHD8m1V8VD7zrGk+zpq3A160RNXE1YvmAUCj33KNs20CAmE0kSphorRs9AU3ovfs04MbbM/whgUpw22rudLlw4Q2TMRMxdq3/HImDJmkcq6dN5WSttR+vjE61mo8AqGtN1WxLGfRFEg/6H6kuvl8HjC7HUiVdEpY3flmdHr23fjMR5hVM1lt1InCimVU1NqjHsVE4tTe7/YHwX7QQ1jMVBkTLXrcY0VD/WYIahUYf78H/ZXfg8qIaOCD6eQp4wLtyRrwsqx8buis79qJCbdhdI1096QkOBaytgJaC+R23odV0K1Hp1hOhTd0uXxgGn5Q6WqFyz8WoGzx5tEZU9aMXClX1QuYCh6xrKCnzmT9S6TZq5q/j+tjrHIcBCba3HzybLviuzgfY7J+KN+4MpchFZvjfJXNaUjf0XfUsmyjlq2/mR3GpUwkBUvwvMOLSZiVJUFTDj3acqj8aPVTTCxaVG5WRo4Z/L/dcK2BvMJo8TUsXtfH3c6TAHUt4U6j4m9Xq9W/AcMNWHw=
sidebar_class_name: "post 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 credential</h1>

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



Issues a Verifiable Credential to a holder using the OpenID for Verifiable Credentials Issuance (OID4VCI) protocol. Supports two issuance modes: **InTime** (credential issued immediately via the Credential Endpoint) and **Deferred** (credential issued later via the Deferred Credential Endpoint by calling the [Issue deferred credential](/docs/openid4vc-api/config-update-digital-wallet-open-id-credential-history) API). Supports W3C VC (JWT), IETF SD-JWT VC, and ISO 18013-5 mDoc/mDL credential formats.


## Request

<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={false} name={"issuanceMode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Issuance mode: InTime for immediate availability, Deferred for issuance after backend processing."}}></SchemaItem><SchemaItem collapsible={false} name={"urlScheme"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`openid-credential-offer://`, `haip://`]"} schema={{"type":"string","description":"URL scheme for the credential offer deep link. `openid-credential-offer://` is the standard OID4VCI scheme. `haip://` is used for HAIP-compliant wallets.","enum":["openid-credential-offer://","haip://"]}}></SchemaItem><SchemaItem collapsible={false} name={"credentialDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of a pre-configured credential definition. The credential will be issued using the format, type, claims structure, and revocation settings defined in this credential definition."}}></SchemaItem><SchemaItem collapsible={false} name={"userPin"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Pre-Authorized Code Flow transaction code (tx_code). When set, the wallet must include this value in the Token Request to obtain an access token."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialOfferEndpoint"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Wallet's credential offer endpoint URL for issuer-initiated issuance. When provided, the issuer sends the OID4VCI Credential Offer directly to this 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"}>credentials</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><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={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Array of W3C Verifiable Credential type strings (e.g. `['LegalPersonIdentificationData']`). Required for W3C VC (JWT) format (`jwt_vc_json`)."}}></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"}}>

Key-value pairs representing the credential claims for W3C VC (JWT) format (`jwt_vc_json`).

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Key-value pairs representing the credential claims for W3C VC (JWT) format (`jwt_vc_json`)."}} 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"}>credentialMetadata</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Additional metadata to include in the issued credential, such as evidence or terms of use.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Additional metadata to include in the issued credential, such as evidence or terms of use."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"vct"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Verifiable Credential Type identifier for IETF SD-JWT VC format (`dc+sd-jwt`)."}}></SchemaItem><SchemaItem collapsible={false} name={"doctype"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Document type identifier for ISO 18013-5 mDoc/mDL format (`mso_mdoc`)."}}></SchemaItem><SchemaItem collapsible={false} name={"claims"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Key-value pairs representing the credential claims for IETF SD-JWT VC (`dc+sd-jwt`) or ISO 18013-5 mDoc/mDL (`mso_mdoc`) formats."}}></SchemaItem><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><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"presentationDefinitionId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of a presentation definition for dynamic credential requests. When set, the issuer requires the holder to present matching credentials via OpenID for Verifiable Presentation (OpenID4VP) before issuance proceeds."}}></SchemaItem><SchemaItem collapsible={false} name={"individualId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Optional. Non-OID4VCI extension, used only for data agreement enabled workflows. Identifier of a specific individual recipient. When provided, the credential offer is sent directly to the individual's registered device."}}></SchemaItem></TabItem><TabItem label={"IETF SD-JWT VC"} value={"1-item-properties"}><SchemaItem collapsible={false} name={"issuanceMode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Issuance mode: InTime for immediate availability, Deferred for issuance after backend processing."}}></SchemaItem><SchemaItem collapsible={false} name={"urlScheme"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`openid-credential-offer://`, `haip://`]"} schema={{"type":"string","description":"URL scheme for the credential offer deep link.","enum":["openid-credential-offer://","haip://"]}}></SchemaItem><SchemaItem collapsible={false} name={"credentialDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential definition configured for IETF SD-JWT VC (`dc+sd-jwt`) format."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentials</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"}}>

Array of credentials to issue. Each entry contains the `id` from the `credentialDefinitions` array and the claims as flat key-value pairs for IETF SD-JWT VC format.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><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. Nested objects (e.g. `address`) are supported.

</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. Nested objects (e.g. `address`) are supported."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></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. Leave empty for Authorisation Code Flow."}}></SchemaItem></TabItem><TabItem label={"ISO 18013-5 mDoc/mDL"} value={"2-item-properties"}><SchemaItem collapsible={false} name={"issuanceMode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Issuance mode: InTime for immediate availability, Deferred for issuance after backend processing."}}></SchemaItem><SchemaItem collapsible={false} name={"urlScheme"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`openid-credential-offer://`, `haip://`]"} schema={{"type":"string","description":"URL scheme for the credential offer deep link.","enum":["openid-credential-offer://","haip://"]}}></SchemaItem><SchemaItem collapsible={false} name={"credentialDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential definition configured for ISO 18013-5 mDoc/mDL (`mso_mdoc`) format."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentials</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"}}>

Array of credentials to issue. Each entry contains the `id` from the `credentialDefinitions` array and the claims namespaced under the mDoc doctype.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><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><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></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. Leave empty for Authorisation Code Flow."}}></SchemaItem></TabItem><TabItem label={"W3C VC (JWT)"} value={"3-item-properties"}><SchemaItem collapsible={false} name={"issuanceMode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Issuance mode: InTime for immediate availability, Deferred for issuance after backend processing."}}></SchemaItem><SchemaItem collapsible={false} name={"urlScheme"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`openid-credential-offer://`, `haip://`]"} schema={{"type":"string","description":"URL scheme for the credential offer deep link.","enum":["openid-credential-offer://","haip://"]}}></SchemaItem><SchemaItem collapsible={false} name={"credentialDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential definition configured for W3C VC (JWT) (`jwt_vc_json`) format."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credentials</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"}}>

Array of credentials to issue. Each entry contains the `id` from the `credentialDefinitions` array and the claims under `credentialSubject` for W3C VC (JWT) format.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><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><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></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. Leave empty for Authorisation Code Flow."}}></SchemaItem></TabItem><TabItem label={"Dynamic credential request"} value={"4-item-properties"}><SchemaItem collapsible={false} name={"issuanceMode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Issuance mode: InTime for immediate availability, Deferred for issuance after backend processing."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential definition to use for issuance."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of a presentation definition for dynamic credential requests. The issuer requires the holder to present matching credentials via OpenID for Verifiable Presentation (OpenID4VP) before issuance proceeds."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialOfferEndpoint"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Wallet's credential offer endpoint URL for issuer-initiated issuance. When provided, the issuer sends the OID4VCI Credential Offer directly to this 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"}>transactionData</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"}>credentials</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><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={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Array of W3C Verifiable Credential type strings (e.g. `['LegalPersonIdentificationData']`). Required for W3C VC (JWT) format (`jwt_vc_json`)."}}></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"}}>

Key-value pairs representing the credential claims for W3C VC (JWT) format (`jwt_vc_json`).

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Key-value pairs representing the credential claims for W3C VC (JWT) format (`jwt_vc_json`)."}} 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"}>credentialMetadata</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Additional metadata to include in the issued credential, such as evidence or terms of use.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Additional metadata to include in the issued credential, such as evidence or terms of use."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"vct"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Verifiable Credential Type identifier for IETF SD-JWT VC format (`dc+sd-jwt`)."}}></SchemaItem><SchemaItem collapsible={false} name={"doctype"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Document type identifier for ISO 18013-5 mDoc/mDL format (`mso_mdoc`)."}}></SchemaItem><SchemaItem collapsible={false} name={"claims"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Key-value pairs representing the credential claims for IETF SD-JWT VC (`dc+sd-jwt`) or ISO 18013-5 mDoc/mDL (`mso_mdoc`) formats."}}></SchemaItem><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><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem></TabItem></SchemaTabs></div></ul></details></TabItem></MimeTabs><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={{}}><strong>credentialHistory</strong><span style={{"opacity":"0.6"}}> object</span></summary><div style={{"marginLeft":"1rem"}}></div><div><span className={"badge badge--info"}>oneOf</span><SchemaTabs><TabItem label={"MOD1"} value={"0-item-properties"}><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></TabItem><TabItem label={"MOD2"} value={"1-item-properties"}><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><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><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></TabItem></SchemaTabs></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"credentialHistory\": {}\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>
      