---
id: config-receive-digital-wallet-open-id-dc-api-response
title: "Receive DC API verification response"
description: "Receives an OpenID4VP Authorization Response delivered over the W3C Digital Credentials API (DC API) transport for a previously created verification request."
sidebar_label: "Receive DC API verification response"
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"}>Receive DC API verification response</h1>

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



Receives an OpenID4VP Authorization Response delivered over the W3C Digital Credentials API (DC API) transport for a previously created verification request.

The verifier frontend invokes the browser's `navigator.credentials.get()` with the request returned in `dcApiRequest`. The browser routes the request to the holder's wallet, which produces a credential response. The frontend forwards that response to this endpoint.

This endpoint is a transparent gateway: it authenticates the caller, looks up the verification record by `presentationExchangeId`, then proxies the request body byte-for-byte to the underlying digital wallet deployment, where JWE decryption (when `responseMode` is `dc_api.jwt`), VP Token parsing per OID4VP 1.0 §8.1, DCQL structure validation, and persistence are performed. The wallet's response body and HTTP status are returned to the caller unchanged.

Use this endpoint only when the verification request was created with `responseMode` set to `dc_api` or `dc_api.jwt`. For `direct_post` and `direct_post.jwt` flows the wallet posts the response directly to the verifier's `redirect_uri` and this endpoint is not used.


## 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 presentation exchange record tracking a single OpenID4VP verification lifecycle.","in":"path","name":"presentationExchangeId","required":true,"schema":{"type":"string"}}}></ParamsItem></ul></div></details><MimeTabs className={"openapi-tabs__mime"}><TabItem label={"application/json"} value={"application/json-schema"}><details style={{}} className={"openapi-markdown__details mime"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-mime"}><h3 className={"openapi-markdown__details-summary-header-body"}>Body</h3><strong className={"openapi-schema__required"}>required</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}><div style={{"marginTop":"1rem","marginBottom":"1rem"}}>

Body must contain exactly one of the two fields below. Field names are case-sensitive (lowercase, snake_case). Any additional fields are silently ignored downstream; the presentation submission is not sent; it is derived downstream from the DCQL query and the structure of `vp_token`.


</div></div><ul style={{"marginLeft":"1rem"}}><div><span className={"badge badge--info"}>oneOf</span><SchemaTabs><TabItem label={"response (string)"} value={"0-item-properties"}><SchemaItem collapsible={false} name={"response"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"For `responseMode` = `dc_api.jwt`: JWE compact serialization (five base64url segments separated by `.`) returned by the wallet. The downstream wallet decrypts it with the encryption key minted for this verification record and extracts `vp_token` from the decrypted payload.\n\nFor `responseMode` = `dc_api` (alternative form): a JSON-encoded string whose decoded form is `{\"vp_token\": { ... }}`.\n"}}></SchemaItem></TabItem><TabItem label={"vp_token (object)"} value={"1-item-properties"}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>vp_token</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"}}>

Map of input descriptor / DCQL credential ID to the wallet's Verifiable Presentation(s). Encoding of each VP depends on credential format (`dc+sd-jwt`, `mso_mdoc`, `jwt_vc_json`).

May be supplied as a parsed JSON object or as a JSON-encoded string; the wallet parses string values automatically.


</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"description":"Map of input descriptor / DCQL credential ID to the wallet's Verifiable Presentation(s). Encoding of each VP depends on credential format (`dc+sd-jwt`, `mso_mdoc`, `jwt_vc_json`).\n\nMay be supplied as a parsed JSON object or as a JSON-encoded string; the wallet parses string values automatically.\n","type":"object","additionalProperties":true}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem></TabItem></SchemaTabs></div></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Wallet processed the DC API response. Body is the wallet's response forwarded verbatim; the updated verification record, including `dcApiRequest`, `dcApiProtocol`, parsed presentation, and verification status.


