---
id: config-create-digital-wallet-open-id-upload-file
title: "upload pdf file"
description: "Uploads a PDF file for use in OpenID4VP transaction data signing workflows."
sidebar_label: "upload pdf file"
hide_title: true
hide_table_of_contents: true
api: eJzlVs1uGzcQfpUBTwmwWimOexGCoI6dFG6CxoCT5mAY8Gg52mXEJRmSK1kRdOuT9NH6JMWQq187P4feepG4JGf4zTfDj7MSkkLllYvKGjEWH522KAMgXF28ganSBFProQsEysB7R+by4vTPK4geTcCKrUBiRAiqNsrUsLB+NtV2EUpRCOvII++5lGIsKmumqj73hJEuVK0i6k+oNcXkVuaj3yhNohCevnQU4isrl2K8Sp/KkxTj6Dsq2FUkE3mp7XRUDn0cTq1vBwyGp0PVUJtGcelIjIWdfKYqikI4z7CiosCrHOLerhC9MrUoBDvDKMZiogz6pViviz0UN9nudr3O88FZE7LDk9GI/w5p5aigSwGShNBVFYUw7bReioNg0DmtqkTZ8HNg05+PRMnvxtF1Sop1kYAbbB8Jul98fR/JG9TvlJl936NXD2hRUuwd8YjD28RYQyjJM2z+Oh0944N+mof9A8l768+t5MPS+GKP+NviB5ztrHeBKhOpJs/+7rF1XB6no9H6EfePkLM1Ea9QgjKui+DQY0uRvFjnejm6cga72FivvhKTd0jNL7ma/qfUXJpcORDIz8lDOuaIo3UhAlWdV3EpxjcrcebUW+Lh7bpYiVeEnvxZF5s0w1FjHZidC1t1LZkI11m5mJGWYmNZqpwNiRFkOzGcPx9m8RrSfSQTmHvZ2w965RtyqQ/zHReMiRGHBOkwqAtqbR+QKETntRiLJkYXxsOhpNYO0KlS1R5NLJUVHMWhgytvZZel9xtufuThOmLNYv0N85CXj4Hc7pi+5oLLdbLhe5twzBOFUHxUTpUoRNYccdbXeipgcZzws6tLmNES+EaQiX2dl/ChIZij7gjsFGJDcHfg5w7yMdB2IcKEwHmaqnuSsFCxgbuMEe7gibGRkoPoUenEgcOKnhZAZV0euR1Db/hiaTvPdAxmtHx5V7JU7lfWSkzS15uNNP7+6cPD2JLoQ7QzMuAwhA287KnHzM/sAQjYMphuOXOYDxPbG8x5S0qszNRu5AKrJBfUouLchs456+Ovu3xuU6J+200dFsJ+DR1FszWCJ//89fdTUNwzXC9IqtDkjoDuqwZNTYBGwpy8mvbpTGWnKs6SnStJvoTLyC1GgEB6Ogh2Tp5UbUBJLoK4LHp7nGiCylOaRh0KQJC5k4BFaiXSYcFqJcFZCZGqxlhta0WhADI4STlHMLQATXPSXFAsa0n7cKK0isvkBLtoW4y8vbKt0wpNRTlhKTxPdadTPIFzhpCec8BOqphwtmgMeW6DtKrIhCSkm1vgsGoITsrRA84Xi0WJabm0vh72tmH47vL89R/Xrwdssy5EVFEfJA/47mxEaXO7WIJyvk5GJ6fl8/IZ27K6tWj28GTZAienqec7rt29B+g/7hD7Co50H4dOozKMLxGy6tX3Rsyf5yZpqvIz0iswgzzS4L7hYE6zDt8WomEpH9+I1WqCgT56vV7z9JeOfHolCjFHnyorvxkbxWLhnrGwifMc++ADY+XtumPMjzWeLLXZiG+7i3vbH7zb6/0H5+r9NSvGpO932/TuplYr+S12wwwSe93Zae4saW4/YPCbJbPcQ3Esvxks/zL0R01ecGG9peXL7fa88k2DrWDl3ZxT7vr+BZrfUpY=
sidebar_class_name: "post 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"}>upload pdf file</h1>

<MethodEndpoint method={"post"} path={"/v3/config/extension/document-signing/file/upload"}></MethodEndpoint>



Uploads a PDF file for use in OpenID4VP transaction data signing workflows.

## Request

<MimeTabs className={"openapi-tabs__mime"}><TabItem label={"multipart/form-data"} value={"multipart/form-data-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><ul style={{"marginLeft":"1rem"}}><SchemaItem collapsible={false} name={"file"} required={true} schemaName={"binary"} qualifierMessage={undefined} schema={{"type":"string","format":"binary"}}></SchemaItem></ul></details></TabItem></MimeTabs><div><div><ApiTabs label={undefined} id={undefined}><TabItem label={"200"} value={"200"}><div>

File uploaded successfully

</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={"id"} required={true} schemaName={"uuid"} qualifierMessage={undefined} schema={{"type":"string","format":"uuid"}}></SchemaItem><SchemaItem collapsible={false} name={"filename"} required={true} schemaName={"string"} qualifierMessage={undefined} schema={{"type":"string"}}></SchemaItem><SchemaItem collapsible={false} name={"fileExternalLink"} required={true} schemaName={"uri"} qualifierMessage={undefined} schema={{"type":"string","format":"uri"}}></SchemaItem></ul></details></TabItem><TabItem label={"Example (from schema)"} value={"Example (from schema)"}><ResponseSamples responseExample={"{\n  \"id\": \"3fa85f64-5717-4562-b3fc-2c963f66afa6\",\n  \"filename\": \"string\",\n  \"fileExternalLink\": \"string\"\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>
      