---
id: config-create-digital-wallet-open-id-verification-request-v-3
title: "Send verification request"
description: "Sends an OpenID4VP Authorization Request (V3) with enhanced features including transaction data, data agreements, and PDF signing support."
sidebar_label: "Send verification request"
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"}>Send verification request</h1>

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



Sends an OpenID4VP Authorization Request (V3) with enhanced features including transaction data, data agreements, and PDF signing support.

The transport (Direct Post vs. W3C Digital Credentials API) is determined entirely by the referenced presentation definition's `responseMode`:

- `direct_post` / `direct_post.jwt` → response contains `vpTokenQrCode` and `vpTokenRequest` (URI / JWT). Holder scans the QR or follows the deep link; wallet posts the response to `redirect_uri`.
- `dc_api` / `dc_api.jwt` → response contains `dcApiRequest` (browser-specific shapes for Chrome and Safari) and `dcApiProtocol`. The verifier frontend feeds `dcApiRequest.chrome` (or `dcApiRequest.safari`) into `navigator.credentials.get()` and forwards the wallet's response to `POST /v2/config/digital-wallet/openid/sdjwt/verification/history/{presentationExchangeId}/receive`. `vpTokenQrCode` and `vpTokenRequest` are empty in DC API flows.

The request body itself carries no DC API fields, `responseMode`, `dcApiRequestType`, `expectedOrigins`, and `encryptedResponseEncValuesSupported` are configured at presentation-definition creation time and inherited from the referenced PD.


## Request

<MimeTabs className={"openapi-tabs__mime"}><TabItem label={"application/json"} value={"application/json-schema"}><details style={{}} className={"openapi-markdown__details mime"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-mime"}><h3 className={"openapi-markdown__details-summary-header-body"}>Body</h3></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"requestByReference"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the OpenID for Verifiable Presentation (OpenID4VP) Authorization Request is passed by reference using the `request_uri` parameter. The wallet fetches the full request from the specified URI. Recommended for large Authorization Requests."}}></SchemaItem><SchemaItem collapsible={false} name={"presentationDefinitionId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the presentation definition to use for 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"}>transactionData</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Transaction data to include in the OpenID4VP Authorization Request. The holder must confirm the transaction data before submitting the presentation.

