Step 2: attach the uploaded file to a packaging unit (target.packagingSpecId) or component (target.componentId) — exactly as the in-app “Nachweis hochladen”: the document is accepted (approved) with the given type, and for an analysable type AI extraction is queued when your plan includes it (extractionQueued; otherwise aiSkippedReason says why). Target ids are UUIDs — resolve them with GET /api/v1/ppwr/units?internalRef=… or GET /api/v1/ppwr/components. A unit or component of another company, a deleted one, a storageKey not issued to your company, and a unit-only type (technical_doc, declaration_of_conformity, marking) on a component all answer 404 {"error": "target"}. A storageKey that was already consumed by a successful attach (or has expired) answers 404 {"error": "upload_missing"} — start again at step 1. Re-use-system targets are not supported (400 {"error": "unsupported_target"}); a target with more than one id is 400 {"error": "ambiguous_target"}. Requires packaging:write; customer workspace with the PPWR module enabled — see the guide.
Why an extractable document did NOT queue extraction; absent when it did, or when the type is not analysed.
Verfügbare Optionen:
no_unit,
quota,
spend,
enqueue,
disabled
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Polygon One Helpcenter","colors":{"primary":"#15803D","light":"#07C983","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/polygonone/AMoRp9VbcW46gNsT/logo/light.svg?fit=max\u0026auto=format\u0026n=AMoRp9VbcW46gNsT\u0026q=85\u0026s=4a316da81d50e49c7f9f6480a235558e","dark":"https://mintcdn.com/polygonone/AMoRp9VbcW46gNsT/logo/dark.svg?fit=max\u0026auto=format\u0026n=AMoRp9VbcW46gNsT\u0026q=85\u0026s=2f010ff600ff4880f154678933ee7214"},"favicon":"https://mintcdn.com/polygonone/ySkQMGGRhMNkPSTt/favicon.svg?fit=max\u0026auto=format\u0026n=ySkQMGGRhMNkPSTt\u0026q=85\u0026s=90cbe4fd3ee2dbffcb8de6167a8d47f3","api":{"playground":{"display":"simple"}},"navbar":{"links":[{"href":"mailto:help@polygon-one.eu","label":"Support"}],"primary":{"type":"button","label":"App","href":"https://app.polygon-one.com/"}},"footer":{"socials":{"website":"https://polygon-one.com"}},"search":{"prompt":"Suche..."},"integrations":{"posthog":{"apiKey":"phc_uKa9gMArvxxjzGfYWUWS4YLP7yT7gPETBzA3ktR7mUTD","apiHost":"https://eu.i.posthog.com","sessionRecording":false}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[]},"languages":[{"language":"de","default":true,"href":""},{"language":"en","href":"en"},{"language":"fr","href":"fr/lieferanten/start"},{"language":"es","href":"es/lieferanten/start"},{"language":"zh","href":"zh/lieferanten/start"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"polygonone","hasAudioNarration":false,"actualSubdomain":"polygonone","customDomains":["help.polygon-one.com"],"gitSource":{"type":"github","owner":"polygon-one","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae0b07ed03bec028f0a63ad","collectionId":"0d95f0d6-0f41-4003-828c-a1abdfd66982","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae0b07ed03bec028f0a63ad"},"entitlements":{},"buildId":"6ae0b07ed03bec028f0a63ad","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"de","tag":"API-Referenz","count":62},{"language":"en","tag":"API Reference","count":62},{"language":"de","tag":"EUDR","count":53},{"language":"en","tag":"EUDR","count":53},{"language":"de","tag":"Für Lieferanten","count":28},{"language":"en","tag":"For suppliers","count":28},{"language":"es","tag":"Para proveedores","count":28},{"language":"fr","tag":"Pour les fournisseurs","count":28},{"language":"zh","tag":"供应商帮助","count":28},{"language":"de","tag":"PPWR","count":25},{"language":"en","tag":"PPWR","count":25},{"language":"de","tag":"API-Dokumentation","count":10},{"language":"en","tag":"API Documentation","count":10},{"language":"de","tag":"PPWR – Verpackungsdaten","count":9},{"language":"de","tag":"Ihr Datenformat","count":9},{"language":"en","tag":"PPWR – Packaging Data","count":9},{"language":"en","tag":"Your data format","count":9},{"language":"es","tag":"Su formato de datos","count":9},{"language":"fr","tag":"Votre format de données","count":9},{"language":"zh","tag":"数据格式指南","count":9},{"language":"de","tag":"Datensammlung (Art. 9 EUDR)","count":8},{"language":"de","tag":"DDS \u0026 Bestellungen (Art. 3 EUDR)","count":8},{"language":"de","tag":"Optional","count":8},{"language":"en","tag":"Data Collection (Art. 9 EUDR)","count":8},{"language":"en","tag":"DDS \u0026 Orders (Art. 3 EUDR)","count":8},{"language":"en","tag":"Optional","count":8},{"language":"es","tag":"Solicitud EUDR","count":7},{"language":"fr","tag":"Demande EUDR","count":7},{"language":"zh","tag":"EUDR 请求","count":7},{"language":"es","tag":"Espacio del proveedor","count":4},{"language":"es","tag":"Solicitud PPWR","count":4},{"language":"fr","tag":"Espace fournisseur","count":4},{"language":"fr","tag":"Demande PPWR","count":4},{"language":"zh","tag":"供应商工作区","count":4},{"language":"zh","tag":"PPWR 请求","count":4},{"language":"es","tag":"Resolver un problema","count":3},{"language":"fr","tag":"Résoudre un problème","count":3},{"language":"zh","tag":"更正、审核和状态","count":3},{"language":"es","tag":"Empiece aquí","count":1},{"language":"fr","tag":"Commencer ici","count":1},{"language":"zh","tag":"从这里开始","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"html:has(#content[data-page-href$=\"/lieferanten/start\"]) #pagination,html:has(#content[data-page-href*=\"/lieferanten/\"]) #mobile-nav #navigation-items>div:has(>#localization-select-trigger)>div:has(>button[aria-haspopup=menu]),html:has(#content[data-page-href*=\"/lieferanten/\"]) #navbar div:has(>div>a[href$=\"/lieferanten/start\"]),html:has(#content[data-page-href*=\"/lieferanten/\"]) #navbar li:has(>a[href=\"https://app.polygon-one.com/\"]),html:has(#content[data-page-href*=\"/lieferanten/\"]) [role=dialog] li:has(>a[href=\"https://app.polygon-one.com/\"]){display:none!important}"}],"page":{"pagePath":"api-reference/endpoint/ppwr/documents/create","slug":"/api-reference/endpoint/ppwr/documents/create","pageMetadata":{"title":"Dokument an Einheit oder Komponente anhängen","openapi":"POST /api/v1/ppwr/documents","description":"Step 2: attach the uploaded file to a packaging unit (`target.packagingSpecId`) or component (`target.componentId`) — exactly as the in-app \"Nachweis hochladen\": the document is accepted (`approved`) with the given `type`, and for an analysable type AI extraction is queued when your plan includes it (`extractionQueued`; otherwise `aiSkippedReason` says why). Target ids are UUIDs — resolve them with `GET /api/v1/ppwr/units?internalRef=…` or `GET /api/v1/ppwr/components`. A unit or component of another company, a deleted one, a `storageKey` not issued to your company, and a unit-only `type` (`technical_doc`, `declaration_of_conformity`, `marking`) on a component all answer `404 {\"error\": \"target\"}`. A `storageKey` that was already consumed by a successful attach (or has expired) answers `404 {\"error\": \"upload_missing\"}` — start again at step 1. Re-use-system targets are not supported (`400 {\"error\": \"unsupported_target\"}`); a `target` with more than one id is `400 {\"error\": \"ambiguous_target\"}`. Requires `packaging:write`; customer workspace with the PPWR module enabled — see the guide.","href":"/api-reference/endpoint/ppwr/documents/create"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Step 2: attach the uploaded file to a packaging unit (\", _jsx(_components.code, {\n children: \"target.packagingSpecId\"\n }), \") or component (\", _jsx(_components.code, {\n children: \"target.componentId\"\n }), \") — exactly as the in-app “Nachweis hochladen”: the document is accepted (\", _jsx(_components.code, {\n children: \"approved\"\n }), \") with the given \", _jsx(_components.code, {\n children: \"type\"\n }), \", and for an analysable type AI extraction is queued when your plan includes it (\", _jsx(_components.code, {\n children: \"extractionQueued\"\n }), \"; otherwise \", _jsx(_components.code, {\n children: \"aiSkippedReason\"\n }), \" says why). Target ids are UUIDs — resolve them with \", _jsx(_components.code, {\n children: \"GET /api/v1/ppwr/units?internalRef=…\"\n }), \" or \", _jsx(_components.code, {\n children: \"GET /api/v1/ppwr/components\"\n }), \". A unit or component of another company, a deleted one, a \", _jsx(_components.code, {\n children: \"storageKey\"\n }), \" not issued to your company, and a unit-only \", _jsx(_components.code, {\n children: \"type\"\n }), \" (\", _jsx(_components.code, {\n children: \"technical_doc\"\n }), \", \", _jsx(_components.code, {\n children: \"declaration_of_conformity\"\n }), \", \", _jsx(_components.code, {\n children: \"marking\"\n }), \") on a component all answer \", _jsx(_components.code, {\n children: \"404 {\\\"error\\\": \\\"target\\\"}\"\n }), \". A \", _jsx(_components.code, {\n children: \"storageKey\"\n }), \" that was already consumed by a successful attach (or has expired) answers \", _jsx(_components.code, {\n children: \"404 {\\\"error\\\": \\\"upload_missing\\\"}\"\n }), \" — start again at step 1. Re-use-system targets are not supported (\", _jsx(_components.code, {\n children: \"400 {\\\"error\\\": \\\"unsupported_target\\\"}\"\n }), \"); a \", _jsx(_components.code, {\n children: \"target\"\n }), \" with more than one id is \", _jsx(_components.code, {\n children: \"400 {\\\"error\\\": \\\"ambiguous_target\\\"}\"\n }), \". Requires \", _jsx(_components.code, {\n children: \"packaging:write\"\n }), \"; customer workspace with the PPWR module enabled — see the guide.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Dokument an Einheit oder Komponente anhängen","openapi":"POST /api/v1/ppwr/documents","description":"Step 2: attach the uploaded file to a packaging unit (`target.packagingSpecId`) or component (`target.componentId`) — exactly as the in-app \"Nachweis hochladen\": the document is accepted (`approved`) with the given `type`, and for an analysable type AI extraction is queued when your plan includes it (`extractionQueued`; otherwise `aiSkippedReason` says why). Target ids are UUIDs — resolve them with `GET /api/v1/ppwr/units?internalRef=…` or `GET /api/v1/ppwr/components`. A unit or component of another company, a deleted one, a `storageKey` not issued to your company, and a unit-only `type` (`technical_doc`, `declaration_of_conformity`, `marking`) on a component all answer `404 {\"error\": \"target\"}`. A `storageKey` that was already consumed by a successful attach (or has expired) answers `404 {\"error\": \"upload_missing\"}` — start again at step 1. Re-use-system targets are not supported (`400 {\"error\": \"unsupported_target\"}`); a `target` with more than one id is `400 {\"error\": \"ambiguous_target\"}`. Requires `packaging:write`; customer workspace with the PPWR module enabled — see the guide.","href":"/api-reference/endpoint/ppwr/documents/create"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"createPpwrDocument","summary":"Attach Document","description":"Step 2: attach the uploaded file to a packaging unit (`target.packagingSpecId`) or component (`target.componentId`) — exactly as the in-app \"Nachweis hochladen\": the document is accepted (`approved`) with the given `type`, and for an analysable type AI extraction is queued when your plan includes it (`extractionQueued`; otherwise `aiSkippedReason` says why). Target ids are UUIDs — resolve them with `GET /api/v1/ppwr/units?internalRef=…` or `GET /api/v1/ppwr/components`. A unit or component of another company, a deleted one, a `storageKey` not issued to your company, and a unit-only `type` (`technical_doc`, `declaration_of_conformity`, `marking`) on a component all answer `404 {\"error\": \"target\"}`. A `storageKey` that was already consumed by a successful attach (or has expired) answers `404 {\"error\": \"upload_missing\"}` — start again at step 1. Re-use-system targets are not supported (`400 {\"error\": \"unsupported_target\"}`); a `target` with more than one id is `400 {\"error\": \"ambiguous_target\"}`. Requires `packaging:write`; customer workspace with the PPWR module enabled — see the guide.","tags":["PPWR Documents"],"requestBody":"1a09c020-7368-4cfc-9371-6156614da8ba","responses":{"201":"0a832540-bdce-46a2-901b-65d06fbe01fe","400":"2a62fce0-36fb-4ccf-b817-549a2f85d19a","401":"153add1c-7780-4992-b982-c33db526f2d5","403":"0ee01744-cf38-495b-95a5-98892f5783ee","404":"9b3f7fda-79a1-4000-820c-a704e5486487","409":"aee61ca9-4abb-435d-987a-5ac98e794bc4","429":"b5f29485-aef9-48e2-bbdf-b88ee57df2ad","500":"723e98ff-ca86-405d-82f5-c2d98588199c"},"method":"post","type":"path","servers":["525ee7a2-0b29-4150-83c9-6311c95aea37"],"security":["bae4c7a0-d716-46dc-bfdc-909a8704f12f"],"path":"/api/v1/ppwr/documents","baseUrlOptions":["https://app.polygon-one.com"],"title":"Attach Document","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["heavy_metals","pfas","recycled_content","technical_doc","declaration_of_conformity","other","technical_drawing","marking","supplier_statement"],"description":"Document type. `technical_doc`, `declaration_of_conformity` and `marking` can be attached to a packaging unit only.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"storageKey":{"type":"string","minLength":1,"description":"The `s3Key` from `POST /api/v1/ppwr/documents/upload-url`, after the file was uploaded. Usable for one attach.","isRequired":true,"uniqueKey":"storageKey","typeLabel":"string"},"fileName":{"oneOf":[{"type":"string","minLength":1,"description":"File name to record for the document, or `null`.","isRequired":true,"uniqueKey":"fileName.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"description":"File name to record for the document, or `null`.","isRequired":true,"uniqueKey":"fileName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"fileName","typeLabel":"string | null"},"target":{"oneOf":[{"type":"object","description":"Where to attach the document: exactly one of `packagingSpecId` or `componentId`.","required":["packagingSpecId"],"properties":{"packagingSpecId":{"type":"string","format":"uuid","description":"UUID of the packaging unit (`id` of `GET /api/v1/ppwr/units`).","isRequired":true,"uniqueKey":"target.oneOf.0.packagingSpecId","typeLabel":"string\u003cuuid>"}},"isRequired":true,"uniqueKey":"target.oneOf.0","typeLabel":"object"},{"type":"object","description":"Where to attach the document: exactly one of `packagingSpecId` or `componentId`.","required":["componentId"],"properties":{"componentId":{"type":"string","format":"uuid","description":"UUID of the packaging component (`id` of `GET /api/v1/ppwr/components`).","isRequired":true,"uniqueKey":"target.oneOf.1.componentId","typeLabel":"string\u003cuuid>"}},"isRequired":true,"uniqueKey":"target.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"target","typeLabel":"object"},"allowDuplicate":{"type":"boolean","description":"Send `true` to attach a second copy of a file that a `409` reported as a duplicate.","uniqueKey":"allowDuplicate","typeLabel":"boolean"}},"required":["type","storageKey","fileName","target"],"description":"Attach an uploaded file as a document of a packaging unit or component.","uniqueKey":"","typeLabel":"object"},"example":{"type":"heavy_metals","storageKey":"pending/operator/3f6c2a8e-5b1d-4c7e-9a2f-6d8b1e4c0a17/1d5f9a3c-7e28-4b64-9c0a-3e8b6d2f4a19-heavy-metals-test-report-k1.pdf","fileName":"heavy-metals-test-report-k1.pdf","target":{"componentId":"e7b3c1a5-2d84-4f96-8c0e-4a9f6d2b7e13"}},"examples":{"Example":{"title":"Example","value":{"type":"heavy_metals","storageKey":"pending/operator/3f6c2a8e-5b1d-4c7e-9a2f-6d8b1e4c0a17/1d5f9a3c-7e28-4b64-9c0a-3e8b6d2f4a19-heavy-metals-test-report-k1.pdf","fileName":"heavy-metals-test-report-k1.pdf","target":{"componentId":"e7b3c1a5-2d84-4f96-8c0e-4a9f6d2b7e13"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"0a832540-bdce-46a2-901b-65d06fbe01fe":{"description":"Document attached","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"The new document's id.","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"extractionQueued":{"type":"boolean","description":"True when AI extraction was queued for this document.","isRequired":true,"uniqueKey":"extractionQueued","typeLabel":"boolean"},"aiSkippedReason":{"type":"string","enum":["no_unit","quota","spend","enqueue","disabled"],"description":"Why an extractable document did NOT queue extraction; absent when it did, or when the type is not analysed.","uniqueKey":"aiSkippedReason","typeLabel":"enum\u003cstring>"}},"required":["id","extractionQueued"],"uniqueKey":"","typeLabel":"object"},"example":{"id":"5f9b3d7e-0a64-4c21-8e5f-2c8a4b6d0e71","extractionQueued":true},"examples":{"Example":{"title":"Example","value":{"id":"5f9b3d7e-0a64-4c21-8e5f-2c8a4b6d0e71","extractionQueued":true}}},"exampleType":"examples"}},"exampleType":"examples"},"2a62fce0-36fb-4ccf-b817-549a2f85d19a":{"description":"Invalid request data","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable message, or a stable machine key (e.g. `batchTooLarge`, `overwriteRequired`, `duplicate`) on the batch, PPWR and upload endpoints.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine code on some `400` and `409` answers, e.g. `plot_geometry_invalid` or `FORK_HAS_ORDER`. Match on it rather than on `error`. Further flat keys may accompany it (e.g. `precisionDigits`, `field`).","uniqueKey":"code","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine code of the issue, e.g. `invalid_type`, `too_small`, `custom`.","isRequired":true,"uniqueKey":"details.items.[INDEX].code","typeLabel":"string"},"path":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.1","typeLabel":"number"}],"uniqueKey":"details.items.[INDEX].path.items.[INDEX]","typeLabel":"string | number"},"description":"Location of the offending value in the request: object keys and 0-based array positions.","isRequired":true,"uniqueKey":"details.items.[INDEX].path","typeLabel":"(string | number)[]"},"message":{"type":"string","description":"Human-readable English explanation. The wording may change; match on `code` and `path`.","isRequired":true,"uniqueKey":"details.items.[INDEX].message","typeLabel":"string"}},"required":["code","path","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"details.items.[INDEX].additionalProperties","typeLabel":"any"},"description":"One validation issue. Issue-specific keys (e.g. `expected`, `minimum`) may accompany the three listed.","uniqueKey":"details.items.[INDEX]","typeLabel":"object"},"description":"The validation issues on a `400` validation error.","uniqueKey":"details","typeLabel":"object[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["duplicateName","duplicateEan"],"description":"`duplicateName`: a live article of your company already has this name. `duplicateEan`: a live article already has this EAN.","isRequired":true,"uniqueKey":"warnings.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"existingInternalArticleNr":{"type":"string","description":"`duplicateName` only: internal article number of the existing article.","uniqueKey":"warnings.items.[INDEX].existingInternalArticleNr","typeLabel":"string"},"existingArticleName":{"type":"string","description":"`duplicateEan` only: name of the existing article.","uniqueKey":"warnings.items.[INDEX].existingArticleName","typeLabel":"string"}},"required":["type"],"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"description":"`POST /articles` `409` only: soft duplicate warnings. Resend with `acknowledgeWarnings: true` to create the article anyway.","uniqueKey":"warnings","typeLabel":"object[]"}},"required":["error"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"description":"Error body of every endpoint except the `429` the edge answers. Some errors add flat machine-readable keys next to `error`, e.g. `maxBatchSize` on `413 batchTooLarge` or `confirmUpdateCount` on `409 overwriteRequired`.","uniqueKey":"","typeLabel":"object"},"example":{"error":"Validation failed","details":[{"origin":"string","code":"too_small","minimum":1,"inclusive":true,"path":["address","street"],"message":"Address is required."}]},"examples":{"Example":{"title":"Example","value":{"error":"Validation failed","details":[{"origin":"string","code":"too_small","minimum":1,"inclusive":true,"path":["address","street"],"message":"Address is required."}]}}},"exampleType":"examples"}},"exampleType":"examples"},"153add1c-7780-4992-b982-c33db526f2d5":{"description":"Invalid or expired API key, or the key's user account is not active.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable message, or a stable machine key (e.g. `batchTooLarge`, `overwriteRequired`, `duplicate`) on the batch, PPWR and upload endpoints.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine code on some `400` and `409` answers, e.g. `plot_geometry_invalid` or `FORK_HAS_ORDER`. Match on it rather than on `error`. Further flat keys may accompany it (e.g. `precisionDigits`, `field`).","uniqueKey":"code","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine code of the issue, e.g. `invalid_type`, `too_small`, `custom`.","isRequired":true,"uniqueKey":"details.items.[INDEX].code","typeLabel":"string"},"path":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.1","typeLabel":"number"}],"uniqueKey":"details.items.[INDEX].path.items.[INDEX]","typeLabel":"string | number"},"description":"Location of the offending value in the request: object keys and 0-based array positions.","isRequired":true,"uniqueKey":"details.items.[INDEX].path","typeLabel":"(string | number)[]"},"message":{"type":"string","description":"Human-readable English explanation. The wording may change; match on `code` and `path`.","isRequired":true,"uniqueKey":"details.items.[INDEX].message","typeLabel":"string"}},"required":["code","path","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"details.items.[INDEX].additionalProperties","typeLabel":"any"},"description":"One validation issue. Issue-specific keys (e.g. `expected`, `minimum`) may accompany the three listed.","uniqueKey":"details.items.[INDEX]","typeLabel":"object"},"description":"The validation issues on a `400` validation error.","uniqueKey":"details","typeLabel":"object[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["duplicateName","duplicateEan"],"description":"`duplicateName`: a live article of your company already has this name. `duplicateEan`: a live article already has this EAN.","isRequired":true,"uniqueKey":"warnings.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"existingInternalArticleNr":{"type":"string","description":"`duplicateName` only: internal article number of the existing article.","uniqueKey":"warnings.items.[INDEX].existingInternalArticleNr","typeLabel":"string"},"existingArticleName":{"type":"string","description":"`duplicateEan` only: name of the existing article.","uniqueKey":"warnings.items.[INDEX].existingArticleName","typeLabel":"string"}},"required":["type"],"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"description":"`POST /articles` `409` only: soft duplicate warnings. Resend with `acknowledgeWarnings: true` to create the article anyway.","uniqueKey":"warnings","typeLabel":"object[]"}},"required":["error"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"description":"Error body of every endpoint except the `429` the edge answers. Some errors add flat machine-readable keys next to `error`, e.g. `maxBatchSize` on `413 batchTooLarge` or `confirmUpdateCount` on `409 overwriteRequired`.","uniqueKey":"","typeLabel":"object"},"example":{"error":"Invalid or expired API key"},"examples":{"Example":{"title":"Example","value":{"error":"Invalid or expired API key"}}},"exampleType":"examples"}},"exampleType":"examples"},"0ee01744-cf38-495b-95a5-98892f5783ee":{"description":"Insufficient permissions for this resource","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable message, or a stable machine key (e.g. `batchTooLarge`, `overwriteRequired`, `duplicate`) on the batch, PPWR and upload endpoints.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine code on some `400` and `409` answers, e.g. `plot_geometry_invalid` or `FORK_HAS_ORDER`. Match on it rather than on `error`. Further flat keys may accompany it (e.g. `precisionDigits`, `field`).","uniqueKey":"code","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine code of the issue, e.g. `invalid_type`, `too_small`, `custom`.","isRequired":true,"uniqueKey":"details.items.[INDEX].code","typeLabel":"string"},"path":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.1","typeLabel":"number"}],"uniqueKey":"details.items.[INDEX].path.items.[INDEX]","typeLabel":"string | number"},"description":"Location of the offending value in the request: object keys and 0-based array positions.","isRequired":true,"uniqueKey":"details.items.[INDEX].path","typeLabel":"(string | number)[]"},"message":{"type":"string","description":"Human-readable English explanation. The wording may change; match on `code` and `path`.","isRequired":true,"uniqueKey":"details.items.[INDEX].message","typeLabel":"string"}},"required":["code","path","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"details.items.[INDEX].additionalProperties","typeLabel":"any"},"description":"One validation issue. Issue-specific keys (e.g. `expected`, `minimum`) may accompany the three listed.","uniqueKey":"details.items.[INDEX]","typeLabel":"object"},"description":"The validation issues on a `400` validation error.","uniqueKey":"details","typeLabel":"object[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["duplicateName","duplicateEan"],"description":"`duplicateName`: a live article of your company already has this name. `duplicateEan`: a live article already has this EAN.","isRequired":true,"uniqueKey":"warnings.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"existingInternalArticleNr":{"type":"string","description":"`duplicateName` only: internal article number of the existing article.","uniqueKey":"warnings.items.[INDEX].existingInternalArticleNr","typeLabel":"string"},"existingArticleName":{"type":"string","description":"`duplicateEan` only: name of the existing article.","uniqueKey":"warnings.items.[INDEX].existingArticleName","typeLabel":"string"}},"required":["type"],"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"description":"`POST /articles` `409` only: soft duplicate warnings. Resend with `acknowledgeWarnings: true` to create the article anyway.","uniqueKey":"warnings","typeLabel":"object[]"}},"required":["error"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"description":"Error body of every endpoint except the `429` the edge answers. Some errors add flat machine-readable keys next to `error`, e.g. `maxBatchSize` on `413 batchTooLarge` or `confirmUpdateCount` on `409 overwriteRequired`.","uniqueKey":"","typeLabel":"object"},"example":{"error":"Forbidden"},"examples":{"Example":{"title":"Example","value":{"error":"Forbidden"}}},"exampleType":"examples"}},"exampleType":"examples"},"9b3f7fda-79a1-4000-820c-a704e5486487":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable message, or a stable machine key (e.g. `batchTooLarge`, `overwriteRequired`, `duplicate`) on the batch, PPWR and upload endpoints.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine code on some `400` and `409` answers, e.g. `plot_geometry_invalid` or `FORK_HAS_ORDER`. Match on it rather than on `error`. Further flat keys may accompany it (e.g. `precisionDigits`, `field`).","uniqueKey":"code","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine code of the issue, e.g. `invalid_type`, `too_small`, `custom`.","isRequired":true,"uniqueKey":"details.items.[INDEX].code","typeLabel":"string"},"path":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.1","typeLabel":"number"}],"uniqueKey":"details.items.[INDEX].path.items.[INDEX]","typeLabel":"string | number"},"description":"Location of the offending value in the request: object keys and 0-based array positions.","isRequired":true,"uniqueKey":"details.items.[INDEX].path","typeLabel":"(string | number)[]"},"message":{"type":"string","description":"Human-readable English explanation. The wording may change; match on `code` and `path`.","isRequired":true,"uniqueKey":"details.items.[INDEX].message","typeLabel":"string"}},"required":["code","path","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"details.items.[INDEX].additionalProperties","typeLabel":"any"},"description":"One validation issue. Issue-specific keys (e.g. `expected`, `minimum`) may accompany the three listed.","uniqueKey":"details.items.[INDEX]","typeLabel":"object"},"description":"The validation issues on a `400` validation error.","uniqueKey":"details","typeLabel":"object[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["duplicateName","duplicateEan"],"description":"`duplicateName`: a live article of your company already has this name. `duplicateEan`: a live article already has this EAN.","isRequired":true,"uniqueKey":"warnings.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"existingInternalArticleNr":{"type":"string","description":"`duplicateName` only: internal article number of the existing article.","uniqueKey":"warnings.items.[INDEX].existingInternalArticleNr","typeLabel":"string"},"existingArticleName":{"type":"string","description":"`duplicateEan` only: name of the existing article.","uniqueKey":"warnings.items.[INDEX].existingArticleName","typeLabel":"string"}},"required":["type"],"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"description":"`POST /articles` `409` only: soft duplicate warnings. Resend with `acknowledgeWarnings: true` to create the article anyway.","uniqueKey":"warnings","typeLabel":"object[]"}},"required":["error"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"description":"Error body of every endpoint except the `429` the edge answers. Some errors add flat machine-readable keys next to `error`, e.g. `maxBatchSize` on `413 batchTooLarge` or `confirmUpdateCount` on `409 overwriteRequired`.","uniqueKey":"","typeLabel":"object"},"example":{"error":"Resource not found"},"examples":{"Example":{"title":"Example","value":{"error":"Resource not found"}}},"exampleType":"examples"}},"exampleType":"examples"},"aee61ca9-4abb-435d-987a-5ac98e794bc4":{"description":"A live document of your company already has these exact bytes — nothing was written. Re-send with `allowDuplicate: true` to attach a second copy anyway.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","enum":["duplicate"],"description":"Always `duplicate`.","isRequired":true,"uniqueKey":"error","typeLabel":"enum\u003cstring>"},"existing":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"UUID of the existing document with the same bytes.","isRequired":true,"uniqueKey":"existing.id","typeLabel":"string\u003cuuid>"},"fileName":{"oneOf":[{"type":"string","description":"File name of the existing document, or `null`.","isRequired":true,"uniqueKey":"existing.fileName.oneOf.0","typeLabel":"string"},{"type":"null","description":"File name of the existing document, or `null`.","isRequired":true,"uniqueKey":"existing.fileName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"existing.fileName","typeLabel":"string | null"},"anchor":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["unit","component"],"description":"Whether the existing copy is attached to a packaging unit or a component.","isRequired":true,"uniqueKey":"existing.anchor.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"ref":{"type":"string","description":"Your reference of that unit (`internalRef`) or component (`code`).","isRequired":true,"uniqueKey":"existing.anchor.oneOf.0.ref","typeLabel":"string"},"name":{"type":"string","description":"Name of that unit or component.","isRequired":true,"uniqueKey":"existing.anchor.oneOf.0.name","typeLabel":"string"}},"required":["kind","ref","name"],"description":"The packaging unit or component the existing copy is attached to; null when it is on neither.","isRequired":true,"uniqueKey":"existing.anchor.oneOf.0","typeLabel":"object"},{"type":"null","properties":{"kind":{"type":"string","enum":["unit","component"],"description":"Whether the existing copy is attached to a packaging unit or a component."},"ref":{"type":"string","description":"Your reference of that unit (`internalRef`) or component (`code`)."},"name":{"type":"string","description":"Name of that unit or component."}},"required":["kind","ref","name"],"description":"The packaging unit or component the existing copy is attached to; null when it is on neither.","isRequired":true,"uniqueKey":"existing.anchor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"existing.anchor","typeLabel":"object | null"}},"required":["id","fileName","anchor"],"description":"The live document of your company that already has these exact bytes.","isRequired":true,"uniqueKey":"existing","typeLabel":"object"}},"required":["error","existing"],"uniqueKey":"","typeLabel":"object"},"example":{"error":"duplicate","existing":{"id":"5f9b3d7e-0a64-4c21-8e5f-2c8a4b6d0e71","fileName":"heavy-metals-test-report-k1.pdf","anchor":{"kind":"component","ref":"K-1","name":"Folding box"}}},"examples":{"Example":{"title":"Example","value":{"error":"duplicate","existing":{"id":"5f9b3d7e-0a64-4c21-8e5f-2c8a4b6d0e71","fileName":"heavy-metals-test-report-k1.pdf","anchor":{"kind":"component","ref":"K-1","name":"Folding box"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"b5f29485-aef9-48e2-bbdf-b88ee57df2ad":{"description":"Rate limit exceeded: currently 1000 requests per 60 seconds per client IP across all `/api` paths. Issued by the edge before the application runs, so the JSON body differs from every other error: `error` is an object. A `429` with an HTML body instead of JSON means the request carried no API key.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","enum":["rate_limited"],"description":"Always `rate_limited`.","isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Human-readable explanation.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"required":["code","message"],"description":"Unlike every other error body, `error` is an object here.","isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"required":["error"],"uniqueKey":"","typeLabel":"object"},"example":{"error":{"code":"rate_limited","message":"…"}},"examples":{"Example":{"title":"Example","value":{"error":{"code":"rate_limited","message":"…"}}}},"exampleType":"examples"}},"exampleType":"examples"},"723e98ff-ca86-405d-82f5-c2d98588199c":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable message, or a stable machine key (e.g. `batchTooLarge`, `overwriteRequired`, `duplicate`) on the batch, PPWR and upload endpoints.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine code on some `400` and `409` answers, e.g. `plot_geometry_invalid` or `FORK_HAS_ORDER`. Match on it rather than on `error`. Further flat keys may accompany it (e.g. `precisionDigits`, `field`).","uniqueKey":"code","typeLabel":"string"},"details":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"Machine code of the issue, e.g. `invalid_type`, `too_small`, `custom`.","isRequired":true,"uniqueKey":"details.items.[INDEX].code","typeLabel":"string"},"path":{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"number","uniqueKey":"details.items.[INDEX].path.items.[INDEX].oneOf.1","typeLabel":"number"}],"uniqueKey":"details.items.[INDEX].path.items.[INDEX]","typeLabel":"string | number"},"description":"Location of the offending value in the request: object keys and 0-based array positions.","isRequired":true,"uniqueKey":"details.items.[INDEX].path","typeLabel":"(string | number)[]"},"message":{"type":"string","description":"Human-readable English explanation. The wording may change; match on `code` and `path`.","isRequired":true,"uniqueKey":"details.items.[INDEX].message","typeLabel":"string"}},"required":["code","path","message"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"details.items.[INDEX].additionalProperties","typeLabel":"any"},"description":"One validation issue. Issue-specific keys (e.g. `expected`, `minimum`) may accompany the three listed.","uniqueKey":"details.items.[INDEX]","typeLabel":"object"},"description":"The validation issues on a `400` validation error.","uniqueKey":"details","typeLabel":"object[]"},"warnings":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["duplicateName","duplicateEan"],"description":"`duplicateName`: a live article of your company already has this name. `duplicateEan`: a live article already has this EAN.","isRequired":true,"uniqueKey":"warnings.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"existingInternalArticleNr":{"type":"string","description":"`duplicateName` only: internal article number of the existing article.","uniqueKey":"warnings.items.[INDEX].existingInternalArticleNr","typeLabel":"string"},"existingArticleName":{"type":"string","description":"`duplicateEan` only: name of the existing article.","uniqueKey":"warnings.items.[INDEX].existingArticleName","typeLabel":"string"}},"required":["type"],"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"description":"`POST /articles` `409` only: soft duplicate warnings. Resend with `acknowledgeWarnings: true` to create the article anyway.","uniqueKey":"warnings","typeLabel":"object[]"}},"required":["error"],"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"description":"Error body of every endpoint except the `429` the edge answers. Some errors add flat machine-readable keys next to `error`, e.g. `maxBatchSize` on `413 batchTooLarge` or `confirmUpdateCount` on `409 overwriteRequired`.","uniqueKey":"","typeLabel":"object"},"example":{"error":"Internal server error"},"examples":{"Example":{"title":"Example","value":{"error":"Internal server error"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"bae4c7a0-d716-46dc-bfdc-909a8704f12f":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API key generated in Settings > API Keys. Include as `Authorization: Bearer \u003ckey>`.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"525ee7a2-0b29-4150-83c9-6311c95aea37":{"url":"https://app.polygon-one.com","description":"Production Server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"API Key","description":"API key generated in Settings > API Keys. Include as `Authorization: Bearer \u003ckey>`.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key generated in Settings > API Keys. Include as `Authorization: Bearer \u003ckey>`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"polygonone","siteName":"Polygon One Helpcenter","title":"Dokument an Einheit oder Komponente anhängen - Polygon One Helpcenter","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"de":{"href":"/api-reference/endpoint/ppwr/documents/create","matchLevel":0},"en":{"href":"/en/api-reference/endpoint/ppwr/documents/create","matchLevel":1},"fr":{"href":"/fr/lieferanten/start","matchLevel":4},"es":{"href":"/es/lieferanten/start","matchLevel":4},"zh":{"href":"/zh/lieferanten/start","matchLevel":4}}},"lastModified":"2026-10-05T11:54:18.602Z","originalFileLocation":"api-reference/endpoint/ppwr/documents/create.mdx","locale":"de"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Step 2: attach the uploaded file to a packaging unit (target.packagingSpecId) or component (target.componentId) — exactly as the in-app \u0026quot;Nachweis hochladen\u0026quot;: the document is accepted (approved) with the given type, and for an analysable type AI extraction is queued when your plan includes it (extractionQueued; otherwise aiSkippedReason says why). Target ids are UUIDs — resolve them with GET /api/v1/ppwr/units?internalRef=… or GET /api/v1/ppwr/components. A unit or component of another company, a deleted one, a storageKey not issued to your company, and a unit-only type (technical_doc, declaration_of_conformity, marking) on a component all answer 404 {\u0026quot;error\u0026quot;: \u0026quot;target\u0026quot;}. A storageKey that was already consumed by a successful attach (or has expired) answers 404 {\u0026quot;error\u0026quot;: \u0026quot;upload_missing\u0026quot;} — start again at step 1. Re-use-system targets are not supported (400 {\u0026quot;error\u0026quot;: \u0026quot;unsupported_target\u0026quot;}); a target with more than one id is 400 {\u0026quot;error\u0026quot;: \u0026quot;ambiguous_target\u0026quot;}. Requires packaging:write; customer workspace with the PPWR module enabled — see the guide.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Polygon One Helpcenter\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Dokument an Einheit oder Komponente anhängen - Polygon One Helpcenter\">\u003cmeta data-mint-head property=\"og:description\" content=\"Step 2: attach the uploaded file to a packaging unit (target.packagingSpecId) or component (target.componentId) — exactly as the in-app \u0026quot;Nachweis hochladen\u0026quot;: the document is accepted (approved) with the given type, and for an analysable type AI extraction is queued when your plan includes it (extractionQueued; otherwise aiSkippedReason says why). Target ids are UUIDs — resolve them with GET /api/v1/ppwr/units?internalRef=… or GET /api/v1/ppwr/components. A unit or component of another company, a deleted one, a storageKey not issued to your company, and a unit-only type (technical_doc, declaration_of_conformity, marking) on a component all answer 404 {\u0026quot;error\u0026quot;: \u0026quot;target\u0026quot;}. A storageKey that was already consumed by a successful attach (or has expired) answers 404 {\u0026quot;error\u0026quot;: \u0026quot;upload_missing\u0026quot;} — start again at step 1. Re-use-system targets are not supported (400 {\u0026quot;error\u0026quot;: \u0026quot;unsupported_target\u0026quot;}); a target with more than one id is 400 {\u0026quot;error\u0026quot;: \u0026quot;ambiguous_target\u0026quot;}. Requires packaging:write; customer workspace with the PPWR module enabled — see the guide.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Polygon One Helpcenter\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://polygonone.mintlify.app/_mintlify/api/og/v2?division=PPWR+%E2%80%93+Dokumente\u0026amp;title=Dokument+an+Einheit+oder+Komponente+anh%C3%A4ngen\u0026amp;description=Step+2%3A+attach+the+uploaded+file+to+a+packaging+unit+%28%60target.packagingSpecId%60%29+or+component+%28%60target.componentId%60%29+%E2%80%94+exactly+as+the+in-app+%22Nachweis+hochladen%22\u0026amp;theme=0c175d962800f7cffd688852\u0026amp;signature=15177a451175b2537ddfc3329d44d231906c6d3e6e8cb2cd5678ecb8ac71ab81\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Dokument an Einheit oder Komponente anhängen - Polygon One Helpcenter\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Step 2: attach the uploaded file to a packaging unit (target.packagingSpecId) or component (target.componentId) — exactly as the in-app \u0026quot;Nachweis hochladen\u0026quot;: the document is accepted (approved) with the given type, and for an analysable type AI extraction is queued when your plan includes it (extractionQueued; otherwise aiSkippedReason says why). Target ids are UUIDs — resolve them with GET /api/v1/ppwr/units?internalRef=… or GET /api/v1/ppwr/components. A unit or component of another company, a deleted one, a storageKey not issued to your company, and a unit-only type (technical_doc, declaration_of_conformity, marking) on a component all answer 404 {\u0026quot;error\u0026quot;: \u0026quot;target\u0026quot;}. A storageKey that was already consumed by a successful attach (or has expired) answers 404 {\u0026quot;error\u0026quot;: \u0026quot;upload_missing\u0026quot;} — start again at step 1. Re-use-system targets are not supported (400 {\u0026quot;error\u0026quot;: \u0026quot;unsupported_target\u0026quot;}); a target with more than one id is 400 {\u0026quot;error\u0026quot;: \u0026quot;ambiguous_target\u0026quot;}. Requires packaging:write; customer workspace with the PPWR module enabled — see the guide.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://polygonone.mintlify.app/_mintlify/api/og/v2?division=PPWR+%E2%80%93+Dokumente\u0026amp;title=Dokument+an+Einheit+oder+Komponente+anh%C3%A4ngen\u0026amp;description=Step+2%3A+attach+the+uploaded+file+to+a+packaging+unit+%28%60target.packagingSpecId%60%29+or+component+%28%60target.componentId%60%29+%E2%80%94+exactly+as+the+in-app+%22Nachweis+hochladen%22\u0026amp;theme=0c175d962800f7cffd688852\u0026amp;signature=15177a451175b2537ddfc3329d44d231906c6d3e6e8cb2cd5678ecb8ac71ab81\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/polygonone/32k2Y3_9P8MpmQgs/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Polygon One Helpcenter\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#15803D\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/ppwr/documents/create.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://help.polygon-one.com/en/api-reference/endpoint/ppwr/documents/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.polygon-one.com/#organization\",\"name\":\"Polygon One Helpcenter\",\"url\":\"https://help.polygon-one.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/polygonone/AMoRp9VbcW46gNsT/logo/light.svg?fit=max\u0026auto=format\u0026n=AMoRp9VbcW46gNsT\u0026q=85\u0026s=4a316da81d50e49c7f9f6480a235558e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.polygon-one.com#website\",\"name\":\"Polygon One Helpcenter\",\"url\":\"https://help.polygon-one.com\",\"publisher\":{\"@id\":\"https://help.polygon-one.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create#webpage\",\"url\":\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create\",\"name\":\"Dokument an Einheit oder Komponente anhängen\",\"description\":\"Step 2: attach the uploaded file to a packaging unit (target.packagingSpecId) or component (target.componentId) — exactly as the in-app \\\"Nachweis hochladen\\\": the document is accepted (approved) with the given type, and for an analysable type AI extraction is queued when your plan includes it (extractionQueued; otherwise aiSkippedReason says why). Target ids are UUIDs — resolve them with GET /api/v1/ppwr/units?internalRef=… or GET /api/v1/ppwr/components. A unit or component of another company, a deleted one, a storageKey not issued to your company, and a unit-only type (technical_doc, declaration_of_conformity, marking) on a component all answer 404 {\\\"error\\\": \\\"target\\\"}. A storageKey that was already consumed by a successful attach (or has expired) answers 404 {\\\"error\\\": \\\"upload_missing\\\"} — start again at step 1. Re-use-system targets are not supported (400 {\\\"error\\\": \\\"unsupported_target\\\"}); a target with more than one id is 400 {\\\"error\\\": \\\"ambiguous_target\\\"}. Requires packaging:write; customer workspace with the PPWR module enabled — see the guide.\",\"dateModified\":\"2026-10-05T11:54:18.602Z\",\"isPartOf\":{\"@id\":\"https://help.polygon-one.com#website\"},\"breadcrumb\":{\"@id\":\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PPWR – Dokumente\",\"item\":\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/upload-url\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Dokument an Einheit oder Komponente anhängen\",\"item\":\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create#apireference\",\"headline\":\"Dokument an Einheit oder Komponente anhängen\",\"name\":\"Dokument an Einheit oder Komponente anhängen\",\"description\":\"Step 2: attach the uploaded file to a packaging unit (target.packagingSpecId) or component (target.componentId) — exactly as the in-app \\\"Nachweis hochladen\\\": the document is accepted (approved) with the given type, and for an analysable type AI extraction is queued when your plan includes it (extractionQueued; otherwise aiSkippedReason says why). Target ids are UUIDs — resolve them with GET /api/v1/ppwr/units?internalRef=… or GET /api/v1/ppwr/components. A unit or component of another company, a deleted one, a storageKey not issued to your company, and a unit-only type (technical_doc, declaration_of_conformity, marking) on a component all answer 404 {\\\"error\\\": \\\"target\\\"}. A storageKey that was already consumed by a successful attach (or has expired) answers 404 {\\\"error\\\": \\\"upload_missing\\\"} — start again at step 1. Re-use-system targets are not supported (400 {\\\"error\\\": \\\"unsupported_target\\\"}); a target with more than one id is 400 {\\\"error\\\": \\\"ambiguous_target\\\"}. Requires packaging:write; customer workspace with the PPWR module enabled — see the guide.\",\"url\":\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create\",\"mainEntityOfPage\":{\"@id\":\"https://help.polygon-one.com/api-reference/endpoint/ppwr/documents/create#webpage\"},\"dateModified\":\"2026-10-05T11:54:18.602Z\",\"publisher\":{\"@id\":\"https://help.polygon-one.com/#organization\"},\"isPartOf\":{\"@id\":\"https://help.polygon-one.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Polygon One Helpcenter\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Polygon One Helpcenter","nav":{"global":{"anchors":[]},"languages":[{"language":"de","default":true,"tabs":[{"tab":"EUDR","pages":[{"title":"EUDR","href":""}]},{"tab":"PPWR","pages":[{"title":"PPWR","href":"/de/ppwr/uebersicht"}]},{"tab":"API-Referenz","groups":[{"group":"API-Dokumentation","pages":[{"title":"Einführung","href":"/api-reference/introduction"},{"title":"Schnellstart","href":"/api-reference/quickstart"},{"title":"Empfohlene Integrationsabläufe","sidebarTitle":"Integrationsabläufe","href":"/api-reference/integration-flows"},{"title":"Claude, ChatGPT und Copilot verbinden (MCP)","sidebarTitle":"KI-Assistenten (MCP)","href":"/api-reference/ki-assistenten"},{"title":"Stapelimport (asynchron)","href":"/api-reference/batch-import"},{"title":"Bestellungen: Zeilen, Positionsnummern, Status, Delta-Sync","sidebarTitle":"Bestellungen","href":"/api-reference/orders"},{"title":"PPWR: Verpackungsdaten, Mengen, Mengenmeldung","href":"/api-reference/ppwr"},{"title":"Geo-Analyse über die API","href":"/api-reference/geo-analysis"},{"title":"Fehler \u0026 Limits","href":"/api-reference/errors-and-limits"},{"title":"Änderungsprotokoll","href":"/api-reference/changelog"}]},{"group":"Artikel","pages":[{"title":"Artikel auflisten","openapi":"GET /api/v1/articles","href":"/api-reference/endpoint/articles/list"},{"title":"Artikel erstellen","openapi":"POST /api/v1/articles","href":"/api-reference/endpoint/articles/create"},{"title":"Artikel abrufen","openapi":"GET /api/v1/articles/{id}","href":"/api-reference/endpoint/articles/get"},{"title":"Artikel aktualisieren","openapi":"PATCH /api/v1/articles/{id}","href":"/api-reference/endpoint/articles/update"},{"title":"Artikel löschen","openapi":"DELETE /api/v1/articles/{id}","href":"/api-reference/endpoint/articles/delete"}]},{"group":"Lieferanten","pages":[{"title":"Lieferanten auflisten","openapi":"GET /api/v1/suppliers","href":"/api-reference/endpoint/suppliers/list"},{"title":"Lieferant erstellen","openapi":"POST /api/v1/suppliers","href":"/api-reference/endpoint/suppliers/create"},{"title":"Lieferant abrufen","openapi":"GET /api/v1/suppliers/{id}","href":"/api-reference/endpoint/suppliers/get"},{"title":"Lieferant aktualisieren","openapi":"PATCH /api/v1/suppliers/{id}","href":"/api-reference/endpoint/suppliers/update"},{"title":"Lieferant löschen","openapi":"DELETE /api/v1/suppliers/{id}","href":"/api-reference/endpoint/suppliers/delete"}]},{"group":"Parzellen","pages":[{"title":"Parzellen auflisten","openapi":"GET /api/v1/plots","href":"/api-reference/endpoint/plots/list"},{"title":"Parzelle erstellen","openapi":"POST /api/v1/plots","href":"/api-reference/endpoint/plots/create"},{"title":"Parzellengeometrie prüfen","openapi":"POST /api/v1/plots/validate","href":"/api-reference/endpoint/plots/validate"},{"title":"Parzelle abrufen","openapi":"GET /api/v1/plots/{id}","href":"/api-reference/endpoint/plots/get"},{"title":"Parzellenbericht herunterladen","openapi":"GET /api/v1/plots/{id}/report","href":"/api-reference/endpoint/plots/report"},{"title":"Parzelle verknüpfen","openapi":"PATCH /api/v1/plots/{id}","href":"/api-reference/endpoint/plots/update"},{"title":"Parzelle löschen","openapi":"DELETE /api/v1/plots/{id}","href":"/api-reference/endpoint/plots/delete"}]},{"group":"Nachweise","pages":[{"title":"Upload-URL für einen Nachweis anfordern","openapi":"POST /api/v1/evidence/upload-url","href":"/api-reference/endpoint/evidence/upload-url"},{"title":"Nachweis an Lieferantenartikel anhängen","openapi":"POST /api/v1/evidence","href":"/api-reference/endpoint/evidence/create"},{"title":"Nachweise auflisten","openapi":"GET /api/v1/evidence","href":"/api-reference/endpoint/evidence/list"}]},{"group":"Bestellungen","pages":[{"title":"Bestellungen auflisten","openapi":"GET /api/v1/orders","href":"/api-reference/endpoint/orders/list"},{"title":"Bestellungen erstellen","openapi":"POST /api/v1/orders","href":"/api-reference/endpoint/orders/create"},{"title":"Bestellung abrufen","openapi":"GET /api/v1/orders/{id}","href":"/api-reference/endpoint/orders/get"},{"title":"Bestellung aktualisieren","openapi":"PATCH /api/v1/orders/{id}","href":"/api-reference/endpoint/orders/update"},{"title":"Bestellung löschen","openapi":"DELETE /api/v1/orders/{id}","href":"/api-reference/endpoint/orders/delete"},{"title":"Herkunftsbestätigung anfragen","openapi":"POST /api/v1/orders/{id}/origin-confirmation","href":"/api-reference/endpoint/orders/origin-confirmation"}]},{"group":"Import-Jobs","pages":[{"title":"Import-Job abrufen","openapi":"GET /api/v1/import-jobs/{jobId}","href":"/api-reference/endpoint/import-jobs/get"}]},{"group":"DDS-Erklärungen","pages":[{"title":"DDS-Erklärungen auflisten","openapi":"GET /api/v1/dds-statements","href":"/api-reference/endpoint/dds-statements/list"},{"title":"DDS-Erklärung erstellen","openapi":"POST /api/v1/dds-statements","href":"/api-reference/endpoint/dds-statements/create"},{"title":"DDS-Erklärung abrufen","openapi":"GET /api/v1/dds-statements/{id}","href":"/api-reference/endpoint/dds-statements/get"},{"title":"DDS-Erklärung aktualisieren","openapi":"PATCH /api/v1/dds-statements/{id}","href":"/api-reference/endpoint/dds-statements/update"},{"title":"DDS-Erklärung löschen","openapi":"DELETE /api/v1/dds-statements/{id}","href":"/api-reference/endpoint/dds-statements/delete"}]},{"group":"PPWR – Verpackungsdaten","pages":[{"title":"Komponenten auflisten","openapi":"GET /api/v1/ppwr/components","href":"/api-reference/endpoint/ppwr/components/list"},{"title":"Komponenten anlegen \u0026 aktualisieren","openapi":"POST /api/v1/ppwr/components","href":"/api-reference/endpoint/ppwr/components/upsert"},{"title":"Komponente abrufen","openapi":"GET /api/v1/ppwr/components/{id}","href":"/api-reference/endpoint/ppwr/components/get"},{"title":"Verpackungseinheiten auflisten","openapi":"GET /api/v1/ppwr/units","href":"/api-reference/endpoint/ppwr/units/list"},{"title":"Verpackungseinheiten anlegen \u0026 aktualisieren","openapi":"POST /api/v1/ppwr/units","href":"/api-reference/endpoint/ppwr/units/upsert"},{"title":"Verpackungseinheit abrufen","openapi":"GET /api/v1/ppwr/units/{id}","href":"/api-reference/endpoint/ppwr/units/get"},{"title":"Größen anlegen \u0026 aktualisieren","openapi":"POST /api/v1/ppwr/formats","href":"/api-reference/endpoint/ppwr/formats/upsert"},{"title":"Verpackungsstückliste anlegen","openapi":"POST /api/v1/ppwr/links","href":"/api-reference/endpoint/ppwr/links/create"},{"title":"Artikelverknüpfungen anlegen","openapi":"POST /api/v1/ppwr/article-links","href":"/api-reference/endpoint/ppwr/article-links/create"}]},{"group":"PPWR – Dokumente","pages":[{"title":"Upload-URL für ein Dokument anfordern","openapi":"POST /api/v1/ppwr/documents/upload-url","description":"Step 1 of uploading a document (Nachweis): get a presigned URL, then `PUT` the file bytes to `uploadUrl` with the same `Content-Type` within 10 minutes. Pass the returned `s3Key` as `storageKey` to `POST /api/v1/ppwr/documents`. Accepts the same files as the in-app upload: PDF, JPEG, PNG, at most 10 MB — a wrong type is a `400`. `fileSize` is validated against the limit when the upload URL is issued and signed into `uploadUrl`: a `PUT` of any other length is refused by storage. Requires `packaging:write`; customer workspace with the PPWR module enabled — see the guide.","href":"/api-reference/endpoint/ppwr/documents/upload-url"},{"title":"Dokument an Einheit oder Komponente anhängen","openapi":"POST /api/v1/ppwr/documents","href":"/api-reference/endpoint/ppwr/documents/create"}]},{"group":"PPWR – Konformitätserklärungen","pages":[{"title":"Konformitätserklärungen auflisten","openapi":"GET /api/v1/ppwr/declarations","description":"Retrieve your company's Declarations of Conformity (metadata only — the PDF is at each row's `pdfUrl`). A family declaration is one row; `specIds` lists every unit it covers and `activeSpecIds` the units it is currently the active DoC for. Soft-deleted declarations are never returned, and a permanently deleted declaration disappears from the list without a tombstone (also under `changedSince`). Rows are ordered by `issuedAt` (newest first, drafts last), then by `id`. Requires `packaging:read` (a `packaging:write` key satisfies it); customer workspace with the PPWR module enabled.","href":"/api-reference/endpoint/ppwr/declarations/list"},{"title":"Konformitätserklärung abrufen","openapi":"GET /api/v1/ppwr/declarations/{id}","href":"/api-reference/endpoint/ppwr/declarations/get"},{"title":"Konformitätserklärung herunterladen","openapi":"GET /api/v1/ppwr/declarations/{id}/pdf","href":"/api-reference/endpoint/ppwr/declarations/pdf"}]},{"group":"PPWR – Mengen \u0026 Mengenmeldung","pages":[{"title":"Mengen übermitteln","openapi":"POST /api/v1/ppwr/quantities","href":"/api-reference/endpoint/ppwr/quantities/create"},{"title":"Tonnage übermitteln","openapi":"POST /api/v1/ppwr/tonnage","href":"/api-reference/endpoint/ppwr/tonnage/create"},{"title":"Tonnage löschen","openapi":"DELETE /api/v1/ppwr/tonnage","href":"/api-reference/endpoint/ppwr/tonnage/delete"},{"title":"Mengenmeldungen auflisten","openapi":"GET /api/v1/ppwr/mengenmeldung/reports","href":"/api-reference/endpoint/ppwr/mengenmeldung/list"},{"title":"Mengenmeldung erzeugen","openapi":"POST /api/v1/ppwr/mengenmeldung/reports","href":"/api-reference/endpoint/ppwr/mengenmeldung/create"},{"title":"Mengenmeldungs-Datei herunterladen","openapi":"GET /api/v1/ppwr/mengenmeldung/{reportId}/xml","href":"/api-reference/endpoint/ppwr/mengenmeldung/download"}]}]},{"tab":"Für Lieferanten","icon":"truck","pages":[{"title":"Für Lieferanten","href":"/de/lieferanten/start"}]}]},{"language":"en","pages":[{"title":"en","href":"/en/api-reference/endpoint/ppwr/documents/create"}]},{"language":"fr","pages":[{"title":"fr","href":"/fr/lieferanten/start"}]},{"language":"es","pages":[{"title":"es","href":"/es/lieferanten/start"}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/lieferanten/start"}]}]},"title":"Dokument an Einheit oder Komponente anhängen - Polygon One Helpcenter","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}