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 aufCONFIRMED.DECLINE_ORDER— Setzt den Status aufDECLINED.EDIT_ORDER— Wendet die inchangesübergebenen Felder an, ohne den Status zu ändern.CONFIRM_CANCEL_ORDER— Setzt den Status aufCANCEL_CONFIRMED(nur möglich, wenn die Bestellung im StatusCANCELLEDist).CONFIRM_ON_DEMAND— Setzt den Status aufON_DEMAND_CONFIRMED.RECEIVE_ORDER— Setzt den Status aufRECEIVED.
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.
Overview
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 singlePATCH 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.
Keine Änderungen (“No changes”) and skips the write. ERP
systems can therefore safely include the full order payload on confirmations
without risking accidental mutations.Permissions
| Scope | Tenant type |
|---|---|
orders:write | Supplier API key (SUPPLIER_AND_OPTIONAL_CUSTOMER) |
Headers
| Header | Required | Description |
|---|---|---|
x-api-key | Yes | API key with scope orders:write |
Content-Type | Yes | application/json |
Path parameters
| Parameter | Type | Description |
|---|---|---|
id | uuid | Unique ID of the order to update |
Change types (change_type)
| Value | Effect | Precondition |
|---|---|---|
CONFIRM_ORDER | Sets status to CONFIRMED | — |
DECLINE_ORDER | Sets status to DECLINED | — |
EDIT_ORDER | Applies the fields in changes; status stays the same | — |
CONFIRM_CANCEL_ORDER | Sets status to CANCEL_CONFIRMED | Order must be in status CANCELLED |
CONFIRM_ON_DEMAND | Sets status to ON_DEMAND_CONFIRMED | — |
RECEIVE_ORDER | Sets status to RECEIVED | — |
changes is only consumed for EDIT_ORDER. For every other change type the body of changes is ignored.
Optional PDF (pdf_base64)
| Field | Type | Required | Description |
|---|---|---|---|
pdf_base64 | string | No | Base64-encoded PDF (max. 10 MB decoded) |
pdf_file_name | string | No | Optional filename for the stored document title |
change_type — for example confirm an order and attach the order confirmation in one request. Identical PDFs are deduplicated by content hash.
Editable fields (only on EDIT_ORDER)
| Field | Type | Description |
|---|---|---|
supplier_order_number | string | Supplier-side order number |
planned_delivery_time | string (ISO 8601) | Planned delivery date / time |
comment | string | Supplier comment on the order |
properties | object | Free-form additional metadata (shallow-merged with existing properties) |
items | array | Order line items — replaces the existing item list |
Item fields (items[])
| Field | Type | Description |
|---|---|---|
title | string | Line item title |
quantity | number (≥ 0) | Quantity |
unit | string | Unit of measure (m3, t, kg, stk, h, pau, …) |
description | string | Optional long description |
product_number | string | Supplier product number |
type | string | Line item type |
marked | boolean | Flag the line item as verified |
Behavior
- Only fields that actually differ from the current state are written.
- If
EDIT_ORDERproduces no real diff, the endpoint replies withKeine Änderungenand writes nothing. propertiesis shallow-merged with the existing payload — keys you don’t send keep their previous value.itemsis fully replaced when present inchanges.- Every successful mutation triggers a change notification email to the customer; the
commentis forwarded in that email.
Response codes
| Code | Description |
|---|---|
200 | Order updated successfully or no changes detected |
400 | Invalid input — validation failed |
401 | Unauthorized — API key is not linked to a supplier |
403 | Forbidden — missing orders:write scope, or order belongs to another supplier |
404 | Order not found / invalid id |
500 | Internal server error |
Authorizations
API-Schlüssel zur Authentifizierung. Kontaktieren Sie Ihren Customer Success Manager, um einen API-Schlüssel zu erhalten.
Jeder Endpunkt erfordert spezifische Berechtigungen (Scopes); die erforderlichen Scopes werden pro Endpunkt angezeigt.
Path Parameters
Bestellungs-ID (UUID)
Body
Treibt die Statusübergänge der Bestellung:
CONFIRM_ORDER→ StatusCONFIRMEDDECLINE_ORDER→ StatusDECLINEDEDIT_ORDER→ Status unverändert;changeswerden angewendetCONFIRM_CANCEL_ORDER→ StatusCANCEL_CONFIRMED(Bestellung muss vorherCANCELLEDsein)CONFIRM_ON_DEMAND→ StatusON_DEMAND_CONFIRMEDRECEIVE_ORDER→ StatusRECEIVED
CONFIRM_ORDER, DECLINE_ORDER, EDIT_ORDER, CONFIRM_CANCEL_ORDER, CONFIRM_ON_DEMAND, RECEIVE_ORDER Optionaler Kommentar des Lieferanten zu dieser Änderung. Wird in der Benachrichtigung an das Bauunternehmen mitgesendet.
2000Konkrete 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.
Optionales base64-kodiertes PDF (roh oder mit data-URI-Präfix, max. 10 MB dekodiert)
Optionaler Dateiname für den Dokumenttitel bei pdf_base64
Response
Bestellung erfolgreich aktualisiert oder keine Änderungen erkannt