---
id: config-delete-digital-wallet-open-id-verifier-file
title: "Delete document for signing"
description: "Deletes one uploaded PDF document. The EUDI Wallet can no longer download it, so a verification request that names it cannot be signed. A signed PDF of a verification cannot be deleted here. The response has no body."
sidebar_label: "Delete document for signing"
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 document for signing</h1>

<MethodEndpoint method={"delete"} path={"/v4/config/ows/verifier/files/{fileId}"}></MethodEndpoint>



Deletes one uploaded PDF document. The EUDI Wallet can no longer download it, so a verification request that names it cannot be signed. A signed PDF of a verification cannot be deleted here. The response has no body.


## 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 document, from the upload or the list.","in":"path","name":"fileId","required":true,"schema":{"type":"string","format":"uuid"},"example":"83cd38bc-3291-44a4-b40b-aa971275a4b5"}}></ParamsItem></ul></div></details><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"204"} value={"204"}><div>

The document 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={"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 a platform admin has turned off the feature of the operation for the organisation, the answer has `errorKey` `feature_disabled` and the member `feature` (the name of the 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={"Example"} value={"Example"}><ResponseSamples responseExample={"{\n  \"Code\": 403,\n  \"Message\": \"Unauthorized access;User doesn't have enough permissions;\"\n}"} language={"json"}></ResponseSamples></TabItem></SchemaTabs></TabItem></MimeTabs></div></TabItem><TabItem label={"404"} value={"404"}><div>

No uploaded document of the organisation has this ID (`File not found`).

</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={"500"} value={"500"}><div>

The document could not be deleted (`An error occurred while deleting the PDF`), also when `fileId` is not a UUID.

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