---
id: config-update-digital-wallet-open-id-wallet-unit
title: "Update wallet unit"
description: "Updates an existing wallet unit managed by the wallet provider for OID4VCI and OpenID4VP operations."
sidebar_label: "Update wallet unit"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "put 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"}>Update wallet unit</h1>

<MethodEndpoint method={"put"} path={"/v2/config/digital-wallet/openid/wallet-provider/wallet-unit/{walletUnitId}"}></MethodEndpoint>



Updates an existing wallet unit managed by the wallet provider for OID4VCI and OpenID4VP operations.

## 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 a wallet unit registration managed by the Wallet Provider.","in":"path","name":"walletUnitId","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></summary><div style={{"textAlign":"left","marginLeft":"1rem"}}></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"clientId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Client identifier for the new wallet unit (DID or URL)."}}></SchemaItem><SchemaItem collapsible={false} name={"clientUrl"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL endpoint of the wallet instance."}}></SchemaItem><SchemaItem collapsible={false} name={"clientPublicKey"} required={true} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Public key JWK of the wallet instance for cryptographic verification."}}></SchemaItem><SchemaItem collapsible={false} name={"isAuthorised"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Set to `true` to authorize this wallet unit upon creation."}}></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div></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"}>walletUnit</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"id"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Unique identifier for the wallet unit record."}}></SchemaItem><SchemaItem collapsible={false} name={"clientId"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Client identifier of the wallet instance, typically a DID or URL. Used to identify the wallet during OID4VCI and OpenID4VP protocol interactions."}}></SchemaItem><SchemaItem collapsible={false} name={"clientUrl"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"URL endpoint of the wallet instance, used for direct communication."}}></SchemaItem><SchemaItem collapsible={false} name={"clientPublicKey"} required={true} schemaName={"object"} qualifierMessage={undefined} schema={{"type":"object","description":"Public key JWK of the wallet instance, used to verify Wallet Unit Attestation Proof of Possession."}}></SchemaItem><SchemaItem collapsible={false} name={"isAuthorised"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"When `true`, this wallet unit is authorized to interact with the Wallet Provider's services."}}></SchemaItem><SchemaItem collapsible={false} name={"assertionToken"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Client assertion JWT of the wallet unit, used for OAuth 2.0 client authentication."}}></SchemaItem><SchemaItem collapsible={false} name={"assertionTokenType"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"Type of the client assertion token."}}></SchemaItem><SchemaItem collapsible={false} name={"createdAt"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when this wallet unit was registered."}}></SchemaItem><SchemaItem collapsible={false} name={"updatedAt"} required={false} schemaName={"number"} qualifierMessage={undefined} schema={{"type":"number","description":"Unix timestamp (in seconds) when this wallet unit record was last modified."}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"walletUnit\": {\n    \"id\": \"string\",\n    \"clientId\": \"string\",\n    \"clientUrl\": \"string\",\n    \"clientPublicKey\": {},\n    \"isAuthorised\": true,\n    \"assertionToken\": \"string\",\n    \"assertionTokenType\": \"string\",\n    \"createdAt\": 0,\n    \"updatedAt\": 0\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>
      