---
id: config-list-digital-wallet-open-id-verification-history-v-3
title: "List verification history"
description: "Lists verification exchange records. Each record holds one OpenID4VP verification lifecycle. The server sorts the records by `updatedAt` and uses `sortOrder` for the direction."
sidebar_label: "List verification 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"}>List verification history</h1>

<MethodEndpoint method={"get"} path={"/v3/config/digital-wallet/openid/sdjwt/verification/history"}></MethodEndpoint>



Lists verification exchange records. Each record holds one OpenID4VP verification lifecycle. The server sorts the records by `updatedAt` and uses `sortOrder` for the direction.

The response also holds `verificationHistoryStats`. These counters cover every verification exchange record of the organisation, not only the current page and not only the records that agree with the filters.

The filters combine with a logical AND. The `requestPending`, `verificationFailed` and `expired` flags are shortcuts for common status filters. `requestPending` and `verificationFailed` overwrite the `status` filter, so do not use them together with `status`. The `expired` flag does not work today; see its description.

The server does not return a record that a delete operation removed.

`search` matches a part of the holder name and of `presentationExchangeId`. It does not look at any other property. `sortOrder` takes `asc` or `desc`; the server uses `desc` for every other value. The `requestPending`, `verificationFailed` and `expired` flags act only on the exact lowercase value `true`.


## Request

<details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Query Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Number of records to skip for pagination. A negative or unreadable value falls back to `0`.","in":"query","name":"offset","required":false,"schema":{"type":"integer","default":0,"minimum":0}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"limit","in":"query","description":"Maximum number of records to return per page.","required":false,"schema":{"type":"integer","default":10}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"Filter the verification exchange records by their OpenID4VP lifecycle status.\n\nGive more than one value to match any of them. Repeat the parameter, or give the values in one comma-separated list. The server keeps a value it does not know, and that value then matches no record.\n","in":"query","name":"status","required":false,"explode":true,"schema":{"type":"array","items":{"type":"string","enum":["request_sent","request_received","presentation_pending","presentation_acked"]}},"example":["presentation_acked"]}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"Filter by presentation definition identifier to retrieve OpenID4VP verification records for a specific verification template.","in":"query","name":"presentationDefinitionId","required":false,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"Filter by individual identifier to retrieve records associated with a specific individual.","in":"query","name":"individualId","required":false,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"Filter by mapper identifier to retrieve records linked to a specific individual mapping.","in":"query","name":"mapperId","required":false,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"Filter by the holder's Decentralized Identifier (DID).","in":"query","name":"holderDid","schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"Search term to filter results by","in":"query","name":"search","required":false,"schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"description":"Sort order for the returned records (ascending or descending).","in":"query","name":"sortOrder","required":false,"schema":{"type":"string","enum":["desc","asc"],"default":"desc"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"responseCode","in":"query","required":false,"description":"Filter by the state value of the Authorization Request. The server compares this value with `vpTokenRequestState`. Use it to find the record that belongs to one wallet response.","schema":{"type":"string"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"requestPending","in":"query","required":false,"description":"Set to `true` to return only the records that wait for the holder, that is the records with status `request_sent` or `request_received`. This flag overwrites the `status` filter.","schema":{"type":"boolean"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"verificationFailed","in":"query","required":false,"description":"Set to `true` to return only the records with status `presentation_acked` and `verified` equal to `false`. This flag overwrites the `status` filter.","schema":{"type":"boolean"}}}></ParamsItem><ParamsItem className={"paramsItem"} param={{"name":"expired","in":"query","required":false,"description":"Set to `true` to return only the records whose Authorization Request expired, that is the records with a `requestExpiryTime` in the past.\n\n**Do not use this parameter yet.** A defect in the server makes the filter compare against a property name that no record holds, so `expired=true` always gives an empty page. To find the expired records, read the page without this filter and compare `requestExpiryTime` with the current time, or read `requestExpired` on each record.\n","schema":{"type":"boolean"}}}></ParamsItem></ul></div></details><details style={{"marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collapsed={false} open={true}><summary style={{}}><h3 className={"openapi-markdown__details-summary-header-params"}>Header Parameters</h3></summary><div><ul><ParamsItem className={"paramsItem"} param={{"description":"Optional. Unique identifier of the sandbox organisation to use for this request. When you send this header, the service runs the operation in the context of the named sandbox organisation, that is, against the wallet of that sandbox organisation and not against the main wallet of the organisation. Leave the header out to use the main wallet.\n\nThe service reads this header only when you authenticate with a bearer access token. When you authenticate with an API key, the service takes the sandbox organisation from the API key and ignores this header. To run an API-key call in a sandbox organisation, bind the key to the sandbox organisation with `PUT /v2/config/admin/apikey/{apiKeyId}/sandbox-org` instead.\n\n`X-SubwalletId` is the deprecated name of this header. The service continues to accept it, but `X-SandboxOrgId` wins if you send both headers.\n\nThe sandbox organisation must exist, must belong to your organisation and must be deployed. An unknown identifier, an identifier of a sandbox organisation that is not deployed, and an identifier that belongs to a different organisation all make the call fail with HTTP 400.","in":"header","name":"X-SandboxOrgId","required":false,"schema":{"type":"string"},"example":"6889e1a4c5b2f30001a3d710"}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

