{ "message": "Die aktualisierte Bestellung wurde an das Bauunternehmen gesendet.", "error": null}
Orders (Supplier)
Update supplier order
Erforderliche Berechtigungen:orders:write
Ermöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen.
Der API-Schlüssel muss mit einem Lieferanten verknüpft sein (SUPPLIER_AND_OPTIONAL_CUSTOMER). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind.
Verhalten der change_type-State-Machine:
CONFIRM_ORDER — Setzt den Status auf CONFIRMED.
DECLINE_ORDER — Setzt den Status auf DECLINED.
EDIT_ORDER — Wendet die in changes übergebenen Felder an, ohne den Status zu ändern.
CONFIRM_CANCEL_ORDER — Setzt den Status auf CANCEL_CONFIRMED (nur möglich, wenn die Bestellung im Status CANCELLED ist).
CONFIRM_ON_DEMAND — Setzt den Status auf ON_DEMAND_CONFIRMED.
RECEIVE_ORDER — Setzt den Status auf RECEIVED.
Das Feld changes wird nur für EDIT_ORDER ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren.
Optional kann pdf_base64 ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert.
Werden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt Keine Änderungen zurück und führt keinen Schreibvorgang aus.
This endpoint lets a supplier update one of their assigned orders through the comstruct API. Confirming, declining, editing, confirming a cancellation, confirming an on-demand call-off, and acknowledging receipt are all handled through a single PATCH call.The actual status transition is derived server-side from the change_type field — status is intentionally not part of the request body so the state machine stays on the server.
If the submitted fields match the current state of the order, the endpoint
replies with Keine Änderungen (“No changes”) and skips the write. ERP
systems can therefore safely include the full order payload on confirmations
without risking accidental mutations.
The API key must be linked to a supplier. Customer-only API keys cannot use this endpoint. Suppliers can only update orders that are assigned to their own supplier account.
The comment field is an optional top-level string field (max 2000 characters) that can be sent with anychange_type. It is used by suppliers to:
Add notes when confirming an order (e.g., ‘Confirmed, delivery scheduled for next week’)
Explain reasons when declining (e.g., ‘Material unavailable until Q2’)
Provide context during edits (e.g., ‘Increased quantity per customer request’)
The comment field is always included in the change notification email sent to the customer, regardless of which change_type was used. This makes it ideal for supplier-to-customer communication.
The comment field is separate from the editable changes.comment field used in EDIT_ORDER. The top-level comment is for this specific action, while changes.comment permanently updates the order’s stored comment.
The PDF can be sent with any change_type — for example confirm an order and attach the order confirmation in one request. Identical PDFs are deduplicated by content hash.
Konkrete Feldänderungen. Wird nur für change_type: EDIT_ORDER ausgewertet — bei allen anderen Änderungstypen wird der Inhalt ignoriert, sodass ERP-Systeme den vollständigen Bestelldatensatz risikofrei mitschicken können.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"comstruct API Dokumentation","colors":{"primary":"#2F6879","light":"#3A8599","dark":"#1E4A57"},"logo":{"light":"https://mintcdn.com/comstruct/Jpsyju8lznqRSEZJ/logo/light.svg?fit=max\u0026auto=format\u0026n=Jpsyju8lznqRSEZJ\u0026q=85\u0026s=acbbee3c044994a3e7752740782d923f","dark":"https://mintcdn.com/comstruct/Jpsyju8lznqRSEZJ/logo/dark.svg?fit=max\u0026auto=format\u0026n=Jpsyju8lznqRSEZJ\u0026q=85\u0026s=3849d724919d807467f3b58d490d50c0"},"favicon":"https://mintcdn.com/comstruct/CqrhxzMG7_sRCFwK/favicon.png?fit=max\u0026auto=format\u0026n=CqrhxzMG7_sRCFwK\u0026q=85\u0026s=ff5a12229b0e3075a0e33fe7354ddae3","api":{},"navbar":{"links":[{"href":"mailto:support@comstruct.com","label":"Support"}],"primary":{"type":"button","label":"App öffnen","href":"https://app.comstruct.com"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/comstruct","website":"https://comstruct.com"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"mailto:support@comstruct.com"}]},"languages":[{"language":"de","default":true,"href":""},{"language":"en","href":"en"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"comstruct","hasAudioNarration":false,"actualSubdomain":"comstruct","customDomains":["developer.comstruct.com"],"gitSource":{"type":"github","owner":"comstruct-engineering","repo":"comstruct-one","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af339cb0d36c20f768025e9","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"de","tag":"API-Referenz","count":69},{"language":"en","tag":"API Reference","count":69},{"language":"de","tag":"Rechnungs-Dimensionen","count":15},{"language":"en","tag":"Invoice dimensions","count":15},{"language":"de","tag":"Lieferungen","count":11},{"language":"en","tag":"Deliveries","count":11},{"language":"de","tag":"Stammdaten","count":10},{"language":"en","tag":"Master data","count":10},{"language":"de","tag":"Rechnungen","count":9},{"language":"de","tag":"Projekte","count":9},{"language":"en","tag":"Invoices","count":9},{"language":"en","tag":"Projects","count":9},{"language":"de","tag":"Erste Schritte","count":5},{"language":"en","tag":"Getting started","count":5},{"language":"de","tag":"Integrationsleitfäden","count":4},{"language":"en","tag":"Integration guides","count":4},{"language":"de","tag":"Bestellungen","count":3},{"language":"de","tag":"Lieferanten","count":3},{"language":"en","tag":"Purchase orders","count":3},{"language":"en","tag":"Suppliers","count":3}]},"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":"custom-rbac-roles","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"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":"turbopuffer-dual-write","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},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"en/api-reference/supplier-orders-patch","slug":"/en/api-reference/supplier-orders-patch","pageMetadata":{"title":"Update supplier order","openapi":"PATCH /supplier-orders/{id}","description":"**Erforderliche Berechtigungen:** `orders:write`\n\nErmöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen.\n\nDer API-Schlüssel muss mit einem Lieferanten verknüpft sein (`SUPPLIER_AND_OPTIONAL_CUSTOMER`). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind.\n\n**Verhalten der `change_type`-State-Machine:**\n\n- `CONFIRM_ORDER` — Setzt den Status auf `CONFIRMED`.\n- `DECLINE_ORDER` — Setzt den Status auf `DECLINED`.\n- `EDIT_ORDER` — Wendet die in `changes` übergebenen Felder an, ohne den Status zu ändern.\n- `CONFIRM_CANCEL_ORDER` — Setzt den Status auf `CANCEL_CONFIRMED` (nur möglich, wenn die Bestellung im Status `CANCELLED` ist).\n- `CONFIRM_ON_DEMAND` — Setzt den Status auf `ON_DEMAND_CONFIRMED`.\n- `RECEIVE_ORDER` — Setzt den Status auf `RECEIVED`.\n\nDas Feld `changes` wird nur für `EDIT_ORDER` ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren.\n\nOptional kann `pdf_base64` ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert.\n\nWerden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt `Keine Änderungen` zurück und führt keinen Schreibvorgang aus.\n","href":"/en/api-reference/supplier-orders-patch"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n li: \"li\",\n p: \"p\",\n strong: \"strong\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Erforderliche Berechtigungen:\"\n }), \" \", _jsx(_components.code, {\n children: \"orders:write\"\n })]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Ermöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Der API-Schlüssel muss mit einem Lieferanten verknüpft sein (\", _jsx(_components.code, {\n children: \"SUPPLIER_AND_OPTIONAL_CUSTOMER\"\n }), \"). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsxs(_components.strong, {\n children: [\"Verhalten der \", _jsx(_components.code, {\n children: \"change_type\"\n }), \"-State-Machine:\"]\n })\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"CONFIRM_ORDER\"\n }), \" — Setzt den Status auf \", _jsx(_components.code, {\n children: \"CONFIRMED\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"DECLINE_ORDER\"\n }), \" — Setzt den Status auf \", _jsx(_components.code, {\n children: \"DECLINED\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"EDIT_ORDER\"\n }), \" — Wendet die in \", _jsx(_components.code, {\n children: \"changes\"\n }), \" übergebenen Felder an, ohne den Status zu ändern.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"CONFIRM_CANCEL_ORDER\"\n }), \" — Setzt den Status auf \", _jsx(_components.code, {\n children: \"CANCEL_CONFIRMED\"\n }), \" (nur möglich, wenn die Bestellung im Status \", _jsx(_components.code, {\n children: \"CANCELLED\"\n }), \" ist).\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"CONFIRM_ON_DEMAND\"\n }), \" — Setzt den Status auf \", _jsx(_components.code, {\n children: \"ON_DEMAND_CONFIRMED\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"RECEIVE_ORDER\"\n }), \" — Setzt den Status auf \", _jsx(_components.code, {\n children: \"RECEIVED\"\n }), \".\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Das Feld \", _jsx(_components.code, {\n children: \"changes\"\n }), \" wird nur für \", _jsx(_components.code, {\n children: \"EDIT_ORDER\"\n }), \" ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Optional kann \", _jsx(_components.code, {\n children: \"pdf_base64\"\n }), \" ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Werden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt \", _jsx(_components.code, {\n children: \"Keine Änderungen\"\n }), \" zurück und führt keinen Schreibvorgang aus.\"]\n })]\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`overview`,children:`Overview`}),`\n`,_jsxs(_components.p,{children:[`This endpoint lets a supplier update one of their assigned orders through the comstruct API. Confirming, declining, editing, confirming a cancellation, confirming an on-demand call-off, and acknowledging receipt are all handled through a single `,_jsx(_components.code,{children:`PATCH`}),` call.`]}),`\n`,_jsxs(_components.p,{children:[`The actual status transition is derived server-side from the `,_jsx(_components.code,{children:`change_type`}),` field — `,_jsx(_components.code,{children:`status`}),` is intentionally `,_jsx(_components.strong,{children:`not`}),` part of the request body so the state machine stays on the server.`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`If the submitted fields match the current state of the order, the endpoint\nreplies with `,_jsx(_components.code,{children:`Keine Änderungen`}),` (“No changes”) and skips the write. ERP\nsystems can therefore safely include the full order payload on confirmations\nwithout risking accidental mutations.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`permissions`,children:`Permissions`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Scope`}),_jsx(_components.th,{children:`Tenant type`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`orders:write`})}),_jsxs(_components.td,{children:[`Supplier API key (`,_jsx(_components.code,{children:`SUPPLIER_AND_OPTIONAL_CUSTOMER`}),`)`]})]})})]}),`\n`,_jsx(_components.p,{children:`The API key must be linked to a supplier. Customer-only API keys cannot use this endpoint. Suppliers can only update orders that are assigned to their own supplier account.`}),`\n`,_jsx(Heading,{level:`2`,id:`headers`,children:`Headers`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Header`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`x-api-key`})}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`API key with scope `,_jsx(_components.code,{children:`orders:write`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`Content-Type`})}),_jsx(_components.td,{children:`Yes`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`application/json`})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`path-parameters`,children:`Path parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`uuid`})}),_jsx(_components.td,{children:`Unique ID of the order to update`})]})})]}),`\n`,_jsxs(Heading,{level:`2`,id:`change-types-change_type`,children:[`Change types (`,_jsx(_components.code,{children:`change_type`}),`)`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{children:`Effect`}),_jsx(_components.th,{children:`Precondition`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`CONFIRM_ORDER`})}),_jsxs(_components.td,{children:[`Sets status to `,_jsx(_components.code,{children:`CONFIRMED`})]}),_jsx(_components.td,{children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`DECLINE_ORDER`})}),_jsxs(_components.td,{children:[`Sets status to `,_jsx(_components.code,{children:`DECLINED`})]}),_jsx(_components.td,{children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`EDIT_ORDER`})}),_jsxs(_components.td,{children:[`Applies the fields in `,_jsx(_components.code,{children:`changes`}),`; status stays the same`]}),_jsx(_components.td,{children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`CONFIRM_CANCEL_ORDER`})}),_jsxs(_components.td,{children:[`Sets status to `,_jsx(_components.code,{children:`CANCEL_CONFIRMED`})]}),_jsxs(_components.td,{children:[`Order must be in status `,_jsx(_components.code,{children:`CANCELLED`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`CONFIRM_ON_DEMAND`})}),_jsxs(_components.td,{children:[`Sets status to `,_jsx(_components.code,{children:`ON_DEMAND_CONFIRMED`})]}),_jsx(_components.td,{children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`RECEIVE_ORDER`})}),_jsxs(_components.td,{children:[`Sets status to `,_jsx(_components.code,{children:`RECEIVED`})]}),_jsx(_components.td,{children:`—`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`changes`}),` is `,_jsx(_components.strong,{children:`only`}),` consumed for `,_jsx(_components.code,{children:`EDIT_ORDER`}),`. For every other change type the body of `,_jsx(_components.code,{children:`changes`}),` is ignored.`]}),`\n`,_jsx(Heading,{level:`2`,id:`supplier-comment-field`,children:`Supplier Comment Field`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`comment`}),` field is an `,_jsx(_components.strong,{children:`optional`}),` top-level string field (max 2000 characters) that can be sent with `,_jsx(_components.strong,{children:`any`}),` `,_jsx(_components.code,{children:`change_type`}),`. It is used by suppliers to:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Add notes when confirming an order (e.g., ‘Confirmed, delivery scheduled for next week’)`}),`\n`,_jsx(_components.li,{children:`Explain reasons when declining (e.g., ‘Material unavailable until Q2’)`}),`\n`,_jsx(_components.li,{children:`Provide context during edits (e.g., ‘Increased quantity per customer request’)`}),`\n`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`comment`}),` field is `,_jsx(_components.strong,{children:`always`}),` included in the change notification email sent to the customer, regardless of which `,_jsx(_components.code,{children:`change_type`}),` was used. This makes it ideal for supplier-to-customer communication.`]})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`The `,_jsx(_components.code,{children:`comment`}),` field is `,_jsx(_components.strong,{children:`separate from`}),` the editable `,_jsx(_components.code,{children:`changes.comment`}),` field used in `,_jsx(_components.code,{children:`EDIT_ORDER`}),`. The top-level `,_jsx(_components.code,{children:`comment`}),` is for this specific action, while `,_jsx(_components.code,{children:`changes.comment`}),` permanently updates the order’s stored comment.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`examples`,children:`Examples`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Confirming with a comment:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"change_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"CONFIRM_ORDER\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"comment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Order confirmed, estimated delivery Monday\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Declining with an explanation:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`4`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`4`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"change_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"DECLINE_ORDER\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"comment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Cannot fulfill - requested material discontinued\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Editing with a comment:`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`7`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`7`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"change_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"EDIT_ORDER\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"comment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Updated delivery date per customer phone call\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"changes\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"planned_delivery_time\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-09-20T08:00:00Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Heading,{level:`2`,id:`optional-pdf-pdf_base64`,children:[`Optional PDF (`,_jsx(_components.code,{children:`pdf_base64`}),`)`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pdf_base64`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Base64-encoded PDF (max. 10 MB decoded)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pdf_file_name`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Optional filename for the stored document title`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The PDF can be sent with any `,_jsx(_components.code,{children:`change_type`}),` — for example confirm an order and attach the order confirmation in one request. Identical PDFs are deduplicated by content hash.`]}),`\n`,_jsxs(Heading,{level:`2`,id:`editable-fields-only-on-edit_order`,children:[`Editable fields (only on `,_jsx(_components.code,{children:`EDIT_ORDER`}),`)`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`supplier_order_number`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Supplier-side order number`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`planned_delivery_time`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`string`}),` (ISO 8601)`]}),_jsx(_components.td,{children:`Planned delivery date / time`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`comment`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Supplier comment on the order`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`properties`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`object`})}),_jsxs(_components.td,{children:[`Free-form additional metadata (shallow-merged with existing `,_jsx(_components.code,{children:`properties`}),`)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`items`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`array`})}),_jsx(_components.td,{children:`Order line items — replaces the existing item list`})]})]})]}),`\n`,_jsxs(Heading,{level:`3`,id:`item-fields-items`,children:[`Item fields (`,_jsx(_components.code,{children:`items[]`}),`)`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`title`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Line item title`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`quantity`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`number`}),` (≥ 0)`]}),_jsx(_components.td,{children:`Quantity`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`unit`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsxs(_components.td,{children:[`Unit of measure (`,_jsx(_components.code,{children:`m3`}),`, `,_jsx(_components.code,{children:`t`}),`, `,_jsx(_components.code,{children:`kg`}),`, `,_jsx(_components.code,{children:`stk`}),`, `,_jsx(_components.code,{children:`h`}),`, `,_jsx(_components.code,{children:`pau`}),`, …)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`description`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Optional long description`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`product_number`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Supplier product number`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`type`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`string`})}),_jsx(_components.td,{children:`Line item type`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`marked`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`boolean`})}),_jsx(_components.td,{children:`Flag the line item as verified`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`behavior`,children:`Behavior`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Only fields that actually differ from the current state are written.`}),`\n`,_jsxs(_components.li,{children:[`If `,_jsx(_components.code,{children:`EDIT_ORDER`}),` produces no real diff, the endpoint replies with `,_jsx(_components.code,{children:`Keine Änderungen`}),` and writes nothing.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`properties`}),` is `,_jsx(_components.strong,{children:`shallow-merged`}),` with the existing payload — keys you don’t send keep their previous value.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`items`}),` is `,_jsx(_components.strong,{children:`fully replaced`}),` when present in `,_jsx(_components.code,{children:`changes`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Every successful mutation triggers a change notification email to the customer; the `,_jsx(_components.code,{children:`comment`}),` is forwarded in that email.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`response-codes`,children:`Response codes`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`200`})}),_jsx(_components.td,{children:`Order updated successfully or no changes detected`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsx(_components.td,{children:`Invalid input — validation failed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:`Unauthorized — API key is not linked to a supplier`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`403`})}),_jsxs(_components.td,{children:[`Forbidden — missing `,_jsx(_components.code,{children:`orders:write`}),` scope, or order belongs to another supplier`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsxs(_components.td,{children:[`Order not found / invalid `,_jsx(_components.code,{children:`id`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`500`})}),_jsx(_components.td,{children:`Internal server error`})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update supplier order","openapi":"PATCH /supplier-orders/{id}","description":"**Erforderliche Berechtigungen:** `orders:write`\n\nErmöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen.\n\nDer API-Schlüssel muss mit einem Lieferanten verknüpft sein (`SUPPLIER_AND_OPTIONAL_CUSTOMER`). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind.\n\n**Verhalten der `change_type`-State-Machine:**\n\n- `CONFIRM_ORDER` — Setzt den Status auf `CONFIRMED`.\n- `DECLINE_ORDER` — Setzt den Status auf `DECLINED`.\n- `EDIT_ORDER` — Wendet die in `changes` übergebenen Felder an, ohne den Status zu ändern.\n- `CONFIRM_CANCEL_ORDER` — Setzt den Status auf `CANCEL_CONFIRMED` (nur möglich, wenn die Bestellung im Status `CANCELLED` ist).\n- `CONFIRM_ON_DEMAND` — Setzt den Status auf `ON_DEMAND_CONFIRMED`.\n- `RECEIVE_ORDER` — Setzt den Status auf `RECEIVED`.\n\nDas Feld `changes` wird nur für `EDIT_ORDER` ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren.\n\nOptional kann `pdf_base64` ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert.\n\nWerden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt `Keine Änderungen` zurück und führt keinen Schreibvorgang aus.\n","href":"/en/api-reference/supplier-orders-patch"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Overview","slug":"overview","depth":2,"children":[]},{"title":"Permissions","slug":"permissions","depth":2,"children":[]},{"title":"Headers","slug":"headers","depth":2,"children":[]},{"title":"Path parameters","slug":"path-parameters","depth":2,"children":[]},{"title":"Change types (change_type)","slug":"change-types-change_type","depth":2,"children":[]},{"title":"Supplier Comment Field","slug":"supplier-comment-field","depth":2,"children":[{"title":"Examples","slug":"examples","depth":3,"children":[]}]},{"title":"Optional PDF (pdf_base64)","slug":"optional-pdf-pdf_base64","depth":2,"children":[]},{"title":"Editable fields (only on EDIT_ORDER)","slug":"editable-fields-only-on-edit_order","depth":2,"children":[{"title":"Item fields (items[])","slug":"item-fields-items","depth":3,"children":[]}]},{"title":"Behavior","slug":"behavior","depth":2,"children":[]},{"title":"Response codes","slug":"response-codes","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"updateSupplierOrder","summary":"Lieferantenbestellung aktualisieren","description":"**Erforderliche Berechtigungen:** `orders:write`\n\nErmöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen.\n\nDer API-Schlüssel muss mit einem Lieferanten verknüpft sein (`SUPPLIER_AND_OPTIONAL_CUSTOMER`). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind.\n\n**Verhalten der `change_type`-State-Machine:**\n\n- `CONFIRM_ORDER` — Setzt den Status auf `CONFIRMED`.\n- `DECLINE_ORDER` — Setzt den Status auf `DECLINED`.\n- `EDIT_ORDER` — Wendet die in `changes` übergebenen Felder an, ohne den Status zu ändern.\n- `CONFIRM_CANCEL_ORDER` — Setzt den Status auf `CANCEL_CONFIRMED` (nur möglich, wenn die Bestellung im Status `CANCELLED` ist).\n- `CONFIRM_ON_DEMAND` — Setzt den Status auf `ON_DEMAND_CONFIRMED`.\n- `RECEIVE_ORDER` — Setzt den Status auf `RECEIVED`.\n\nDas Feld `changes` wird nur für `EDIT_ORDER` ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren.\n\nOptional kann `pdf_base64` ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert.\n\nWerden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt `Keine Änderungen` zurück und führt keinen Schreibvorgang aus.\n","tags":["Orders (Supplier)"],"parameters":["62ee2e48-742c-4de8-8789-187b63dbfac6"],"security":["71b82586-730e-43c2-9458-aa85dec8d736"],"requestBody":"2b6bf515-bee1-404e-83f3-20b539116951","responses":{"200":"5d1d0f0a-6718-4254-b7f9-d6527d67e4c4","400":"71e2a0fa-a628-4de1-ba1b-a91d5169dec1","401":"11bb8eb1-3c9e-41fe-afc2-e1cee9288c44","403":"98e2d7f3-1923-4c35-92c3-db6c438bc54f","404":"982737ee-fdc5-427f-9cb0-c9eab2e892fa","500":"858292fa-8f41-4f13-89c0-d18a495b85fa"},"method":"patch","type":"path","servers":["27bdc885-654c-42d2-b8de-7d04f298bbbd","91c701c1-ebe7-4fa2-b078-ea277e03dd21"],"path":"/supplier-orders/{id}","baseUrlOptions":["https://api.comstruct.com/v1","https://api.comstruct.com"],"title":"Lieferantenbestellung aktualisieren","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"62ee2e48-742c-4de8-8789-187b63dbfac6":{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"Bestellungs-ID (UUID)","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"Bestellungs-ID (UUID)"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["change_type"],"properties":{"change_type":{"type":"string","enum":["CONFIRM_ORDER","DECLINE_ORDER","EDIT_ORDER","CONFIRM_CANCEL_ORDER","CONFIRM_ON_DEMAND","RECEIVE_ORDER"],"description":"Treibt die Statusübergänge der Bestellung:\n- `CONFIRM_ORDER` → Status `CONFIRMED`\n- `DECLINE_ORDER` → Status `DECLINED`\n- `EDIT_ORDER` → Status unverändert; `changes` werden angewendet\n- `CONFIRM_CANCEL_ORDER` → Status `CANCEL_CONFIRMED` (Bestellung muss vorher `CANCELLED` sein)\n- `CONFIRM_ON_DEMAND` → Status `ON_DEMAND_CONFIRMED`\n- `RECEIVE_ORDER` → Status `RECEIVED`\n","isRequired":true,"uniqueKey":"change_type","typeLabel":"enum\u003cstring>"},"comment":{"type":"string","maxLength":2000,"description":"Optionaler Kommentar des Lieferanten zu dieser Änderung. Wird in der Benachrichtigung an das Bauunternehmen mitgesendet.","uniqueKey":"comment","typeLabel":"string"},"changes":{"type":"object","description":"Konkrete Feldänderungen. Wird nur für `change_type: EDIT_ORDER` ausgewertet — bei allen anderen Änderungstypen wird der Inhalt ignoriert, sodass ERP-Systeme den vollständigen Bestelldatensatz risikofrei mitschicken können.\n","properties":{"items":{"type":"array","description":"Bestellpositionen. Wird übergeben, ersetzt der Server die bestehenden Positionen.","items":{"type":"object","description":"Lieferantenseitige Sicht auf eine einzelne Bestellposition. Nur in `EDIT_ORDER`-Anfragen relevant — bei anderen `change_type`-Werten wird das Feld ignoriert.\n","properties":{"title":{"type":"string","description":"Positionsbezeichnung","example":"Beton C25/30","uniqueKey":"changes.\\items.items.[INDEX].title","typeLabel":"string"},"quantity":{"type":"number","minimum":0,"description":"Bestellmenge","example":50,"uniqueKey":"changes.\\items.items.[INDEX].quantity","typeLabel":"number"},"unit":{"type":"string","description":"Mengeneinheit","example":"m3","uniqueKey":"changes.\\items.items.[INDEX].unit","typeLabel":"string"},"description":{"type":"string","description":"Optionale Detailbeschreibung der Position","uniqueKey":"changes.\\items.items.[INDEX].description","typeLabel":"string"},"product_number":{"type":"string","description":"Produktnummer beim Lieferanten","example":"BET-C2530","uniqueKey":"changes.\\items.items.[INDEX].product_number","typeLabel":"string"},"type":{"type":"string","description":"Positionstyp","uniqueKey":"changes.\\items.items.[INDEX].type","typeLabel":"string"},"marked":{"type":"boolean","description":"Position als verifiziert markieren","uniqueKey":"changes.\\items.items.[INDEX].marked","typeLabel":"boolean"}},"uniqueKey":"changes.\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"changes.\\items","typeLabel":"object[]"},"supplier_order_number":{"type":"string","description":"Lieferanteneigene Bestellnummer","example":"SUP-2024-0001","uniqueKey":"changes.supplier_order_number","typeLabel":"string"},"planned_delivery_time":{"type":"string","format":"date-time","description":"Geplantes Lieferdatum (ISO 8601)","example":"2024-06-12T08:30:00Z","uniqueKey":"changes.planned_delivery_time","typeLabel":"string\u003cdate-time>"},"comment":{"type":"string","description":"Lieferantenkommentar zur Bestellung","uniqueKey":"changes.comment","typeLabel":"string"},"properties":{"type":"object","description":"Frei strukturierte Zusatzinformationen. Wird mit den vorhandenen `properties` zusammengeführt (Shallow-Merge).","additionalProperties":true,"uniqueKey":"changes.properties","typeLabel":"object"}},"uniqueKey":"changes","typeLabel":"object"},"pdf_base64":{"type":"string","description":"Optionales base64-kodiertes PDF (roh oder mit data-URI-Präfix, max. 10 MB dekodiert)","uniqueKey":"pdf_base64","typeLabel":"string"},"pdf_file_name":{"type":"string","description":"Optionaler Dateiname für den Dokumenttitel bei `pdf_base64`","uniqueKey":"pdf_file_name","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"confirm_order":{"title":"confirm_order","value":{"change_type":"CONFIRM_ORDER","comment":"Bestellung wird wie geplant ausgeliefert."}},"confirm_order_with_pdf":{"title":"confirm_order_with_pdf","value":{"change_type":"CONFIRM_ORDER","comment":"Auftragsbestätigung im Anhang.","pdf_base64":"JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PC9UeXBlL0NhdGFsb2c+PgplbmRvYmoK","pdf_file_name":"order-confirmation.pdf"}},"decline_order":{"title":"decline_order","value":{"change_type":"DECLINE_ORDER","comment":"Material derzeit nicht lieferbar."}},"edit_order":{"title":"edit_order","value":{"change_type":"EDIT_ORDER","comment":"Lieferdatum und Mengen angepasst.","changes":{"supplier_order_number":"SUP-2024-0001","planned_delivery_time":"2024-06-12T08:30:00Z","items":[{"title":"Beton C25/30","quantity":50,"unit":"m3","product_number":"BET-C2530"},{"title":"Bewehrungsstahl","quantity":2,"unit":"t","product_number":"BST-500"}]}}},"confirm_on_demand":{"title":"confirm_on_demand","value":{"change_type":"CONFIRM_ON_DEMAND","comment":"Abruf bestätigt."}},"receive_order":{"title":"receive_order","value":{"change_type":"RECEIVE_ORDER"}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"5d1d0f0a-6718-4254-b7f9-d6527d67e4c4":{"description":"Bestellung erfolgreich aktualisiert oder keine Änderungen erkannt","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Menschenlesbare Statusmeldung; `Keine Änderungen` signalisiert, dass keine Mutation durchgeführt wurde.","example":"Die aktualisierte Bestellung wurde an das Bauunternehmen gesendet.","uniqueKey":"message","typeLabel":"string"},"error":{"oneOf":[{"type":"string","description":"Fehlermeldung, sofern aufgetreten (sonst `null`)","example":null,"uniqueKey":"error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Fehlermeldung, sofern aufgetreten (sonst `null`)","example":null,"uniqueKey":"error.oneOf.1","typeLabel":"null"}],"uniqueKey":"error","typeLabel":"string | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"updated":{"title":"updated","value":{"message":"Die aktualisierte Bestellung wurde an das Bauunternehmen gesendet.","error":null}},"no_changes":{"title":"no_changes","value":{"message":"Keine Änderungen","error":null}}},"exampleType":"examples"}},"exampleType":"examples"},"71e2a0fa-a628-4de1-ba1b-a91d5169dec1":{"description":"Ungültige Anfrage - Ungültige Eingabe oder Validierung fehlgeschlagen","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.0.message","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.0.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["message"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.1.error","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.1.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["success"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","isRequired":true,"uniqueKey":"oneOf.2.success","typeLabel":"boolean"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.2.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.2.message","typeLabel":"string"}},"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"validation_error":{"title":"validation_error","value":{"error":"Validation failed for field external_id"}},"array_expected":{"title":"array_expected","value":{"error":"Invalid request body. Expected an array of purchase orders."}}},"exampleType":"examples"}},"exampleType":"examples"},"11bb8eb1-3c9e-41fe-afc2-e1cee9288c44":{"description":"Nicht autorisiert - Schlüssel ist mit keinem Lieferanten verknüpft","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.0.message","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.0.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["message"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.1.error","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.1.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["success"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","isRequired":true,"uniqueKey":"oneOf.2.success","typeLabel":"boolean"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.2.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.2.message","typeLabel":"string"}},"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"missing_supplier_link":{"title":"missing_supplier_link","value":{"error":"Unauthorized. API key must be linked to a supplier (customer is optional)."}}},"exampleType":"examples"}},"exampleType":"examples"},"98e2d7f3-1923-4c35-92c3-db6c438bc54f":{"description":"Verboten - Fehlende Berechtigung oder Bestellung gehört einem anderen Lieferanten","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.0.message","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.0.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["message"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.1.error","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.1.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["success"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","isRequired":true,"uniqueKey":"oneOf.2.success","typeLabel":"boolean"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.2.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.2.message","typeLabel":"string"}},"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"missing_scope":{"title":"missing_scope","value":{"error":"Unauthorized. Missing scope: orders:write"}},"wrong_supplier":{"title":"wrong_supplier","value":{"error":"Forbidden. Order does not belong to this supplier."}}},"exampleType":"examples"}},"exampleType":"examples"},"982737ee-fdc5-427f-9cb0-c9eab2e892fa":{"description":"Bestellung nicht gefunden","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.0.message","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.0.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["message"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.1.error","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.1.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["success"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","isRequired":true,"uniqueKey":"oneOf.2.success","typeLabel":"boolean"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.2.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.2.message","typeLabel":"string"}},"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"not_found":{"title":"not_found","value":{"error":"Die Bestellnummer ist ungültig."}}},"exampleType":"examples"}},"exampleType":"examples"},"858292fa-8f41-4f13-89c0-d18a495b85fa":{"description":"Interner Serverfehler","content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["error"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","isRequired":true,"uniqueKey":"oneOf.0.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.0.message","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.0.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["message"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.1.error","typeLabel":"string"},"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","uniqueKey":"oneOf.1.success","typeLabel":"boolean"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","required":["success"],"example":{"error":"Validation failed","message":"The provided data did not pass validation checks"},"properties":{"success":{"type":"boolean","description":"Zeigt Fehlschlag an, wenn in Fehlerantworten vorhanden","isRequired":true,"uniqueKey":"oneOf.2.success","typeLabel":"boolean"},"error":{"type":"string","description":"Fehlermeldung, die beschreibt, was schiefgelaufen ist","uniqueKey":"oneOf.2.error","typeLabel":"string"},"message":{"type":"string","description":"Zusätzliche Fehlerdetails oder benutzerfreundliche Nachricht","uniqueKey":"oneOf.2.message","typeLabel":"string"}},"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"server_error":{"title":"server_error","value":{"error":"The server was unable to process"}},"processing_error":{"title":"processing_error","value":{"error":"Error processing Purchase Orders","message":"Supplier not found. creditor_number does not match an existing supplier."}},"invoice_processing_error":{"title":"invoice_processing_error","value":{"success":false,"error":"Failed to parse invoice"}},"supplier_processing_error":{"title":"supplier_processing_error","value":{"message":"Error processing supplier data."}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"71b82586-730e-43c2-9458-aa85dec8d736":{"ApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API-Schlüssel zur Authentifizierung. Kontaktieren Sie Ihren Customer Success Manager, um einen API-Schlüssel zu erhalten.\n\nJeder Endpunkt erfordert spezifische Berechtigungen (Scopes); die erforderlichen Scopes werden pro Endpunkt angezeigt.\n","scopes":["orders:write"],"schemeName":"ApiKey"}}},"servers":{"27bdc885-654c-42d2-b8de-7d04f298bbbd":{"url":"https://api.comstruct.com/v1","description":"Haupt-API-Endpunkte (erfordert API-Schlüssel-Authentifizierung)","variables":{}},"91c701c1-ebe7-4fa2-b078-ea277e03dd21":{"url":"https://api.comstruct.com","description":"Basisserver für Kalender- und IDS-Endpunkte (andere Authentifizierung)","variables":{}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API-Schlüssel zur Authentifizierung. Kontaktieren Sie Ihren Customer Success Manager, um einen API-Schlüssel zu erhalten.\n\nJeder Endpunkt erfordert spezifische Berechtigungen (Scopes); die erforderlichen Scopes werden pro Endpunkt angezeigt.\n","scopes":["orders:write"],"schemeName":"ApiKey"},"schema":{"title":"X-API-Key","type":"string","description":"API-Schlüssel zur Authentifizierung. Kontaktieren Sie Ihren Customer Success Manager, um einen API-Schlüssel zu erhalten.\n\nJeder Endpunkt erfordert spezifische Berechtigungen (Scopes); die erforderlichen Scopes werden pro Endpunkt angezeigt.\n","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"X-API-Key"}],"title":"ApiKey"}]},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"comstruct","siteName":"comstruct API Dokumentation","title":"Update supplier order - comstruct API Dokumentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"de":{"href":"/api-reference/supplier-orders-patch","matchLevel":1},"en":{"href":"/en/api-reference/supplier-orders-patch","matchLevel":0}}},"lastModified":"2026-09-12T13:04:39.410Z","originalFileLocation":"en/api-reference/supplier-orders-patch.mdx","locale":"en"},"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=\"Erforderliche Berechtigungen: orders:write Ermöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen. Der API-Schlüssel muss mit einem Lieferanten verknüpft sein (SUPPLIER_AND_OPTIONAL_CUSTOMER). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind. Verhalten der change_type-State-Machine: - CONFIRM_ORDER — Setzt den Status auf CONFIRMED. - DECLINE_ORDER — Setzt den Status auf DECLINED. - EDIT_ORDER — Wendet die in changes übergebenen Felder an, ohne den Status zu ändern. - CONFIRM_CANCEL_ORDER — Setzt den Status auf CANCEL_CONFIRMED (nur möglich, wenn die Bestellung im Status CANCELLED ist). - CONFIRM_ON_DEMAND — Setzt den Status auf ON_DEMAND_CONFIRMED. - RECEIVE_ORDER — Setzt den Status auf RECEIVED. Das Feld changes wird nur für EDIT_ORDER ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren. Optional kann pdf_base64 ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert. Werden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt Keine Änderungen zurück und führt keinen Schreibvorgang aus.\">\u003cmeta data-mint-head name=\"application-name\" content=\"comstruct API Dokumentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/comstruct/fBUgIQk4CV_VpIlc/_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/comstruct/fBUgIQk4CV_VpIlc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/comstruct/fBUgIQk4CV_VpIlc/_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/comstruct/fBUgIQk4CV_VpIlc/_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/comstruct/fBUgIQk4CV_VpIlc/_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/comstruct/fBUgIQk4CV_VpIlc/_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/comstruct/fBUgIQk4CV_VpIlc/_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/comstruct/fBUgIQk4CV_VpIlc/_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/comstruct/fBUgIQk4CV_VpIlc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update supplier order - comstruct API Dokumentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Erforderliche Berechtigungen: orders:write Ermöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen. Der API-Schlüssel muss mit einem Lieferanten verknüpft sein (SUPPLIER_AND_OPTIONAL_CUSTOMER). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind. Verhalten der change_type-State-Machine: - CONFIRM_ORDER — Setzt den Status auf CONFIRMED. - DECLINE_ORDER — Setzt den Status auf DECLINED. - EDIT_ORDER — Wendet die in changes übergebenen Felder an, ohne den Status zu ändern. - CONFIRM_CANCEL_ORDER — Setzt den Status auf CANCEL_CONFIRMED (nur möglich, wenn die Bestellung im Status CANCELLED ist). - CONFIRM_ON_DEMAND — Setzt den Status auf ON_DEMAND_CONFIRMED. - RECEIVE_ORDER — Setzt den Status auf RECEIVED. Das Feld changes wird nur für EDIT_ORDER ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren. Optional kann pdf_base64 ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert. Werden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt Keine Änderungen zurück und führt keinen Schreibvorgang aus.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"comstruct API Dokumentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://comstruct.mintlify.site/_mintlify/api/og/v2?division=Orders+%28Supplier%29\u0026amp;title=Update+supplier+order\u0026amp;description=**Erforderliche+Berechtigungen%3A**+%60orders%3Awrite%60%0A%0AErm%C3%B6glicht+es+einem+Lieferanten%2C+eine+ihm+zugeordnete+Bestellung+zu+aktualisieren+%E2%80%94+Best%C3%A4tigen%2C+Ablehnen%2C+Bear\u0026amp;theme=d33cf08ebb99773992a781ff\u0026amp;signature=200f5010eb85488807b1d88092cee15b34dd2ec21ae020365821cf4e5c427d09\">\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=\"Update supplier order - comstruct API Dokumentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Erforderliche Berechtigungen: orders:write Ermöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen. Der API-Schlüssel muss mit einem Lieferanten verknüpft sein (SUPPLIER_AND_OPTIONAL_CUSTOMER). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind. Verhalten der change_type-State-Machine: - CONFIRM_ORDER — Setzt den Status auf CONFIRMED. - DECLINE_ORDER — Setzt den Status auf DECLINED. - EDIT_ORDER — Wendet die in changes übergebenen Felder an, ohne den Status zu ändern. - CONFIRM_CANCEL_ORDER — Setzt den Status auf CANCEL_CONFIRMED (nur möglich, wenn die Bestellung im Status CANCELLED ist). - CONFIRM_ON_DEMAND — Setzt den Status auf ON_DEMAND_CONFIRMED. - RECEIVE_ORDER — Setzt den Status auf RECEIVED. Das Feld changes wird nur für EDIT_ORDER ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren. Optional kann pdf_base64 ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert. Werden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt Keine Änderungen zurück und führt keinen Schreibvorgang aus.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://comstruct.mintlify.site/_mintlify/api/og/v2?division=Orders+%28Supplier%29\u0026amp;title=Update+supplier+order\u0026amp;description=**Erforderliche+Berechtigungen%3A**+%60orders%3Awrite%60%0A%0AErm%C3%B6glicht+es+einem+Lieferanten%2C+eine+ihm+zugeordnete+Bestellung+zu+aktualisieren+%E2%80%94+Best%C3%A4tigen%2C+Ablehnen%2C+Bear\u0026amp;theme=d33cf08ebb99773992a781ff\u0026amp;signature=200f5010eb85488807b1d88092cee15b34dd2ec21ae020365821cf4e5c427d09\">\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/comstruct/fBUgIQk4CV_VpIlc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"comstruct API Dokumentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2F6879\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/api-reference/supplier-orders-patch.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"de\" href=\"https://developer.comstruct.com/api-reference/supplier-orders-patch\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://developer.comstruct.com/api-reference/supplier-orders-patch\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.comstruct.com/#organization\",\"name\":\"comstruct API Dokumentation\",\"url\":\"https://developer.comstruct.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/comstruct/Jpsyju8lznqRSEZJ/logo/light.svg?fit=max\u0026auto=format\u0026n=Jpsyju8lznqRSEZJ\u0026q=85\u0026s=acbbee3c044994a3e7752740782d923f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.comstruct.com#website\",\"name\":\"comstruct API Dokumentation\",\"url\":\"https://developer.comstruct.com\",\"publisher\":{\"@id\":\"https://developer.comstruct.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch#webpage\",\"url\":\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch\",\"name\":\"Update supplier order\",\"description\":\"Erforderliche Berechtigungen: orders:write Ermöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen. Der API-Schlüssel muss mit einem Lieferanten verknüpft sein (SUPPLIER_AND_OPTIONAL_CUSTOMER). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind. Verhalten der change_type-State-Machine: - CONFIRM_ORDER — Setzt den Status auf CONFIRMED. - DECLINE_ORDER — Setzt den Status auf DECLINED. - EDIT_ORDER — Wendet die in changes übergebenen Felder an, ohne den Status zu ändern. - CONFIRM_CANCEL_ORDER — Setzt den Status auf CANCEL_CONFIRMED (nur möglich, wenn die Bestellung im Status CANCELLED ist). - CONFIRM_ON_DEMAND — Setzt den Status auf ON_DEMAND_CONFIRMED. - RECEIVE_ORDER — Setzt den Status auf RECEIVED. Das Feld changes wird nur für EDIT_ORDER ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren. Optional kann pdf_base64 ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert. Werden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt Keine Änderungen zurück und führt keinen Schreibvorgang aus.\",\"dateModified\":\"2026-09-12T13:04:39.410Z\",\"isPartOf\":{\"@id\":\"https://developer.comstruct.com#website\"},\"breadcrumb\":{\"@id\":\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"comstruct API Dokumentation\",\"item\":\"https://developer.comstruct.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update supplier order\",\"item\":\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch#apireference\",\"headline\":\"Update supplier order\",\"name\":\"Update supplier order\",\"description\":\"Erforderliche Berechtigungen: orders:write Ermöglicht es einem Lieferanten, eine ihm zugeordnete Bestellung zu aktualisieren — Bestätigen, Ablehnen, Bearbeiten, Stornierung bestätigen, Abruf bestätigen oder Eingang bestätigen. Der API-Schlüssel muss mit einem Lieferanten verknüpft sein (SUPPLIER_AND_OPTIONAL_CUSTOMER). Lieferanten können ausschließlich Bestellungen aktualisieren, die ihrem Lieferantenkonto zugeordnet sind. Verhalten der change_type-State-Machine: - CONFIRM_ORDER — Setzt den Status auf CONFIRMED. - DECLINE_ORDER — Setzt den Status auf DECLINED. - EDIT_ORDER — Wendet die in changes übergebenen Felder an, ohne den Status zu ändern. - CONFIRM_CANCEL_ORDER — Setzt den Status auf CANCEL_CONFIRMED (nur möglich, wenn die Bestellung im Status CANCELLED ist). - CONFIRM_ON_DEMAND — Setzt den Status auf ON_DEMAND_CONFIRMED. - RECEIVE_ORDER — Setzt den Status auf RECEIVED. Das Feld changes wird nur für EDIT_ORDER ausgewertet — bei den übrigen Änderungstypen wird es ignoriert. So können ERP-Systeme bei Bestätigungen risikofrei den vollständigen Bestelldatensatz mitschicken, ohne ihn versehentlich zu mutieren. Optional kann pdf_base64 ein base64-kodiertes PDF (z. B. Auftragsbestätigung) mitschicken. Identische PDFs werden per Content-Hash dedupliziert. Werden keine tatsächlichen Änderungen erkannt (z. B. weil die übergebenen Werte mit dem aktuellen Stand übereinstimmen), liefert der Endpunkt Keine Änderungen zurück und führt keinen Schreibvorgang aus.\",\"url\":\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch\",\"mainEntityOfPage\":{\"@id\":\"https://developer.comstruct.com/en/api-reference/supplier-orders-patch#webpage\"},\"dateModified\":\"2026-09-12T13:04:39.410Z\",\"publisher\":{\"@id\":\"https://developer.comstruct.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.comstruct.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"comstruct API Dokumentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"comstruct API Dokumentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/en/api-reference/supplier-orders-patch.md","siteName":"comstruct API Dokumentation","nav":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"mailto:support@comstruct.com"}]},"languages":[{"language":"de","default":true,"pages":[{"title":"de","href":"/api-reference/supplier-orders-patch"}]},{"language":"en","tabs":[{"tab":"Getting started","pages":[{"title":"Getting started","href":"/en"}]},{"tab":"API Reference","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/en/api-reference/introduction"}]},{"group":"Projects","pages":[{"title":"List projects","openapi":"GET /projects","href":"/en/api-reference/projects"},{"title":"Create project","openapi":"POST /projects","href":"/en/api-reference/projects-create"},{"title":"Assign users","openapi":"POST /projects/user-assignments","href":"/en/api-reference/projects-user-assignments"},{"title":"Get project by external ID","openapi":"GET /projects/byExternalId/{external_id}","href":"/en/api-reference/projects-by-external-id"},{"title":"Get project by number","openapi":"GET /projects/byProjectNumber/{project_number}","href":"/en/api-reference/projects-by-number"},{"title":"Get project components","openapi":"GET /projects/{id}/components","href":"/en/api-reference/projects-components"},{"title":"List project work types","openapi":"GET /projects/{id}/work-types","href":"/en/api-reference/projects-work-types"},{"title":"Import project work types","openapi":"POST /projects/{id}/work-types","href":"/en/api-reference/projects-work-types-upsert"},{"title":"Projects (SAP)","openapi":"POST /projects/sap","href":"/en/api-reference/projects-sap"}]},{"group":"Deliveries","pages":[{"title":"List deliveries","openapi":"GET /deliveries","href":"/en/api-reference/deliveries"},{"title":"Create delivery","openapi":"POST /deliveries","href":"/en/api-reference/deliveries-create"},{"title":"Update delivery","openapi":"PATCH /deliveries/{id}","href":"/en/api-reference/deliveries-patch"},{"title":"Get delivery by ID","openapi":"GET /deliveries/{id}","href":"/en/api-reference/deliveries-by-id"},{"title":"Get delivery components","openapi":"GET /deliveries/{id}/components","href":"/en/api-reference/deliveries-components-get"},{"title":"Replace delivery components","openapi":"PUT /deliveries/{id}/components","href":"/en/api-reference/deliveries-components-put"},{"title":"Get delivery PDF","openapi":"GET /deliveries/{id}/pdf","href":"/en/api-reference/deliveries-pdf"},{"title":"Upload delivery PDF","openapi":"POST /deliveries/pdf","href":"/en/api-reference/deliveries-pdf-upload"},{"title":"OpenTrans delivery","openapi":"POST /deliveries/opentrans","href":"/en/api-reference/deliveries-opentrans"},{"title":"PAHM delivery","openapi":"POST /deliveries/pahm","href":"/en/api-reference/deliveries-pahm"},{"title":"Custom delivery","openapi":"POST /deliveries/custom","href":"/en/api-reference/deliveries-custom"}]},{"group":"Invoices","pages":[{"title":"List invoices","openapi":"GET /invoices","href":"/en/api-reference/invoices"},{"title":"Get invoice by ID","openapi":"GET /invoices/{id}","href":"/en/api-reference/invoices-by-id"},{"title":"Get invoice items","openapi":"GET /invoices/{id}/items","href":"/en/api-reference/invoices-items"},{"title":"Get invoice history","openapi":"GET /invoices/{id}/history","href":"/en/api-reference/invoices-history"},{"title":"Get invoice PDF","openapi":"GET /invoices/{id}/pdf","href":"/en/api-reference/invoices-pdf"},{"title":"Export DATEV XML","openapi":"POST /invoices/public/datev-export","href":"/en/api-reference/invoices-datev-export"},{"title":"Set invoice external status","openapi":"PATCH /invoices/{id}/external-status","href":"/en/api-reference/invoices-external-status"},{"title":"Custom invoice upload","openapi":"POST /invoices/custom","href":"/en/api-reference/invoices-custom"},{"title":"Invoice callback","openapi":"POST /invoices/callback","href":"/en/api-reference/invoices-callback"}]},{"group":"Invoice dimensions","pages":[{"title":"Invoice dimensions (custom properties)","openapi":"GET /invoice-dimensions","href":"/en/api-reference/invoice-dimensions"},{"title":"Create invoice dimension","openapi":"POST /invoice-dimensions","href":"/en/api-reference/invoice-dimensions-create"},{"title":"Update invoice dimension","openapi":"PATCH /invoice-dimensions/{id}","href":"/en/api-reference/invoice-dimensions-update"},{"title":"Delete invoice dimension","openapi":"DELETE /invoice-dimensions/{id}","href":"/en/api-reference/invoice-dimensions-delete"},{"title":"Get dimension options","openapi":"GET /invoice-dimensions/{dimensionId}/options","href":"/en/api-reference/invoice-dimensions-options-list"},{"title":"Create dimension options","openapi":"POST /invoice-dimensions/{dimensionId}/options","href":"/en/api-reference/invoice-dimensions-options-create"},{"title":"Update dimension option","openapi":"PATCH /invoice-dimensions/options/{id}","href":"/en/api-reference/invoice-dimensions-options-update"},{"title":"Delete dimension option","openapi":"DELETE /invoice-dimensions/options/{id}","href":"/en/api-reference/invoice-dimensions-options-delete"},{"title":"Get invoice dimension assignments","openapi":"GET /invoice-dimensions/assignments/invoice/{invoiceId}","href":"/en/api-reference/invoice-dimensions-assignments-invoice-get"},{"title":"Set header dimension assignments","openapi":"POST /invoice-dimensions/assignments/invoice","href":"/en/api-reference/invoice-dimensions-assignments-invoice-set"},{"title":"Set line-item dimension assignments (bulk)","openapi":"POST /invoice-dimensions/assignments/line-item/bulk","href":"/en/api-reference/invoice-dimensions-assignments-line-item-bulk"},{"title":"Set account dimension assignments (bulk)","openapi":"POST /invoice-dimensions/assignments/account/bulk","href":"/en/api-reference/invoice-dimensions-assignments-account-bulk-set"},{"title":"Patch account dimension assignments (bulk)","openapi":"PATCH /invoice-dimensions/assignments/account/bulk","href":"/en/api-reference/invoice-dimensions-assignments-account-bulk-patch"},{"title":"Set account dimension assignments (single account)","openapi":"POST /invoice-dimensions/assignments/account","href":"/en/api-reference/invoice-dimensions-assignments-account-set"},{"title":"Delete dimension assignment","openapi":"DELETE /invoice-dimensions/assignments/{id}","href":"/en/api-reference/invoice-dimensions-assignments-delete"}]},{"group":"Suppliers","pages":[{"title":"Create or update suppliers","openapi":"POST /suppliers","href":"/en/api-reference/suppliers"},{"title":"Create or update SAP suppliers","openapi":"POST /suppliers/sap","href":"/en/api-reference/suppliers-sap"},{"title":"Assign supplier to company codes","openapi":"PUT /suppliers/{id}/legal-entities","href":"/en/api-reference/suppliers-legal-entities"}]},{"group":"Purchase orders","pages":[{"title":"List purchase orders","openapi":"GET /purchase-orders","href":"/en/api-reference/purchase-orders-list"},{"title":"Create purchase orders","openapi":"POST /purchase-orders","href":"/en/api-reference/purchase-orders"},{"title":"Purchase orders (SAP)","openapi":"POST /purchase-orders/sap","description":"**Erforderliche Berechtigungen:** `purchase_orders:write`\n\nEmpfängt und verarbeitet Bestellungen aus dem SAP-System. Akzeptiert ein Array von SAP-Bestellungen als rohe JSON-Daten.\nAPI-Schlüssel muss mit einem Kunden verknüpft sein.\n**Validierung**: Alle Bestellungen müssen die Schemavalidierung bestehen und auf existierende Lieferanten verweisen.\n\n**Optionale Felder:**\n- `alternative_number`: Alternative Bestellnummer in SAP (wird zu `alternative_contract_number` zugeordnet)\n","href":"/en/api-reference/purchase-orders-sap"}]},{"group":"Orders (Supplier)","pages":[{"title":"Update supplier order","openapi":"PATCH /supplier-orders/{id}","href":"/en/api-reference/supplier-orders-patch"}]},{"group":"Master data","pages":[{"title":"List accounts","openapi":"GET /accounts","description":"**Erforderliche Berechtigungen:** `accounts:read`\n\nRuft eine paginierte Liste von Konten für den aktuellen Mandanten ab, aufsteigend sortiert nach `number`.\n","href":"/en/api-reference/accounts"},{"title":"Create or update accounts","openapi":"POST /accounts","href":"/en/api-reference/accounts-create"},{"title":"List payment terms","openapi":"GET /payment-terms","href":"/en/api-reference/payment-terms"},{"title":"Create or update payment terms","openapi":"POST /payment-terms","href":"/en/api-reference/payment-terms-upsert"},{"title":"List tax codes","openapi":"GET /tax-codes","href":"/en/api-reference/tax-codes"},{"title":"Create or update tax code","openapi":"POST /tax-codes","href":"/en/api-reference/tax-codes-upsert"},{"title":"List company codes","openapi":"GET /legal-entities","href":"/en/api-reference/company-codes"},{"title":"Create or update company codes","openapi":"POST /legal-entities","href":"/en/api-reference/company-codes-upsert"},{"title":"List project regions","openapi":"GET /project-regions","href":"/en/api-reference/project-regions"},{"title":"Create or update project region","openapi":"POST /project-regions","href":"/en/api-reference/project-regions-upsert"}]},{"group":"Q-Point Integration","pages":[{"title":"Q-Point","openapi":"POST /qpoint","href":"/en/api-reference/qpoint"},{"title":"Q-Point PDF","openapi":"POST /qpoint/pdf","href":"/en/api-reference/qpoint-pdf"}]},{"group":"Workflows","pages":[{"title":"Trigger workflow","openapi":"POST /workflows/trigger","href":"/en/api-reference/workflows-trigger"},{"title":"Workflow status","openapi":"GET /workflows/status/{external_id}","href":"/en/api-reference/workflows-status"},{"title":"Update workflow status","openapi":"PUT /workflows/status/{external_id}","href":"/en/api-reference/workflows-status-update"}]},{"group":"Calendar","pages":[{"title":"Calendar subscription","openapi":"GET /calendars/subscription","href":"/en/api-reference/calendars"}]},{"group":"IDS Orders","pages":[{"title":"IDS orders","openapi":"POST /ids/{order_id}","href":"/en/api-reference/ids-orders"}]}]}]}]},"basePath":"","title":"Update supplier order - comstruct API Dokumentation","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}