---
id: config-read-digital-wallet-open-id-credential-history
title: "Read issuance history"
description: "Retrieves a credential exchange record by ID, including the issuance status, credential offer details, and holder information."
sidebar_label: "Read issuance history"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "get api-method"
info_path: docs/openid4vc-api/igrant-io-api-documentation
custom_edit_url: null
---

> **Build this with an AI coding agent.** Install the iGrant.io Agent Skills, then ask your agent to build the integration:
>
> ```bash
> npx skills add L3-iGrant/skills
> ```


import ApiTabs from "@theme/ApiTabs";
import DiscriminatorTabs from "@theme/DiscriminatorTabs";
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
import SecuritySchemes from "@theme/ApiExplorer/SecuritySchemes";
import MimeTabs from "@theme/MimeTabs";
import ParamsItem from "@theme/ParamsItem";
import ResponseSamples from "@theme/ResponseSamples";
import SchemaItem from "@theme/SchemaItem";
import SchemaTabs from "@theme/SchemaTabs";
import Markdown from "@theme/Markdown";
import OperationTabs from "@theme/OperationTabs";
import TabItem from "@theme/TabItem";

<h1 className={"openapi__heading"}>Read issuance history</h1>

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



Retrieves a credential exchange record by ID, including the issuance status, credential offer details, and holder information.

## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Path Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Unique identifier of the credential exchange record tracking a single OID4VCI credential issuance lifecycle.","in":"path","name":"credentialExchangeId","required":true,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Credential history retrieved successfully

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

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

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

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

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

Metadata about the credential holder obtained during the OID4VCI exchange.

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

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

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

Wallet unit attestation verification status.

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

Proof of possession verification status.

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

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

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

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

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

Unauthorized

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Internal server error

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"errorCode"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","example":400}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","example":"Bad input parameter"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      