</div><SchemaItem name={"property name*"} required={false} schemaName={"any"} qualifierMessage={undefined} schema={{"type":"object","additionalProperties":true,"description":"Transaction data to include in the OpenID4VP Authorization Request. The holder must confirm the transaction data before submitting the presentation."}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"urlPrefix"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL scheme prefix for the Authorization Request deep link. Default is `openid4vp://?`. Custom schemes can be used for specific wallet implementations."}}></SchemaItem><SchemaItem collapsible={false} name={"individualId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of a specific individual to receive the verification request. When provided, the request is sent directly to the individual's device."}}></SchemaItem><SchemaItem collapsible={false} name={"mapperId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Mapper identifier linking the verification request to an external individual record."}}></SchemaItem><SchemaItem collapsible={false} name={"dataAgreement"} required={false} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Data agreement object referencing the terms governing this verification exchange."}}></SchemaItem><SchemaItem collapsible={false} name={"signatureStamp"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `false`, hides the signature stamp in signed PDFs generated from the presentation."}}></SchemaItem><SchemaItem collapsible={false} name={"signatureCoordinate"} required={false} schemaName={"number[]"} qualifierMessage={"**Possible values:** `>= 4`, `<= 4`"} schema={{"type":"array","description":"Page coordinates for placing the signature in a signed PDF, specified as `[x1, y1, x2, y2]` in points.","items":{"type":"number"},"minItems":4,"maxItems":4}}></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Verification request created successfully

</div><details style={{"textAlign":"left","marginBottom":"1rem"}} className={"openapi-markdown__details"} data-collaposed={true} open={false}><summary style={{}}><strong>Response Headers</strong></summary><ul style={{"marginLeft":"1rem"}}></ul></details><div><MimeTabs className={"openapi-tabs__mime"} schemaType={"response"}><TabItem label={"application/json"} value={"application/json"}><SchemaTabs className={"openapi-tabs__schema"}><TabItem label={"Schema"} value={"Schema"}><details style={{}} className={"openapi-markdown__details response"} data-collapsed={false} open={true}><summary style={{}} className={"openapi-markdown__details-summary-response"}><strong>Schema</strong></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>verificationHistory</strong><span className={"openapi-schema__name"}> object</span></span></summary><div 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></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"verificationHistory\": {\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  }\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"Direct Post (direct_post)"} value={"Direct Post (direct_post)"}><Markdown> Holder scans `vpTokenQrCode` or follows the deep link</Markdown><ResponseSamples responseExample={"{\n  \"verificationHistory\": {\n    \"presentationExchangeId\": \"8e9c0a94-3b7d-4f2c-9d11-2f5a0b1c8d3e\",\n    \"vpTokenQrCode\": \"openid4vp://?client_id=redirect_uri%3Ahttps%3A%2F%2Fissuer.example.com%2Forganisation%2Fxyz%2Fservice&request_uri=https%3A%2F%2Fissuer.example.com%2Forganisation%2Fxyz%2Fservice%2Fverification%2F8e9c0a94-3b7d-4f2c-9d11-2f5a0b1c8d3e&request_uri_method=post\",\n    \"vpTokenRequest\": \"openid4vp://?client_id=redirect_uri%3A...&request_uri=...\",\n    \"vpTokenRequestState\": \"5d8f2c9b-c2a4-4f0c-9a7d-1c2b3a4d5e6f\",\n    \"responseMode\": \"direct_post\",\n    \"clientIdScheme\": \"redirect_uri\",\n    \"requiresEncryption\": false,\n    \"nonce\": \"z4cVLRsq9pKx0NgQ7E3hJg\",\n    \"status\": \"request_sent\",\n    \"createdAt\": 1747011600\n  }\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"DC API Unsigned (dc_api)"} value={"DC API Unsigned (dc_api)"}><Markdown> Verifier frontend invokes `navigator.credentials.get()` with `dcApiRequest`</Markdown><ResponseSamples responseExample={"{\n  \"verificationHistory\": {\n    \"presentationExchangeId\": \"1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d\",\n    \"vpTokenQrCode\": \"\",\n    \"vpTokenRequest\": \"\",\n    \"vpTokenRequestState\": \"f3e2d1c0-b9a8-7654-3210-fedcba987654\",\n    \"responseMode\": \"dc_api\",\n    \"clientIdScheme\": \"redirect_uri\",\n    \"requiresEncryption\": false,\n    \"nonce\": \"z4cVLRsq9pKx0NgQ7E3hJg\",\n    \"dcApiProtocol\": \"openid4vp-v1-unsigned\",\n    \"dcApiRequest\": {\n      \"chrome\": {\n        \"digital\": {\n          \"providers\": [\n            {\n              \"protocol\": \"openid4vp-v1-unsigned\",\n              \"request\": {\n                \"response_type\": \"vp_token\",\n                \"response_mode\": \"dc_api\",\n                \"nonce\": \"z4cVLRsq9pKx0NgQ7E3hJg\",\n                \"dcql_query\": {\n                  \"credentials\": [\n                    {\n                      \"id\": \"Person Identification Data - PID\",\n                      \"format\": \"dc+sd-jwt\",\n                      \"meta\": {\n                        \"vct_values\": [\n                          \"PersonIdentificationData\"\n                        ]\n                      },\n                      \"claims\": [\n                        {\n                          \"path\": [\n                            \"family_name\"\n                          ]\n                        },\n                        {\n                          \"path\": [\n                            \"given_name\"\n                          ]\n                        }\n                      ]\n                    }\n                  ]\n                },\n                \"client_metadata\": {\n                  \"client_name\": \"Example Verifier\",\n                  \"vp_formats_supported\": {\n                    \"dc+sd-jwt\": {\n                      \"sd-jwt_alg_values\": [\n                        \"ES256\"\n                      ],\n                      \"kb-jwt_alg_values\": [\n                        \"ES256\"\n                      ]\n                    }\n                  }\n                }\n              }\n            }\n          ]\n        }\n      },\n      \"safari\": {\n        \"digital\": {\n          \"requests\": [\n            {\n              \"protocol\": \"openid4vp-v1-unsigned\",\n              \"data\": \"{\\\"response_type\\\":\\\"vp_token\\\",\\\"response_mode\\\":\\\"dc_api\\\",\\\"nonce\\\":\\\"z4cVLRsq9pKx0NgQ7E3hJg\\\",\\\"dcql_query\\\":{\\\"credentials\\\":[{\\\"id\\\":\\\"Person Identification Data - PID\\\",\\\"format\\\":\\\"dc+sd-jwt\\\",\\\"meta\\\":{\\\"vct_values\\\":[\\\"PersonIdentificationData\\\"]},\\\"claims\\\":[{\\\"path\\\":[\\\"family_name\\\"]},{\\\"path\\\":[\\\"given_name\\\"]}]}]},\\\"client_metadata\\\":{\\\"client_name\\\":\\\"Example Verifier\\\"}}\"\n            }\n          ]\n        }\n      }\n    },\n    \"status\": \"request_sent\",\n    \"createdAt\": 1747011600\n  }\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"DC API Signed + Encrypted (dc_api.jwt)"} value={"DC API Signed + Encrypted (dc_api.jwt)"}><Markdown> Signed Authorization Request JWT, wallet response will be returned as a JWE</Markdown><ResponseSamples responseExample={"{\n  \"verificationHistory\": {\n    \"presentationExchangeId\": \"9f8e7d6c-5b4a-3210-fedc-ba9876543210\",\n    \"vpTokenQrCode\": \"\",\n    \"vpTokenRequest\": \"\",\n    \"vpTokenRequestState\": \"11111111-2222-3333-4444-555555555555\",\n    \"responseMode\": \"dc_api.jwt\",\n    \"clientIdScheme\": \"redirect_uri\",\n    \"requiresEncryption\": true,\n    \"nonce\": \"uVj0pAq4cZmDk2yL6RxBvg\",\n    \"dcApiProtocol\": \"openid4vp-v1-signed\",\n    \"dcApiRequest\": {\n      \"chrome\": {\n        \"digital\": {\n          \"providers\": [\n            {\n              \"protocol\": \"openid4vp-v1-signed\",\n              \"request\": {\n                \"request\": \"eyJhbGciOiJFUzI1NiIsImtpZCI6IjEiLCJ0eXAiOiJvYXV0aC1hdXRoei1yZXErand0IiwieDVjIjpbIk1JSUI...\\\"]}.eyJjbGllbnRfaWQiOiJyZWRpcmVjdF91cmk6aHR0cHM6Ly92ZXJpZmllci5leGFtcGxlLmNvbSIsInJlc3BvbnNlX3R5cGUiOiJ2cF90b2tlbiIsInJlc3BvbnNlX21vZGUiOiJkY19hcGkuand0IiwibmV4cGVjdGVkX29yaWdpbnMiOlsiaHR0cHM6Ly92ZXJpZmllci5leGFtcGxlLmNvbSJdLCJkY3FsX3F1ZXJ5Ijp7Li4ufX0.signature\"\n              }\n            }\n          ]\n        }\n      },\n      \"safari\": {\n        \"digital\": {\n          \"requests\": [\n            {\n              \"protocol\": \"openid4vp-v1-signed\",\n              \"data\": \"{\\\"request\\\":\\\"eyJhbGciOiJFUzI1NiIsImtpZCI6IjEiLCJ0eXAiOiJvYXV0aC1hdXRoei1yZXErand0IiwieDVjIjpbIk1JSUI...signature\\\"}\"\n            }\n          ]\n        }\n      }\n    },\n    \"status\": \"request_sent\",\n    \"createdAt\": 1747011600\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

Unauthorized

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

Internal server error

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