---
id: config-receive-digital-wallet-open-id-credential
title: "Receive credential"
description: "Processes an OID4VCI Credential Offer and initiates the credential issuance flow. The wallet resolves the issuer's metadata, performs token exchange, and receives the credential."
sidebar_label: "Receive credential"
hide_title: true
hide_table_of_contents: true
api: eJzlV1tv2zYU/ivEeVkCyJekHTAIRbHUSTe3xRLUafKQBggtHtlMJJIlKTueof8+HFK2ZCdpN+xp2ItNUTw89/N9WoNAl1lpvNQKUriwOkPn0DGu2Pn49PXVaMxGFgUqL3nBzvMcLeNKMKmkl9yjY36OLGuPSOcqrjJkeaGXfXY5R7bkRYGeWXS6WDQSdAztT46V6LngnifMoM21LR3z+gEVw8dsztUMk6DPYoZy8URdHxLQBi0nB8YCUsi0yuXsczx+KmfS8+I6GHBuUI1F6w0kYPFbhc6/02IF6ZpkPSpPS25MIbNw7eDeUXDW4LI5lpxWxpJSL9EFse2VIT605VcGIQXnrVQzSPbC3ImoDhG1mElcoGC51WUnPsxrNkVWOXqlbRPJ3ib4YhvtPtQJPEjxY90Tg5nMZRPJB1wxGWzJJVqmc9px+2qfSS/p87Zy/kRlc/03fN7VG0QZD7Lf15MAqqqE9Abulw90qxTpA66aFU6dbJZLnMJtTWZFO/T0HjMPdU17Fp3RysV8HQ+H9PdiTppaE8xVGbVDXhUFKfzX5UFPWuF5DunNes/OWIzSoiBfW5mxIM3bx0vqjZ2dnYeJ575ykADPMjSeIvhUYhxqCxKoHNoL2bykejohOyoj2nU88XljWvea99qWnA4Ziw6V3/RgArF44bZOtl5ya/kK6ucTlMAcuUBL4aKn18Ojf9SO3cihtdqOtAiVQ+vTTppv95Une7lqpduClsrjLMQLH3lpCoT09XBYP3P9M02wFYF3nKamqTwz3PISPdpQnPV+p3xRvPJzbeWfIeC7ofk51u7/NDRj5dEqXjCHdoGWBTV7MaoTcJhVVvpVaLMTIz8iLUM5vkNu0Z5Ufh52yGs+cxSdBitYBAt2EOCCEPAQEvhdF4IqOoES/VwT0BjtQpA4XQWDxfEgQs9AxIt6cVgPtEElxcCJ+6UftN0zaKYMkLnkjAvW7vp7iqVufKVmtAWkMPfeuHQwEFjqHjeyL2eWK9+XGsjBJ4AuqoweXrrmRzdMPJ9JNXtJ3MXX+4bctkmYUC3GEtqkop0KcSMBSapiFiEBxUt6e9K0QajtJ4BycjEO8EXNQiGNLRAZx4IXFRKaEdbc7dxzx6IaVhICTZEZi7l8RMGW0s/ZXbSR3bEDpT02YMVlEWJgeIaHCcP+rL93bcoawTcrXVkKR+8BV2/vAjB3i24N0/DUTM8UPlxfPvUt4E5DhAx3bmNevKmxmUnFdoxg2wiGAUAxjMpg29yUN6AeoVHxuaU/Z5tmfIbOtC0bGEb7uEMAAj7XlMpcb0YUz8KIwpJLKhpXGaOt/7UtlG2u5W/t1m6FdYtzL0xbIWasXkhBvJVlmhzxyCT9lxtg2lRDbOtAN67QylzyaYEdjuvYeMNgDxoGfBgY6POCFx3sa2fGxSFZ5HWmC0cVKR2jckVFMo5pO+OqyVkgWwEwEzbXhYh0d0EaVqwZJR1i5FjlQil6rgS3wvWCv5IrHxi3i3XSRDpYe/1qxK5G7ODD9eVhwsZnl+/Z5LT34fqSXY2itvHknB39Mjx61fuZlac6G5Snn7pkLA+16ohsFzJD5UKdbLrU8GyO7Lg/fJK65XLZ5+F1X9vZoJF1g0/j0dkfk7MeyRAfkL7YqYEQLKGzaps9SIBGZEz78fD4df9V/4hkaQqXXHXsaag/22FIYheKtvD53/ziaXrZ46MfmIJLRZEIoV83eHQDi+PIWHMZuPgOJsWPJiWJXgRc2ieUG2y6TWBOMJfewHo95Q6/2KKuaftbhTaAagILbkMvRIjdTHECM+LpKYxisHuXZDUdL6o4+/d4C2FPlDgJ5PW7Z7tIfHE+oRE6bb7iysBRwPIlecKXkMJX+ArB6dBxgRfR/hoKrmYVn9H5eC+NRt4M6hak4gdHs+hwd65WHSv38So6Q79dIrwj8oYq/SOu3m6PxzcvCmwnfDxNqb+t6/ovf1mBEA==
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"}>Receive credential</h1>

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



