---
id: onboard-delete-data-verifier-user
title: "Delete data verifier user"
description: "Deletes a data verifier user of the organisation. The user can no longer use the Data Verifier app: the API key of the user and an open magic link stop working immediately."
sidebar_label: "Delete data verifier user"
hide_title: true
hide_table_of_contents: true
api: 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
sidebar_class_name: "delete 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"}>Delete data verifier user</h1>

<MethodEndpoint method={"delete"} path={"/v4/onboard/platform/organisation/data-verifier-user/{dataVerifierUserId}"}></MethodEndpoint>



Deletes a data verifier user of the organisation. The user can no longer use the Data Verifier app: the API key of the user and an open magic link stop working immediately.

## 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 data verifier user.","in":"path","name":"dataVerifierUserId","required":true,"schema":{"type":"string","example":"6af1c3d2e4b5a69788990a1b"}}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"204"} value={"204"}><div>

The data verifier user is deleted.

</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></div></TabItem><TabItem label={"400"} value={"400"}><div>

No data verifier user of the organisation has the ID, or the user is already deleted: `Failed to get data verifier user: <dataVerifierUserId> for org: <organisationId>`.

</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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"401"} value={"401"}><div>

The `Authorization` header is missing, or the API key or token is not valid.

</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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"403"} value={"403"}><div>

The API key or token does not allow this call. An API key without the scope of the operation gets the older body `{"Code", "Message"}`. An `X-SandboxOrgId` header that names another sandbox organisation than the one of the API key gets `{"errorCode", "errorDescription"}`. When the feature `account` of the organisation is off (see [Read organisation features](/docs/openid4vc-api/onboard-read-organisation-features)), the body has the `errorKey` `feature_disabled` and the member `feature`.

</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"}}><div><span className={"badge badge--info"}>anyOf</span><SchemaTabs><TabItem label={"MOD1"} value={"0-item-properties"}><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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></TabItem><TabItem label={"Older error body"} value={"1-item-properties"}><SchemaItem collapsible={false} name={"Code"} required={true} schemaName={"integer"} qualifierMessage={undefined} schema={{"type":"integer","description":"The HTTP status.","example":403}}></SchemaItem><SchemaItem collapsible={false} name={"Message"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"What went wrong.","example":"Unauthorized access;User doesn't have enough permissions;"}}></SchemaItem></TabItem></SchemaTabs></div></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"missingScope"} value={"missingScope"}><Markdown> The API key does not have the scope</Markdown><ResponseSamples responseExample={"{\n  \"Code\": 403,\n  \"Message\": \"Unauthorized access;User doesn't have enough permissions;\"\n}"} language={"json"}></ResponseSamples></TabItem><TabItem label={"featureDisabled"} value={"featureDisabled"}><Markdown> The feature account is off</Markdown><ResponseSamples responseExample={"{\n  \"errorCode\": 403,\n  \"errorDescription\": \"The feature account is not enabled for this organisation\",\n  \"errorKey\": \"feature_disabled\",\n  \"feature\": \"account\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"500"} value={"500"}><div>

Unexpected 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><SchemaItem collapsible={false} name={"errorKey"} required={false} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string","description":"A text code of the refusal that does not change when the text changes. Only some refusals have it, for example `organisation_suspended`, `feature_disabled` or `purpose_exists`."}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"errorCode\": 400,\n  \"errorDescription\": \"Bad input parameter\",\n  \"errorKey\": \"string\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem></ApiTabs></div></div>
      