---
id: config-create-digital-wallet-open-id-verifier-global-configuration
title: "Create verifier global configuration"
description: "Creates the global configuration of the OpenID4VP verifier."
sidebar_label: "Create verifier global configuration"
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"}>Create verifier global configuration</h1>

<MethodEndpoint method={"post"} path={"/v2/config/digital-wallet/openid/verifier/global-configuration"}></MethodEndpoint>



Creates the global configuration of the OpenID4VP verifier.

The configuration sets whether the verifier accepts an encrypted Authorization Response, and how long an Authorization Request stays valid.


## Request

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

Settings of the new verifier global configuration.

</div></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"supportCredentialEncryption"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Set to `true` when the verifier accepts an encrypted OpenID4VP Authorization Response, that is a response mode of `direct_post.jwt` or `dc_api.jwt`. This property is mandatory.","example":true}}></SchemaItem><SchemaItem collapsible={false} name={"presentationRequestExpiresIn"} required={false} schemaName={"integer"} qualifierMessage={"**Possible values:** `>= 3600`"} schema={{"type":"integer","minimum":3600,"default":3600,"description":"Lifetime of an Authorization Request in seconds. The server writes this value to the `exp` claim of the request. The smallest value is 3600. The server uses 3600 when you leave this property out.","example":3600}}></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"201"} value={"201"}><div>

The server created the verifier global configuration.

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

Global configuration of the OpenID4VP verifier. It holds the settings that every verification request of the organisation uses.

</div><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Record identifier of the verifier global configuration. The server makes this value when it saves the record. It is not the same value as `verifierGlobalConfigurationId`.","example":"665f2b8c9a1d4e0012ab34cd"}}></SchemaItem><SchemaItem collapsible={false} name={"verifierGlobalConfigurationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier of the verifier global configuration. Use this identifier to read, update or delete the record.","example":"b7d1f4a2-8c3e-4a91-9f52-0d3c6e7a1b45"}}></SchemaItem><SchemaItem collapsible={false} name={"openIdOrganisationId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Identifier of the digital wallet deployment that holds this configuration."}}></SchemaItem><SchemaItem collapsible={false} name={"supportCredentialEncryption"} required={true} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, the verifier accepts an encrypted OpenID4VP Authorization Response, that is a response mode of `direct_post.jwt` or `dc_api.jwt`.","example":true}}></SchemaItem><SchemaItem collapsible={false} name={"presentationRequestExpiresIn"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Lifetime of an Authorization Request in seconds. The server writes this value to the `exp` claim of the request. The smallest value is 3600, and the default is 3600.","example":3600}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp in seconds when the server made this configuration.","example":1747011600}}></SchemaItem><SchemaItem collapsible={false} name={"updatedAt"} required={true} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp in seconds when the server last changed this configuration.","example":1747011600}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"verifierGlobalConfiguration\": {\n    \"id\": \"665f2b8c9a1d4e0012ab34cd\",\n    \"verifierGlobalConfigurationId\": \"b7d1f4a2-8c3e-4a91-9f52-0d3c6e7a1b45\",\n    \"openIdOrganisationId\": \"string\",\n    \"supportCredentialEncryption\": true,\n    \"presentationRequestExpiresIn\": 3600,\n    \"createdAt\": 1747011600,\n    \"updatedAt\": 1747011600\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"400"} value={"400"}><div>

The body has no `supportCredentialEncryption`, `presentationRequestExpiresIn` is smaller than 3600, the organisation is unknown, the digital wallet deployment is not resolved, or the digital wallet refused the configuration.

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