Processes an OID4VCI Credential Offer and initiates the credential issuance flow. The wallet resolves the issuer's metadata, performs token exchange, and receives the credential.

## 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"}}><SchemaItem collapsible={false} name={"credentialOffer"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential offer recieved from the issuer to be used for wallet-initiated issuance."}}></SchemaItem><SchemaItem collapsible={false} name={"kid"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Specifies the key identifier of keys to be used for credential issuance"}}></SchemaItem><SchemaItem collapsible={false} name={"trustAnchor"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`jwk`, `did:key`, `did:ebsi`, `did:web`]"} schema={{"type":"string","description":"Specifies the trust anchor used for credential issuance","enum":["jwk","did:key","did:ebsi","did:web"]}}></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

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

Decoded payload of the Verifiable Credential token. Contains the parsed claims from the W3C VC (JWT), IETF SD-JWT VC, or ISO 18013-5 mDoc/mDL credential.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Decoded payload of the Verifiable Credential token. Contains the parsed claims from the W3C VC (JWT), IETF SD-JWT VC, or ISO 18013-5 mDoc/mDL credential."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`credential_pending`, `credential_acked`]"} schema={{"type":"string","enum":["credential_pending","credential_acked"],"description":"Current status of the credential in the holder's wallet. `credential_pending` indicates the credential requires additional steps (e.g. entering a transaction code or polling the OID4VCI Deferred Credential Endpoint). `credential_acked` indicates the credential has been fully received and stored."}}></SchemaItem><SchemaItem collapsible={false} name={"acceptanceToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Acceptance token (transaction_id in OID4VCI) returned for deferred issuance. The wallet uses this to poll the Deferred Credential Endpoint."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialIssuer"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential Issuer Identifier as defined in OID4VCI. Typically the issuer's base URL used to resolve the Credential Issuer Metadata."}}></SchemaItem><SchemaItem collapsible={false} name={"userPin"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Transaction code (tx_code) required for the OID4VCI Pre-Authorized Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when this credential record was created."}}></SchemaItem><SchemaItem collapsible={false} name={"updatedAt"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when this credential record was last modified."}}></SchemaItem><SchemaItem collapsible={false} name={"userPinRequired"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the holder must provide a transaction code (tx_code) to complete the OID4VCI Pre-Authorized Code Flow Token Request."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialFormat"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Format of the received credential as defined in OID4VCI. Values: `jwt_vc_json` (W3C VC JWT), `dc+sd-jwt` (IETF SD-JWT VC), `mso_mdoc` (ISO 18013-5 mDoc/mDL)."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier linking this credential to a presentation exchange, if received as part of a dynamic issuance flow involving OpenID for Verifiable Presentation (OpenID4VP)."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>issuer</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"name"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"location"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"cover"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"logo"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"description"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialConfigurations"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>transactionCode</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"inputMode"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`numeric`, `text`]"} schema={{"type":"string","description":"Input method for the transaction code as defined in OID4VCI. `numeric` restricts to digits only. `text` allows alphanumeric input.","enum":["numeric","text"]}}></SchemaItem><SchemaItem collapsible={false} name={"inputLength"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Expected length of the transaction code in characters."}}></SchemaItem><SchemaItem collapsible={false} name={"description"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Human-readable instruction displayed to the holder explaining how to obtain or use the transaction code."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>authorizationDetails</strong><span className={"openapi-schema__name"}> object[]</span></span></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":"string","description":"Authorization detail type. Must be `openid_credential` for OID4VCI credential issuance requests, as defined in RFC 9396.","example":"openid_credential"}}></SchemaItem><SchemaItem collapsible={false} name={"credential_configuration_id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential configuration from the issuer's OID4VCI Credential Issuer Metadata."}}></SchemaItem><SchemaItem collapsible={false} name={"format"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential format identifier (e.g. `jwt_vc_json`, `dc+sd-jwt`, `mso_mdoc`)."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"revocationStatus"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`Operational`, `Revoked`, `Suspended`]"} schema={{"type":"string","description":"Current revocation status. `Operational` means valid, `Revoked` means permanently invalidated, `Suspended` means temporarily invalidated.","enum":["Operational","Revoked","Suspended"]}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidAttestation"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Legal Person Identification (LPID) attestation credential of the issuer, used to verify the issuer's legal identity in the EUDI Wallet ecosystem."}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidAttestationPop"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Proof of Possession (PoP) for the issuer's LPID attestation, proving the issuer controls the associated private key."}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidVerified"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the issuer's LPID attestation has been successfully verified."}}></SchemaItem><SchemaItem collapsible={false} name={"autoPresent"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the wallet automatically presents this credential when a matching OpenID4VP Authorization Request is received."}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`draft_11`, `draft_13`, `draft_15`, `draft_17`]"} schema={{"type":"string","description":"OID4VCI specification draft version used for this credential's issuance protocol.","enum":["draft_11","draft_13","draft_15","draft_17"]}}></SchemaItem><SchemaItem collapsible={false} name={"kid"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Key Identifier (kid) of the cryptographic key used to sign or bind the credential."}}></SchemaItem><SchemaItem collapsible={false} name={"trustAnchor"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`jwk`, `did:key`, `did:ebsi`, `did:web`, `did:tdw`]"} schema={{"type":"string","description":"DID method or key type used as the trust anchor for verifying the issuer's identity.","enum":["jwk","did:key","did:ebsi","did:web","did:tdw"]}}></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={false} name={"requiresEncryption"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean"}}></SchemaItem><SchemaItem collapsible={false} name={"isVerifiedWithTrustList"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean"}}></SchemaItem><SchemaItem collapsible={false} name={"trustServiceProvider"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object"}}></SchemaItem><SchemaItem collapsible={false} name={"oAuthFlow"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`frontchannel`, `backchannel`]"} schema={{"type":"string","description":"OAuth 2.0 flow used for credential issuance. `frontchannel` uses browser redirects, `backchannel` uses server-to-server communication.","enum":["frontchannel","backchannel"]}}></SchemaItem><SchemaItem collapsible={false} name={"authorizationRequest"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OAuth 2.0 authorization request URL for the Authorization Code Flow."}}></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={"credentialId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the credential stored in the holder's wallet."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The raw JWT, SD-JWT, or mDoc token of the issued Verifiable Credential as received from the issuer's OpenID for Verifiable Credentials Issuance (OID4VCI) Credential Endpoint."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>credential</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Decoded payload of the Verifiable Credential token. Contains the parsed claims from the W3C VC (JWT), IETF SD-JWT VC, or ISO 18013-5 mDoc/mDL credential.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Decoded payload of the Verifiable Credential token. Contains the parsed claims from the W3C VC (JWT), IETF SD-JWT VC, or ISO 18013-5 mDoc/mDL credential."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialStatus"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`credential_pending`, `credential_acked`]"} schema={{"type":"string","enum":["credential_pending","credential_acked"],"description":"Current status of the credential in the holder's wallet. `credential_pending` indicates the credential requires additional steps (e.g. entering a transaction code or polling the OID4VCI Deferred Credential Endpoint). `credential_acked` indicates the credential has been fully received and stored."}}></SchemaItem><SchemaItem collapsible={false} name={"acceptanceToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Acceptance token (transaction_id in OID4VCI) returned for deferred issuance. The wallet uses this to poll the Deferred Credential Endpoint."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialIssuer"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential Issuer Identifier as defined in OID4VCI. Typically the issuer's base URL used to resolve the Credential Issuer Metadata."}}></SchemaItem><SchemaItem collapsible={false} name={"userPin"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Transaction code (tx_code) required for the OID4VCI Pre-Authorized Code Flow."}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when this credential record was created."}}></SchemaItem><SchemaItem collapsible={false} name={"updatedAt"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when this credential record was last modified."}}></SchemaItem><SchemaItem collapsible={false} name={"userPinRequired"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the holder must provide a transaction code (tx_code) to complete the OID4VCI Pre-Authorized Code Flow Token Request."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialFormat"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Format of the received credential as defined in OID4VCI. Values: `jwt_vc_json` (W3C VC JWT), `dc+sd-jwt` (IETF SD-JWT VC), `mso_mdoc` (ISO 18013-5 mDoc/mDL)."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier linking this credential to a presentation exchange, if received as part of a dynamic issuance flow involving OpenID for Verifiable Presentation (OpenID4VP)."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>issuer</strong><span className={"openapi-schema__name"}> object</span><span className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"name"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"location"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"cover"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"logo"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"description"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"credentialConfigurations"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>transactionCode</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"inputMode"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`numeric`, `text`]"} schema={{"type":"string","description":"Input method for the transaction code as defined in OID4VCI. `numeric` restricts to digits only. `text` allows alphanumeric input.","enum":["numeric","text"]}}></SchemaItem><SchemaItem collapsible={false} name={"inputLength"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Expected length of the transaction code in characters."}}></SchemaItem><SchemaItem collapsible={false} name={"description"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Human-readable instruction displayed to the holder explaining how to obtain or use the transaction code."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>authorizationDetails</strong><span className={"openapi-schema__name"}> object[]</span></span></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":"string","description":"Authorization detail type. Must be `openid_credential` for OID4VCI credential issuance requests, as defined in RFC 9396.","example":"openid_credential"}}></SchemaItem><SchemaItem collapsible={false} name={"credential_configuration_id"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential configuration from the issuer's OID4VCI Credential Issuer Metadata."}}></SchemaItem><SchemaItem collapsible={false} name={"format"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential format identifier (e.g. `jwt_vc_json`, `dc+sd-jwt`, `mso_mdoc`)."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><SchemaItem collapsible={false} name={"revocationStatus"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`Operational`, `Revoked`, `Suspended`]"} schema={{"type":"string","description":"Current revocation status. `Operational` means valid, `Revoked` means permanently invalidated, `Suspended` means temporarily invalidated.","enum":["Operational","Revoked","Suspended"]}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidAttestation"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Legal Person Identification (LPID) attestation credential of the issuer, used to verify the issuer's legal identity in the EUDI Wallet ecosystem."}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidAttestationPop"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Proof of Possession (PoP) for the issuer's LPID attestation, proving the issuer controls the associated private key."}}></SchemaItem><SchemaItem collapsible={false} name={"legalPidVerified"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the issuer's LPID attestation has been successfully verified."}}></SchemaItem><SchemaItem collapsible={false} name={"autoPresent"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the wallet automatically presents this credential when a matching OpenID4VP Authorization Request is received."}}></SchemaItem><SchemaItem collapsible={false} name={"version"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`draft_11`, `draft_13`, `draft_15`, `draft_17`]"} schema={{"type":"string","description":"OID4VCI specification draft version used for this credential's issuance protocol.","enum":["draft_11","draft_13","draft_15","draft_17"]}}></SchemaItem><SchemaItem collapsible={false} name={"kid"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Key Identifier (kid) of the cryptographic key used to sign or bind the credential."}}></SchemaItem><SchemaItem collapsible={false} name={"trustAnchor"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`jwk`, `did:key`, `did:ebsi`, `did:web`, `did:tdw`]"} schema={{"type":"string","description":"DID method or key type used as the trust anchor for verifying the issuer's identity.","enum":["jwk","did:key","did:ebsi","did:web","did:tdw"]}}></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={false} name={"requiresEncryption"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean"}}></SchemaItem><SchemaItem collapsible={false} name={"isVerifiedWithTrustList"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean"}}></SchemaItem><SchemaItem collapsible={false} name={"trustServiceProvider"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object"}}></SchemaItem><SchemaItem collapsible={false} name={"oAuthFlow"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`frontchannel`, `backchannel`]"} schema={{"type":"string","description":"OAuth 2.0 flow used for credential issuance. `frontchannel` uses browser redirects, `backchannel` uses server-to-server communication.","enum":["frontchannel","backchannel"]}}></SchemaItem><SchemaItem collapsible={false} name={"authorizationRequest"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OAuth 2.0 authorization request URL for the Authorization Code Flow."}}></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  \"credential\": {}\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>
      