</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={"presentationExchangeId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the verification exchange record, tracking the full lifecycle of a single OpenID for Verifiable Presentation (OpenID4VP) verification request."}}></SchemaItem><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for this verification exchange record. Same value as `presentationExchangeId`."}}></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 className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Wrapper containing the Presentation Submission object received from the holder's wallet.

</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 className={"openapi-schema__divider"}></span><span className={"openapi-schema__required"}>required</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

DIF Presentation Exchange Submission object mapping the holder's credentials to the verifier's requirements.

</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_acked`]"} schema={{"type":"string","enum":["request_sent","request_received","presentation_acked"],"description":"Lifecycle status of the verification exchange:\n1. `request_sent`: The OpenID4VP Authorization Request has been created and is waiting for the holder.\n2. `request_received`: The holder's wallet has received/scanned the Authorization Request.\n3. `presentation_acked`: The holder has submitted the Verifiable Presentation and the verifier has processed it.\n"}}></SchemaItem><SchemaItem collapsible={false} name={"verified"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Result of verifying the Verifiable Presentation: validates cryptographic signatures, credential status, and the Presentation Submission against 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"},"description":"Array of decoded credential objects presented by the holder."}}></SchemaItem><SchemaItem collapsible={false} name={"vpTokenResponse"} required={true} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"Array of Verifiable Presentation JWTs received from the holder."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>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={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Base64-encoded transaction data included in the presentation."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationValidity"} required={false} schemaName={"object[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"object"},"description":"Array of validation results for each credential in the presentation, including signature verification, expiry checks, and revocation status."}}></SchemaItem><SchemaItem collapsible={false} name={"clientIdScheme"} required={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`redirect_uri`, `did`, `verifier_attestation`, `x509_san_dns`]"} 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"]}}></SchemaItem><SchemaItem collapsible={false} name={"directPostRedirectUri"} required={false} 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={false} schemaName={"string"} qualifierMessage={"**Possible values:** [`direct_post`, `direct_post.jwt`, `dc_api`, `dc_api.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","enum":["direct_post","direct_post.jwt","dc_api","dc_api.jwt"]}}></SchemaItem><SchemaItem collapsible={false} name={"verifierAttestation"} required={false} 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={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the individual the verification request was sent to."}}></SchemaItem><SchemaItem collapsible={false} name={"mapperId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Mapper identifier linking the verification to an external individual record."}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreement"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Data agreement referencing the terms governing this verification."}}></SchemaItem><SchemaItem collapsible={false} name={"nonce"} required={false} 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`]"} 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.\nOnly present when `responseMode` is `dc_api` or `dc_api.jwt`.\n","enum":["openid4vp-v1-unsigned","openid4vp-v1-signed"]}}></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={false} 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={false} 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={"number[]"} qualifierMessage={"**Possible values:** `>= 4`, `<= 4`"} schema={{"type":"array","description":"Coordinates for signature placement in signed PDFs as `[x1, y1, x2, y2]`.","items":{"type":"number"},"minItems":4,"maxItems":4}}></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></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"presentationExchangeId\": \"string\",\n  \"id\": \"string\",\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  \"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    0\n  ],\n  \"files\": [\n    {\n      \"credentialId\": \"string\",\n      \"error\": \"string\",\n      \"errorDescription\": \"string\",\n      \"signedFile\": \"string\",\n      \"unsignedFile\": \"string\"\n    }\n  ]\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

Invalid request. Either the gateway could not resolve the organisation/wallet deployment or read the body, or the wallet rejected the payload (responseMode mismatch, missing/unparsable `response`/`vp_token`, no encryption key bound to the verification record, JWE decryption failed, VP Token structure or validation failed). Wallet errors are forwarded with their original status and body.


</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={"404"} value={"404"}><div>

Verification history not found for the supplied `presentationExchangeId`.

</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 (failed to create the upstream request, or to read the wallet response body).

</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={"502"} value={"502"}><div>

Failed to forward the DC API response to the digital wallet deployment.

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