---
id: update-oidc-client
title: "Update OIDC Client"
description: "Updates the configuration of an existing OpenID Connect client. Allows modification of the client's name, redirect URIs, allowed origins, identity matching attributes, or callback configuration."
sidebar_label: "Update OIDC Client"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "put api-method"
info_path: docs/extensions-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 OIDC Client</h1>

<MethodEndpoint method={"put"} path={"/v3/config/extension/oidc/client/{clientId}"}></MethodEndpoint>



Updates the configuration of an existing OpenID Connect client. Allows modification of the client's name, redirect URIs, allowed origins, identity matching attributes, or callback configuration.

## 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":"The ID of the client","in":"path","name":"clientId","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"}}>

At least one of the following fields must be provided for updating the client: `name`, `redirectURIs`, `allowedOrigins`, or `callbackURI`.


</div></div><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"name"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The name of the client"}}></SchemaItem><SchemaItem collapsible={false} name={"redirectURIs"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"The redirect URIs of the client"}}></SchemaItem><SchemaItem collapsible={false} name={"allowedOrigins"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"The allowed origins of the client"}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>identityMatchingAttributes</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

A map of VCTs (verifiable credential types) to claim paths used as linking values for identity matching. Each key is the VCT of a credential, and the value is the dot-separated path to the claim within that credential to use as the linking value. Example: `{"https://example.com/vct/drivers-license": "email"}` maps the `email` claim from the drivers license credential for identity matching.


</div><SchemaItem name={"property name*"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"callbackURI"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The URI at which a `sub` value will be calculated and returned according to the sent presentation.\n"}}></SchemaItem><SchemaItem collapsible={false} name={"callbackSecret"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The secret used to access the `callbackURI`. Required when `callbackURI` is set."}}></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

Client updated

</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"}}><li className={"schemaItem"}><summary style={{}}><strong>Cache-Control</strong><span style={{"opacity":"0.6"}}> string</span></summary><div><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

Indicates that the response should not be cached.

</div></div></li></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"}>client</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"presentationDefinitionId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the client's configured presentation definition"}}></SchemaItem><SchemaItem collapsible={false} name={"name"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The name of the client"}}></SchemaItem><SchemaItem collapsible={false} name={"clientId"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the client"}}></SchemaItem><SchemaItem collapsible={false} name={"clientSecret"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The secret of the client"}}></SchemaItem><SchemaItem collapsible={false} name={"redirectURIs"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"The valid redirect URIs for the client"}}></SchemaItem><SchemaItem collapsible={false} name={"allowedOrigins"} required={false} schemaName={"string[]"} qualifierMessage={undefined} schema={{"type":"array","items":{"type":"string"},"description":"The valid origins for the client"}}></SchemaItem><SchemaItem collapsible={false} name={"callbackURI"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The URI at which a `sub` value will be calculated and returned according to the sent presentation.\n"}}></SchemaItem><SchemaItem collapsible={false} name={"callbackSecret"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The secret used to access the `callbackURI`. Required when `callbackURI` is set."}}></SchemaItem><SchemaItem collapsible={true} className={"schemaItem"}><details style={{}} className={"openapi-markdown__details"}><summary style={{}}><span className={"openapi-schema__container"}><strong className={"openapi-schema__property"}>identityMatchingAttributes</strong><span className={"openapi-schema__name"}> object</span></span></summary><div style={{"marginLeft":"1rem"}}><div style={{"marginTop":".5rem","marginBottom":".5rem"}}>

A map of VCTs (verifiable credential types) to claim paths used as linking values for identity matching. Each key is the VCT of a credential, and the value is the dot-separated path to the claim within that credential to use as the linking value.


</div><SchemaItem name={"property name*"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}} collapsible={false} discriminator={false}></SchemaItem></div></details></SchemaItem><SchemaItem collapsible={false} name={"transactionDataAction"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The configured action for the transaction data, e.g. \"login\" or \"verify\"\n"}}></SchemaItem><SchemaItem collapsible={false} name={"kid"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"The ID of the client's key"}}></SchemaItem><SchemaItem collapsible={false} name={"systemManaged"} required={false} schemaName={"boolean"} qualifierMessage={undefined} schema={{"type":"boolean","description":"Indicates whether the client is system-managed or not"}}></SchemaItem></div></details></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"client\": {\n    \"presentationDefinitionId\": \"string\",\n    \"name\": \"string\",\n    \"clientId\": \"string\",\n    \"clientSecret\": \"string\",\n    \"redirectURIs\": [\n      \"string\"\n    ],\n    \"allowedOrigins\": [\n      \"string\"\n    ],\n    \"callbackURI\": \"string\",\n    \"callbackSecret\": \"string\",\n    \"identityMatchingAttributes\": {},\n    \"transactionDataAction\": \"string\",\n    \"kid\": \"string\",\n    \"systemManaged\": true\n  }\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      