Zum Hauptinhalt springen
PATCH
/
supplier-orders
/
{id}
curl --request PATCH \
  --url https://api.comstruct.com/v1/supplier-orders/{id} \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "change_type": "CONFIRM_ORDER",
  "comment": "Bestellung wird wie geplant ausgeliefert."
}
'
{
  "message": "Die aktualisierte Bestellung wurde an das Bauunternehmen gesendet.",
  "error": null
}

Documentation Index

Fetch the complete documentation index at: https://developer.comstruct.com/llms.txt

Use this file to discover all available pages before exploring further.

Übersicht

Mit diesem Endpunkt können Lieferanten eine ihnen zugeordnete Bestellung über die comstruct API aktualisieren — Bestätigung, Ablehnung, Bearbeitung, Bestätigung einer Stornierung, Bestätigung eines Abrufs sowie Bestätigung des Bestelleingangs werden über einen einzigen PATCH-Aufruf abgewickelt. Der eigentliche Statusübergang wird serverseitig aus dem Feld change_type abgeleitet — das Feld status ist im Body bewusst nicht zugelassen, damit die Statusmaschine im Backend bleibt.
Wenn die übergebenen Felder mit dem aktuellen Stand der Bestellung übereinstimmen, antwortet der Endpunkt mit Keine Änderungen und führt keinen Schreibvorgang aus. ERP-Systeme können bei Bestätigungen daher gefahrlos den vollständigen Bestelldatensatz mitschicken.

Berechtigungen

ScopeTenant-Typ
orders:writeLieferanten-API-Schlüssel (SUPPLIER_AND_OPTIONAL_CUSTOMER)
Der API-Schlüssel muss mit einem Lieferanten verknüpft sein. Reine Kunden-API-Schlüssel können diesen Endpunkt nicht verwenden. Lieferanten dürfen ausschließlich Bestellungen aktualisieren, die ihrem eigenen Lieferantenkonto zugeordnet sind.
HeaderPflichtBeschreibung
x-api-keyJaAPI-Schlüssel mit Scope orders:write
Content-TypeJaapplication/json

Pfadparameter

ParameterTypBeschreibung
iduuidEindeutige ID der zu aktualisierenden Bestellung

Änderungstypen (change_type)

WertWirkungVorbedingung
CONFIRM_ORDERSetzt den Status auf CONFIRMED
DECLINE_ORDERSetzt den Status auf DECLINED
EDIT_ORDERWendet die in changes übergebenen Felder an, Status bleibt unverändert
CONFIRM_CANCEL_ORDERSetzt den Status auf CANCEL_CONFIRMEDBestellung muss im Status CANCELLED sein
CONFIRM_ON_DEMANDSetzt den Status auf ON_DEMAND_CONFIRMED
RECEIVE_ORDERSetzt den Status auf RECEIVED
changes wird ausschließlich für EDIT_ORDER ausgewertet. Bei den übrigen Änderungstypen wird der Inhalt von changes ignoriert.

Editierbare Felder (nur EDIT_ORDER)

FeldTypBeschreibung
supplier_order_numberstringLieferanteneigene Bestellnummer
planned_delivery_timestring (ISO 8601)Geplantes Lieferdatum
commentstringLieferantenkommentar zur Bestellung
propertiesobjectFrei strukturierte Zusatzinformationen (Shallow-Merge mit bestehenden properties)
itemsarrayBestellpositionen — überschreibt die bestehende Positionsliste

Felder einer Position (items[])

FeldTypBeschreibung
titlestringPositionsbezeichnung
quantitynumber (≥ 0)Bestellmenge
unitstringMengeneinheit (m3, t, kg, stk, h, pau, …)
descriptionstringOptionale Detailbeschreibung
product_numberstringProduktnummer beim Lieferanten
typestringPositionstyp
markedbooleanPosition als verifiziert markieren

Verhalten

  • Nur tatsächlich geänderte Felder werden geschrieben — übereinstimmende Werte werden serverseitig erkannt und übersprungen.
  • Werden in EDIT_ORDER keine echten Änderungen erkannt, antwortet der Endpunkt mit Keine Änderungen.
  • properties wird flach gemerged mit den bestehenden Werten; Schlüssel ohne neuen Wert bleiben erhalten.
  • items wird vollständig ersetzt, wenn das Feld in changes übergeben wird.
  • Bei jeder erfolgreichen Mutation wird automatisch eine Änderungsbenachrichtigung an das Bauunternehmen gesendet — comment wird in dieser Mail mitgeführt.

Response Codes

CodeBeschreibung
200Bestellung erfolgreich aktualisiert oder keine Änderungen erkannt
400Ungültige Eingabe — Validierung fehlgeschlagen
401Nicht autorisiert — API-Schlüssel ist mit keinem Lieferanten verknüpft
403Verboten — fehlender Scope orders:write oder Bestellung gehört einem anderen Lieferanten
404Bestellung nicht gefunden / id ungültig
500Interner Serverfehler

Autorisierungen

X-API-Key
string
header
erforderlich

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.

Pfadparameter

id
string<uuid>
erforderlich

Bestellungs-ID (UUID)

Body

application/json
change_type
enum<string>
erforderlich

Treibt die Statusübergänge der Bestellung:

  • CONFIRM_ORDER → Status CONFIRMED
  • DECLINE_ORDER → Status DECLINED
  • EDIT_ORDER → Status unverändert; changes werden angewendet
  • CONFIRM_CANCEL_ORDER → Status CANCEL_CONFIRMED (Bestellung muss vorher CANCELLED sein)
  • CONFIRM_ON_DEMAND → Status ON_DEMAND_CONFIRMED
  • RECEIVE_ORDER → Status RECEIVED
Verfügbare Optionen:
CONFIRM_ORDER,
DECLINE_ORDER,
EDIT_ORDER,
CONFIRM_CANCEL_ORDER,
CONFIRM_ON_DEMAND,
RECEIVE_ORDER
comment
string

Optionaler Kommentar des Lieferanten zu dieser Änderung. Wird in der Benachrichtigung an das Bauunternehmen mitgesendet.

Maximum string length: 2000
changes
object

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.

Antwort

Bestellung erfolgreich aktualisiert oder keine Änderungen erkannt

message
string

Menschenlesbare Statusmeldung; Keine Änderungen signalisiert, dass keine Mutation durchgeführt wurde.

Beispiel:

"Die aktualisierte Bestellung wurde an das Bauunternehmen gesendet."

error
string | null

Fehlermeldung, sofern aufgetreten (sonst null)

Beispiel:

null