The server listed the verification exchange records.

</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"}>verificationHistory</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"}}>

Verification exchange records for the current page. The array is empty when no record agrees with the filters.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"presentationExchangeId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier of the verification exchange. Give this value as the `presentationExchangeId` path parameter to read, delete or revalidate the record, and to receive a DC API response for it.","example":"8e9c0a94-3b7d-4f2c-9d11-2f5a0b1c8d3e"}}></SchemaItem><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Internal record identifier that the server makes when it stores the record. No operation accepts this value. Use `presentationExchangeId` to address the record.","example":"6821b4b0f5b1c2a3d4e5f6a7"}}></SchemaItem><SchemaItem collapsible={false} name={"vpTokenQrCode"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OpenID4VP Authorization Request URI encoded for QR code display or deep link. The holder's wallet scans or clicks this to initiate the presentation flow. Empty when using DC API response modes (`dc_api` or `dc_api.jwt`)."}}></SchemaItem><SchemaItem collapsible={false} name={"vpTokenRequestState"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"State parameter for the OpenID4VP Authorization Request, used to correlate the request with the response."}}></SchemaItem><SchemaItem collapsible={false} name={"vpTokenRequest"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Full OpenID4VP Authorization Request URI or payload. Empty when using DC API response modes (`dc_api` or `dc_api.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"}>presentationSubmission</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Wrapper that holds the Presentation Submission object of the wallet.

DCQL is the only supported query form, and a DCQL Authorization Response carries no Presentation Submission, so the server returns `null` here for every verification that a current presentation definition starts. A value is present only on an old record that a DIF Presentation Exchange definition made. Read `presentation` to get the credentials of the holder.


</div><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>presentation_submission</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

DIF Presentation Exchange Submission object that maps the credentials of the holder to the requirements of the verifier. Kept for old records only.

</div><SchemaItem collapsible={false} name={"definition_id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the Presentation Definition that this submission fulfills."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>descriptor_map</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 Descriptor Map entries mapping each requested credential to its location in the Verifiable Presentation.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"format"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential format of the matched credential (e.g. `jwt_vc_json`, `dc+sd-jwt`, `mso_mdoc`)."}}></SchemaItem><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the Input Descriptor from the Presentation Definition that this entry satisfies."}}></SchemaItem><SchemaItem collapsible={false} name={"path"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"JSONPath expression pointing to the Verifiable Credential within the Verifiable Presentation token."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>path_nested</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Nested path descriptor for credentials wrapped in envelope formats (e.g. JWT inside a VP JWT).

</div><SchemaItem collapsible={false} name={"format"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Credential format of the nested credential (e.g. `jwt_vc_json`, `dc+sd-jwt`, `mso_mdoc`)."}}></SchemaItem><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the Input Descriptor from the Presentation Definition that this nested entry satisfies."}}></SchemaItem><SchemaItem collapsible={false} name={"path"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"JSONPath expression pointing to the credential within the nested envelope."}}></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={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for this Presentation Submission."}}></SchemaItem></div></details></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"status"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`request_sent`, `request_received`, `presentation_pending`, `presentation_acked`]"} schema={{"type":"string","enum":["request_sent","request_received","presentation_pending","presentation_acked"],"description":"Lifecycle status of the verification exchange:\n1. `request_sent`: The server made the OpenID4VP Authorization Request. The exchange waits for the holder.\n2. `request_received`: The wallet of the holder got, or scanned, the Authorization Request.\n3. `presentation_pending`: The wallet started the response but the verifier did not get a complete Authorization Response yet.\n4. `presentation_acked`: The holder sent the Verifiable Presentation and the verifier processed it.\n","example":"request_sent"}}></SchemaItem><SchemaItem collapsible={false} name={"verified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Result of the verification of the Verifiable Presentation. The server checks the cryptographic signatures, the credential status and the presented claims against the DCQL query of the presentation definition."}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when this verification 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 verification record was last modified."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the presentation definition used for this verification request."}}></SchemaItem><SchemaItem collapsible={false} name={"openIdOrganisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the OpenID4VP organisation that initiated this verification 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 className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Contains the metadata describing a holder. For e.g. Name, location, logo e.t.c

</div><SchemaItem collapsible={false} name={"name"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the holder. For .e.g. DID or Name obtained from client metadata if available."}}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"presentation"} required={false} schemaName={"object[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Decoded credentials that the holder presented. The shape of each entry follows the credential format. `null` until the holder answers."}}></SchemaItem><SchemaItem collapsible={false} name={"vpTokenResponse"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Verifiable Presentation tokens that the wallet sent. The array holds one entry for each credential that the Authorization Request asked for. `null` until the wallet answers."}}></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"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Transaction data confirmed by the holder during the presentation flow.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Transaction data confirmed by the holder during the presentation flow."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"transactionDataBase64"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Base64url encoding of the transaction data that the Authorization Request holds."}}></SchemaItem><SchemaItem collapsible={false} name={"credentialExchangeId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential issuance exchange that this verification started, if the flow issues a credential after the verification. Always empty on the response of the send operation. The server fills it in later, when the issuance flow starts."}}></SchemaItem><SchemaItem collapsible={false} name={"responseType"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`vp_token`, `id_token`, `device_response`]"} schema={{"type":"string","description":"OAuth 2.0 response type of the Authorization Request.","enum":["vp_token","id_token","device_response"]}}></SchemaItem><SchemaItem collapsible={false} name={"idToken"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"OpenID Connect ID Token from the holder. Present only when `responseType` is `id_token`."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>idTokenDecoded</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Decoded payload of the ID Token of the holder.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Decoded payload of the ID Token of the holder."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"dataAgreementId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the data agreement record that this verification exchange created."}}></SchemaItem><SchemaItem collapsible={false} name={"userId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the dashboard user or individual that started this verification request."}}></SchemaItem><SchemaItem collapsible={false} name={"requestExpired"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"`true` when the `exp` claim of `vpTokenRequest` is in the past. The wallet cannot use an expired Authorization Request. The read and list operations compute this value when they answer. The send and revalidate operations always return `false`."}}></SchemaItem><SchemaItem collapsible={false} name={"requestExpiryTime"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp in seconds when the Authorization Request expires. The server reads this value from the `exp` claim of `vpTokenRequest`. `0` when the request has no expiry.","example":1747015200}}></SchemaItem><SchemaItem collapsible={false} name={"presentationValidity"} required={false} schemaName={"object[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Validation result for each credential in the presentation, with the signature check, the expiry check and the revocation status. The revalidate operation writes a new value here. `null` until the holder answers."}}></SchemaItem><SchemaItem collapsible={false} name={"clientIdScheme"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`redirect_uri`, `did`, `verifier_attestation`, `x509_san_dns`, `x509_hash`]"} schema={{"type":"string","description":"Client ID scheme used by the verifier in the OpenID4VP Authorization Request.","enum":["redirect_uri","did","verifier_attestation","x509_san_dns","x509_hash"]}}></SchemaItem><SchemaItem collapsible={false} name={"directPostRedirectUri"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URI the wallet redirects to after posting the Authorization Response. Empty when using DC API response modes (`dc_api` or `dc_api.jwt`)."}}></SchemaItem><SchemaItem collapsible={false} name={"responseMode"} required={true} schemaName={"string"} qualifierMessage={"**Possible values:** [`direct_post`, `direct_post.jwt`, `dc_api`, `dc_api.jwt`, `iar-post`, `iar-post.jwt`]"} schema={{"type":"string","description":"OpenID4VP response mode determining how the Authorization Response is delivered:\n- `direct_post`: Response sent via HTTP POST to the verifier's `redirect_uri` without encryption.\n- `direct_post.jwt`: Response sent via HTTP POST encrypted as a JWE.\n- `dc_api`: Response delivered over the W3C Digital Credentials API transport without JWE encryption. Compatible with both `signed` and `unsigned` `dcApiRequestType` values.\n- `dc_api.jwt`: Response delivered over the W3C Digital Credentials API transport encrypted as a JWE.\n- `iar-post`: Response sent through the Interactive Authorisation Request transport without encryption.\n- `iar-post.jwt`: Response sent through the Interactive Authorisation Request transport encrypted as a JWE.\n","enum":["direct_post","direct_post.jwt","dc_api","dc_api.jwt","iar-post","iar-post.jwt"]}}></SchemaItem><SchemaItem collapsible={false} name={"verifierAttestation"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Verifier Attestation JWT sent to the holder, proving the verifier's authorization."}}></SchemaItem><SchemaItem collapsible={false} name={"individualId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the individual that the server sent the Authorization Request to with a push notification. Empty when the send request did not set `individualId`."}}></SchemaItem><SchemaItem collapsible={false} name={"mapperId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"External identifier of the individual that the server sent the Authorization Request to with a push notification. Empty when the send request did not set `mapperId`."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dataAgreement</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Data agreement that gives the terms for this verification exchange.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Data agreement that gives the terms for this verification exchange."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"nonce"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Cryptographic nonce used in the OpenID4VP Authorization Request to ensure freshness and prevent replay attacks."}}></SchemaItem><SchemaItem collapsible={false} name={"dcApiProtocol"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`openid4vp-v1-unsigned`, `openid4vp-v1-signed`, `org-iso-mdoc`]"} schema={{"type":"string","description":"Digital Credentials API exchange protocol identifier returned when the presentation definition is configured for DC API response modes.\nIdentifies the protocol variant used with the W3C Digital Credentials API (`navigator.credentials.get()`):\n- `openid4vp-v1-unsigned`: The Authorization Request is passed unencrypted to the browser's DC API. The browser can inspect the request for risk analysis. Use for development/testing only.\n- `openid4vp-v1-signed`: The Authorization Request is signed by the verifier's key and passed as an opaque string to the browser's DC API. Provides verifier authentication. Recommended for production.\n- `org-iso-mdoc`: The Authorization Request follows ISO 18013-7 Annex C. The wallet answers with an encrypted CBOR `EncryptedResponse`.\nOnly present when `responseMode` is `dc_api` or `dc_api.jwt`.\n","enum":["openid4vp-v1-unsigned","openid4vp-v1-signed","org-iso-mdoc"]}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>dcApiRequest</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Request object for the W3C Digital Credentials API, structured for browser invocation via `navigator.credentials.get()`.
Contains browser-specific request formats for Chrome and Safari.
Only present when `responseMode` is `dc_api` or `dc_api.jwt`.


</div><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>chrome</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Digital Credentials API request format for Chromium-based browsers. Uses the `providers` structure per the W3C Digital Credentials API specification.

</div><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>digital</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Digital credential request options for Chromium-based browsers.

</div><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>providers</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Array of credential request providers, each specifying a protocol and request data.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"protocol"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Digital Credentials API exchange protocol identifier (e.g. `openid4vp-v1-signed`, `openid4vp-v1-unsigned`)."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>request</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

The OpenID4VP Authorization Request payload. Structure varies by protocol:
- For `openid4vp-v1-signed`: Contains `{ "request": "<signed-JWT>" }`, a JWT signed by the verifier's key.
- For `openid4vp-v1-unsigned`: Contains the full Authorization Request object with `client_metadata`, `dcql_query`, `nonce`, `response_mode`, `response_type`.


</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","description":"The OpenID4VP Authorization Request payload. Structure varies by protocol:\n- For `openid4vp-v1-signed`: Contains `{ \"request\": \"<signed-JWT>\" }`, a JWT signed by the verifier's key.\n- For `openid4vp-v1-unsigned`: Contains the full Authorization Request object with `client_metadata`, `dcql_query`, `nonce`, `response_mode`, `response_type`.\n","additionalProperties":true}} 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></div></details></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"}>safari</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Digital Credentials API request format for Safari-based browsers. Uses the `requests` structure.

</div><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>digital</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Digital credential request options for Safari-based browsers.

</div><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>requests</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Array of credential requests for Safari, each containing data and protocol.

</div><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem","paddingBottom":".5rem"}}>Array [</div></li><SchemaItem collapsible={false} name={"data"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"JSON-stringified Authorization Request payload (Safari's DC API expects a string, not an object).\n\nDecoding it yields the same structure that Chrome receives in `request`:\n- For `openid4vp-v1-signed`: `{ \"request\": \"<signed-JWT>\" }`.\n- For `openid4vp-v1-unsigned`: the full inline Authorization Request object (`response_type`, `response_mode`, `nonce`, `dcql_query`, `client_metadata`, …).\n"}}></SchemaItem><SchemaItem collapsible={false} name={"protocol"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Digital Credentials API exchange protocol identifier (e.g. `openid4vp-v1-signed`, `openid4vp-v1-unsigned`)."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem></div></details></SchemaItem></div></details></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"requiresEncryption"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the OpenID4VP Authorization Response must be encrypted as a JWE. `true` when `responseMode` is `direct_post.jwt` or `dc_api.jwt`. `false` when `responseMode` is `direct_post` or `dc_api`."}}></SchemaItem><SchemaItem collapsible={false} name={"signatureStamp"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `false`, the signature stamp is hidden in signed PDFs."}}></SchemaItem><SchemaItem collapsible={false} name={"signatureCoordinate"} required={false} schemaName={"integer[]"} qualifierMessage={"**Possible values:** `>= 4`, `<= 4`"} schema={{"type":"array","description":"Page coordinates of the signature in the signed PDF, as `[x1, y1, x2, y2]` in points.","items":{"type":"integer"},"minItems":4,"maxItems":4,"example":[100,100,200,150]}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>files</strong><span className={"openapi-schema__name"}> object[]</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

List of files generated during the verification, including signed and unsigned PDF documents.

</div><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={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the credential associated with this file."}}></SchemaItem><SchemaItem collapsible={false} name={"error"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"Error code if signing failed, null otherwise."}}></SchemaItem><SchemaItem collapsible={false} name={"errorDescription"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","nullable":true,"description":"Detailed error message if signing failed, null otherwise."}}></SchemaItem><SchemaItem collapsible={false} name={"signedFile"} required={false} schemaName={"uri"} qualifierMessage={undefined} schema={{"type":"string","format":"uri","description":"URL of the signed PDF file."}}></SchemaItem><SchemaItem collapsible={false} name={"unsignedFile"} required={false} schemaName={"uri"} qualifierMessage={undefined} schema={{"type":"string","format":"uri","description":"URL of the unsigned PDF file."}}></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></div></details></SchemaItem><li><div style={{"fontSize":"var(--ifm-code-font-size)","opacity":"0.6","marginLeft":"-.5rem"}}>]</div></li></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"}>pagination</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={"currentPage"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Current page number","example":1}}></SchemaItem><SchemaItem collapsible={false} name={"totalItems"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Total number of items available","example":25}}></SchemaItem><SchemaItem collapsible={false} name={"totalPages"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Total number of pages based on limit","example":3}}></SchemaItem><SchemaItem collapsible={false} name={"limit"} required={false} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of items per page","example":10}}></SchemaItem><SchemaItem collapsible={false} name={"hasPrevious"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates if there's a previous page","example":false}}></SchemaItem><SchemaItem collapsible={false} name={"hasNext"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates if there's a next page","example":true}}></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"}>verificationHistoryStats</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"}}>

Counters for every verification exchange record of the organisation. The filters and the pagination do not change these values. `verificationFailed` counts a subset of `presentationReceived`, so the four counters do not add up to `total`. The server returns zero for every counter when it cannot build the counts.

</div><SchemaItem collapsible={false} name={"total"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of verification exchange records.","example":128}}></SchemaItem><SchemaItem collapsible={false} name={"presentationReceived"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of records with status `presentation_acked`.","example":96}}></SchemaItem><SchemaItem collapsible={false} name={"requestPending"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of records with status `request_sent` or `request_received`.","example":24}}></SchemaItem><SchemaItem collapsible={false} name={"verificationFailed"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of records with status `presentation_acked` and `verified` equal to `false`.","example":5}}></SchemaItem><SchemaItem collapsible={false} name={"expired"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"Number of records whose Authorization Request expired.","example":8}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"verificationHistory\": [\n    {\n      \"presentationExchangeId\": \"8e9c0a94-3b7d-4f2c-9d11-2f5a0b1c8d3e\",\n      \"id\": \"6821b4b0f5b1c2a3d4e5f6a7\",\n      \"vpTokenQrCode\": \"string\",\n      \"vpTokenRequestState\": \"string\",\n      \"vpTokenRequest\": \"string\",\n      \"presentationSubmission\": {\n        \"presentation_submission\": {\n          \"definition_id\": \"string\",\n          \"descriptor_map\": [\n            {\n              \"format\": \"string\",\n              \"id\": \"string\",\n              \"path\": \"string\",\n              \"path_nested\": {\n                \"format\": \"string\",\n                \"id\": \"string\",\n                \"path\": \"string\"\n              }\n            }\n          ],\n          \"id\": \"string\"\n        }\n      },\n      \"status\": \"request_sent\",\n      \"verified\": true,\n      \"createdAt\": 0,\n      \"updatedAt\": 0,\n      \"presentationDefinitionId\": \"string\",\n      \"openIdOrganisationId\": \"string\",\n      \"holder\": {\n        \"name\": \"string\"\n      },\n      \"presentation\": [\n        {}\n      ],\n      \"vpTokenResponse\": [\n        \"string\"\n      ],\n      \"transactionData\": {},\n      \"transactionDataBase64\": \"string\",\n      \"credentialExchangeId\": \"string\",\n      \"responseType\": \"vp_token\",\n      \"idToken\": \"string\",\n      \"idTokenDecoded\": {},\n      \"dataAgreementId\": \"string\",\n      \"userId\": \"string\",\n      \"requestExpired\": true,\n      \"requestExpiryTime\": 1747015200,\n      \"presentationValidity\": [\n        {}\n      ],\n      \"clientIdScheme\": \"redirect_uri\",\n      \"directPostRedirectUri\": \"string\",\n      \"responseMode\": \"direct_post\",\n      \"verifierAttestation\": \"string\",\n      \"individualId\": \"string\",\n      \"mapperId\": \"string\",\n      \"dataAgreement\": {},\n      \"nonce\": \"string\",\n      \"dcApiProtocol\": \"openid4vp-v1-unsigned\",\n      \"dcApiRequest\": {\n        \"chrome\": {\n          \"digital\": {\n            \"providers\": [\n              {\n                \"protocol\": \"string\",\n                \"request\": {}\n              }\n            ]\n          }\n        },\n        \"safari\": {\n          \"digital\": {\n            \"requests\": [\n              {\n                \"data\": \"string\",\n                \"protocol\": \"string\"\n              }\n            ]\n          }\n        }\n      },\n      \"requiresEncryption\": true,\n      \"signatureStamp\": true,\n      \"signatureCoordinate\": [\n        100,\n        100,\n        200,\n        150\n      ],\n      \"files\": [\n        {\n          \"credentialId\": \"string\",\n          \"error\": \"string\",\n          \"errorDescription\": \"string\",\n          \"signedFile\": \"string\",\n          \"unsignedFile\": \"string\"\n        }\n      ]\n    }\n  ],\n  \"pagination\": {\n    \"currentPage\": 1,\n    \"totalItems\": 25,\n    \"totalPages\": 3,\n    \"limit\": 10,\n    \"hasPrevious\": false,\n    \"hasNext\": true\n  },\n  \"verificationHistoryStats\": {\n    \"total\": 128,\n    \"presentationReceived\": 96,\n    \"requestPending\": 24,\n    \"verificationFailed\": 5,\n    \"expired\": 8\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

The organisation is unknown, or the digital wallet deployment is not resolved.

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

Unauthorized

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

The server could not read the page of verification exchange records.

</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>
      