Zum Hauptinhalt springen
POST
/
suppliers
/
sap
Lieferanten aus SAP-System erstellen oder aktualisieren
curl --request POST \
  --url https://api.comstruct.com/v1/suppliers/sap \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
[
  {
    "number": "EXTERNAL-09092",
    "title": "Beispiel GmbH-8",
    "legal_uid": "D456789900022202",
    "country_code": "US",
    "comment": "Bevorzugter Kontakt per E-Mail",
    "payment_term": "90T",
    "wth_tax_code": "90",
    "bank_details": [
      {
        "number": "9999912",
        "iban": "DE89370400440532013000"
      },
      {
        "external_id": "8881112",
        "iban": "GB33BUKB20201555555555"
      }
    ],
    "address": {
      "address": "Müllerstraße 1",
      "city": "Berlin",
      "zip": "10115",
      "country_code": "DE"
    }
  }
]
'
{
  "message": "Supplier data received successfully"
}

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 synchronisieren Kundensysteme Lieferanten aus SAP nach comstruct. Der Request-Body ist immer ein Array, sodass ein einzelner Lieferant und Batches über denselben POST-Aufruf verarbeitet werden. Wenn number gesetzt ist, wird sie als external_id des Lieferanten gespeichert. Existiert für denselben Kunden bereits ein Lieferant mit dieser external_id, wird der Datensatz aktualisiert.
Senden Sie number für jeden SAP-Lieferanten mit. Das Feld ist für die Schema-Validierung nicht zwingend, wird aber für idempotente SAP-Syncs und spätere Lookups benötigt.

Berechtigungen

ScopeTenant-Typ
suppliers:writeKunden-API-Schlüssel
Der API-Schlüssel muss mit einem Kunden verknüpft sein.
HeaderPflichtBeschreibung
x-api-keyJaAPI-Schlüssel mit Scope suppliers:write
Content-TypeJaapplication/json

Request-Body

Der Body muss ein JSON-Array von Lieferanten enthalten.

Lieferantenfelder

FeldPflichtBeschreibung
titleJaLieferantenname
numberNeinSAP-Lieferantennummer; wird zu external_id gemappt und für Upserts genutzt
legal_uidNeinUSt-IdNr. oder Steuernummer
country_codeNeinISO 3166-1 Alpha-2 Ländercode
commentNeinFreitext-Kommentar zum Lieferanten
payment_termNeinZahlungsbedingungsschlüssel; muss im comstruct-Mandanten existieren
wth_tax_codeNeinQuellensteuercode; Standardwert ist 00
bank_detailsNeinBankverbindungen des Lieferanten
addressNeinLieferantenadresse

Bankverbindungen (bank_details[])

FeldPflichtBeschreibung
ibanJaGültige IBAN
numberNeinExterne Nummer der Bankverbindung; wird bevorzugt als ID gespeichert
external_idNeinAlternative externe ID, falls number nicht gesetzt ist

Adresse (address)

FeldPflichtBeschreibung
addressNeinStraße und Hausnummer
cityNeinOrt
zipNeinPostleitzahl
country_codeNeinISO 3166-1 Alpha-2 Ländercode

Beispiel

curl -X POST "https://api.comstruct.com/v1/suppliers/sap" \
  -H "x-api-key: IHR_API_SCHLUESSEL" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "number": "SAP-SUP-001",
      "title": "Beispiel Lieferant GmbH",
      "legal_uid": "DE123456789",
      "country_code": "DE",
      "comment": "Bevorzugter Kontakt per E-Mail",
      "payment_term": "30T",
      "wth_tax_code": "00",
      "bank_details": [
        {
          "number": "BANK-001",
          "iban": "DE89370400440532013000"
        }
      ],
      "address": {
        "address": "Musterstraße 1",
        "city": "Berlin",
        "zip": "10115",
        "country_code": "DE"
      }
    }
  ]'

Verhalten

  • number wird als external_id gespeichert; vorhandene Lieferanten mit derselben external_id und demselben Kunden werden aktualisiert.
  • Nur die Felder external_id, legal_uid, country_code, withholding_tax_code, payment_term_id, title, comment, address, city und zip werden bei Konflikten aktualisiert.
  • payment_term wird gegen die Zahlungsbedingungen des Kunden aufgelöst. Unbekannte Werte führen zu 400.
  • Fehlt wth_tax_code, speichert comstruct den Standardwert 00.
  • Bankverbindungen werden anhand von IBAN, Lieferant und Tenant zusammengeführt; bei Konflikten wird die externe ID der Bankverbindung aktualisiert.

Response Codes

CodeBeschreibung
200Lieferantendaten erfolgreich verarbeitet
400Ungültiger Body, Validierungsfehler oder unbekannte Zahlungsbedingung
401Nicht autorisiert — API-Schlüssel ist mit keinem Kunden verknüpft
403Verboten — fehlender Scope suppliers:write
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.

Body

application/json
title
string
erforderlich

Lieferantenname/Titel

Beispiel:

"Beispiel GmbH-8"

number
string

Lieferantennummer aus SAP; wird als external_id gespeichert und für Upserts verwendet

Beispiel:

"EXTERNAL-09092"

Optionale Umsatzsteuer-ID

Beispiel:

"D456789900022202"

country_code
string

ISO 3166-1 alpha-2 Ländercode

Beispiel:

"US"

comment
string

Freitext-Kommentar zum Lieferanten

Beispiel:

"Bevorzugter Kontakt per E-Mail"

payment_term
string

Optionaler SAP-Zahlungsbedingungsschlüssel; muss, falls angegeben, im comstruct-Mandanten existieren

Beispiel:

"90T"

wth_tax_code
string

Optionaler Quellensteuercode

Beispiel:

"90"

bank_details
object[]

Optionale Bankverbindungen

address
object

Antwort

Lieferantendaten erfolgreich empfangen

message
string
Beispiel:

"Supplier data received successfully"