---
id: config-revalidate-digital-wallet-open-id-verification
title: "Revalidate verification"
description: "Revalidates a verification exchange that the holder already answered."
sidebar_label: "Revalidate verification"
hide_title: true
hide_table_of_contents: true
api: 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
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"}>Revalidate verification</h1>

<MethodEndpoint method={"post"} path={"/v2/config/digital-wallet/openid/sdjwt/verification/history/{presentationExchangeId}/revalidate"}></MethodEndpoint>



Revalidates a verification exchange that the holder already answered.

The digital wallet checks the credential signatures, the revocation status and the trust chain again. The server then writes the new `presentationValidity` and `verified` values to the record and returns the full record. The other properties of the record do not change.

The request has no body. The server discards a body if you send one.

The path of this operation is `/v2`, but the response holds the V3 verification exchange record: `vpTokenResponse` is an array, `presentation` is an array, and the V3-only properties are present. This is the only V2 verification operation that answers with the V3 shape.

The server does not compute `requestExpired` on this operation. Read the record with `GET /v3/config/digital-wallet/openid/sdjwt/verification/history/{presentationExchangeId}` to get a current value.


## 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 verification exchange record. This is the `presentationExchangeId` property of the record, not its `id` property.","in":"path","name":"presentationExchangeId","required":true,"schema":{"type":"string"},"example":"8e9c0a94-3b7d-4f2c-9d11-2f5a0b1c8d3e"}}></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 digital wallet revalidated the presentation. The response holds the record with the new `presentationValidity` and `verified` values.

</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 record. The record tracks one OpenID for Verifiable Presentation (OpenID4VP) verification, from the Authorization Request to the verification result.

The server returns every property of this schema on every operation, except `dcApiRequest` and `dcApiProtocol`. A property that has no value yet holds the empty value for its type: `""` for a string, `0` for a number, `false` for a boolean and `null` for an object or an array.


</div><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></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"verificationHistory\": {\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}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

The organisation is unknown, the digital wallet deployment is not resolved, no verification exchange record has the supplied `presentationExchangeId`, or the digital wallet refused the revalidation.

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

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>
      