API-Landkarte
Zuletzt geändert: 18.07.2026 21:03

API-Landkarte #

Alle Endpunkte der REST-API auf einer Seite: erst die Prozesse als kompakte Ablauf-Diagramme, dann die Referenz - gruppiert nach der Art der Daten (Konstanten, Stammdaten, Bewegungsdaten, Transfer und Aktionen, Auswertungen). Über das Untermenü rechts springt man direkt in jede Gruppe. Pfade sind ohne das Präfix /api/v1 notiert.

Prozesse im Überblick #

Verkaufs-Belegfluss #

Angebot .......... POST /quotes (+ /items)
   │  Angebot → Auftrag:
   │  POST /quotes/{id}/actions/convert-to-order
   v
Auftrag .......... POST /sales-orders (+ /items)
   │  buchen (reserviert): POST .../actions/book
   │  wieder öffnen:       POST .../actions/reopen
   v
Lieferschein ..... POST /sales-orders/{id}/delivery-notes
   │  Teillieferung über items im Body
   │  SN/Chargen: GET+POST .../stock-details (nach 409)
   │  buchen (Lager ab): POST .../actions/book
   v
Rechnung ......... POST /delivery-notes/{id}/invoices
   │  Sammelrechnung: POST /invoices/from-delivery-notes
   │
   ├─ PDF ........ GET  /invoices/{id}/pdf
   ├─ Zahlung .... POST /invoices/{id}/payments
   ├─ Gutschrift . POST /invoices/{id}/actions/credit
   └─ Storno ..... POST /invoices/{id}/actions/cancel (löscht!)

PDF und Formulare (/reports, /{id}/pdf) gibt es genauso für Angebote, Aufträge und Lieferscheine. Die drei Gutschriftsfälle steuert mode (newOrder, reopenDeliveryNotes, reopenOrder).

Einkauf und Lager #

Auftrag
   │  Bestellvorschlag: GET  /sales-orders/{id}/purchase-proposal
   │  je Lieferant:     POST /sales-orders/{id}/purchase-orders
   v
Bestellung ....... POST /purchase-orders (+ /items)
   │  buchen: POST .../actions/book
   │  zurück: POST .../actions/cancel-booking
   v
Wareneingang ..... POST /purchase-orders/{id}/goods-receipts
   │  buchen (Bestand zu):
   │  POST /warehouse/documents/{id}/actions/book
   v
Bestand .......... GET /articles/{id}/stock/locations | movements

Weitere Wege in den Bestand (alles Buchungen, nie Setzen):
   ├─ Bestand setzen . POST /articles/{id}/stock/actions/set-quantity
   ├─ Umlagerung ..... POST /warehouse/bookings
   ├─ Inventur ....... POST /warehouse/inventories (+ Aktionen)
   └─ Produktion ..... POST /articles/{id}/parts-list/actions/produce

Kasse: der Tageszyklus #

Anmelden ......... POST /cash-registers/{id}/actions/login
   │  PIN-Gate, wenn am Kassierer hinterlegt
   │  Einlage (Wechselgeld): POST .../actions/deposit
   v
Bon .............. POST /cash-registers/{id}/receipts
   │  Positionen: POST /cash-receipts/{id}/items
   │  Kunde:      POST .../actions/set-customer
   │  verwerfen:  DELETE /cash-receipts/{id}
   v
Kassieren ........ POST /cash-receipts/{id}/actions/pay
   │  bucht Lager, schreibt fest, wartet auf die TSE
   │  Bon-QR:  GET  /cash-receipts/{id}/tse
   │  Retoure: POST .../actions/cancel (Storno-Bon)
   v
Tagesende
   │  Entnahme: POST .../actions/withdraw (Grund Pflicht)
   v
Z-Abschluss ...... POST /cash-registers/{id}/actions/close
                   (counted = Zählung, bucht Differenzen)

Zahlungen und Offene Posten #

Rechnung ......... paidAmount / balance direkt am Beleg
   │  Zahlung erfassen: POST /invoices/{id}/payments
   │                    (Zahlungseingang = negativer amount)
   │  Zahlung löschen:  DELETE .../payments/{paymentId}
   v
OP-Liste ......... GET /open-items?asOf= (Skonto zum Stichtag)
   │  Mahn-Sicht:     GET  /open-items?view=dunning
   │  Rest ausbuchen: POST /invoices/{id}/actions/write-off
   v
Saldo 0  =>  OP verschwindet (grossTotal + Summe amounts = 0)

Konstanten und Kataloge #

Nachschlagedaten, die sich selten ändern - typisch einmal beim Client-Start laden.

Lookups #

EndpunktZweck
GET /lookupsAlle Kataloge (Mengeneinheiten, Länder, Warengruppen, …)
GET /lookups/{name}Einzelner Katalog als value/label-Liste

Kassen-Stamm #

EndpunktZweck
GET /cash-registersKassen mit Zustand (offener Bon, hasTse)
GET /cashiersKassierer für die Anmelde-Auswahl (hasPin)
GET /cash-payment-methodsBuchbare Zahlarten (isCash für Rückgeld)

Lager-Stamm #

EndpunktZweck
GET /warehouse/groupsLagergruppen (Standorte)
GET /warehouse/locationsPhysische Lagerorte

Formulare #

EndpunktZweck
GET /{beleg}/reportsFormulare je Belegart mit isDefault (quotes, sales-orders, delivery-notes, invoices)

Stammdaten #

Datensätze mit Lebenszyklus: anlegen, ändern, synchronisieren (changedSince + /ids), löschen.

Adressen und Kontakte #

EndpunktZweck
GET/POST /addresses, GET/PATCH/DELETE /addresses/{id}Adressen (CRUD)
GET /addresses/ids, GET /addresses/by-match/{match}Sync-Abgleich, Zugriff über Match
GET/POST /addresses/{id}/contacts (+PATCH/DELETE .../{id})Ansprechpartner

Artikel #

EndpunktZweck
GET/POST /articles, GET/PATCH/DELETE /articles/{id}Artikel (CRUD)
GET /articles/ids, GET /articles/by-number/{number}Sync-Abgleich, Zugriff über Artikelnummer
GET /articles/{id}/pricePreisfindung (Kunde/Menge)
GET/POST/DELETE /articles/{id}/parts-list (+items, recalc)Stückliste (Jumbo) pflegen

Lieferanten und Mitarbeiter #

EndpunktZweck
GET/POST /suppliers, GET/PATCH/DELETE /suppliers/{id}Lieferanten (CRUD)
GET/POST/PATCH/DELETE /suppliers/{id}/articlesLieferantenartikel mit EK-Preisen
GET /employees, GET /employees/{id}Mitarbeiter (lesend)

Serviceartikel (Geräte) #

EndpunktZweck
GET/POST /service-articles, GET/PATCH/DELETE .../{id}Geräte (CRUD), plus ids und by-number
GET /addresses/{id}/service-articlesGeräte eines Kunden
GET /articles/{id}/service-articlesGeräte eines Stamm-Artikels

Merkmale (categories) #

Für Artikel, Adressen und Serviceartikel:

EndpunktZweck
GET /{entity}/categoriesMerkmalbaum (folder/manual/smart)
GET/PUT/PATCH /{entity}/{id}/categoriesZuordnungen lesen / ersetzen / ändern
POST /{entity}/categories, PATCH/DELETE .../categories/{nodeId}Baumpflege (Scope categories:manage)
Listen-Filter ?categoryAnd/Or/Not=auf allen Listen der drei Entitäten

Bilder und DMS-Dateien #

EndpunktZweck
GET/PUT/DELETE /{entity}/{id}/image (+/preview)Bilder: Adressen, Artikel, Serviceartikel
GET/POST/DELETE /{entity}/{id}/files, GET .../files/downloadDMS: Adressen, Artikel, alle 4 Belegarten, Lieferanten, Serviceartikel

Bewegungsdaten #

Belege und Buchungssätze - entstehen im Tagesgeschäft.

Angebote und Aufträge #

EndpunktZweck
GET/POST /quotes, GET/PATCH /quotes/{id}, GET/POST .../itemsAngebote, plus by-number
GET/POST /sales-orders, GET/PATCH /sales-orders/{id}, GET/POST .../itemsAufträge, plus by-number

Lieferscheine und Rechnungen #

EndpunktZweck
GET /delivery-notes, GET .../{id}, GET .../{id}/items, by-numberLieferscheine (lesend; entstehen per Transfer)
GET/POST /delivery-notes/{id}/stock-detailsSN-/Chargen-Erfassung
GET /invoices, GET .../{id}, GET .../{id}/items, by-numberRechnungen (lesend; entstehen per Transfer)

Bestellungen und Wareneingang #

EndpunktZweck
GET/POST /purchase-orders, GET .../{id}, by-numberBestellungen
GET/POST .../{id}/items, PATCH .../items/{itemId}Positionen

Kassenbons #

EndpunktZweck
POST /cash-registers/{id}/receiptsBon eröffnen (Lazy-Modell: offener Bon wird fortgesetzt)
POST/DELETE /cash-receipts/{id}/items(/{itemId})Positionen erfassen / stornieren
POST /cash-receipts/{id}/actions/set-customerKunde zuordnen (zieht Preisliste)
DELETE /cash-receipts/{id}Offenen Bon verwerfen
GET /cash-receipts (+/items), GET /cash-closingsBons und Z-Berichte (lesend)
GET /cash-receipts/{id}/tseTSE-Daten + QR (Nachdruck)

Zahlungen und Offene Posten #

EndpunktZweck
GET/POST /invoices/{id}/paymentsZahlungen lesen / erfassen (Eingang negativ)
DELETE /invoices/{id}/payments/{paymentId}Zahlung löschen (Kasse/SEPA geschützt)
GET /open-itemsOP-Liste (asOf, paymentTerms, customerId, view=dunning)

Lagerbewegungen und Inventur #

EndpunktZweck
GET /articles/{id}/stockBestands-Kurzinfo
GET /articles/{id}/stock/locations / movementsBestand je Ort, Bewegungen
POST /articles/{id}/stock/actions/set-quantityBestand setzen (Differenzbuchung mit Kommentar)
POST /warehouse/bookingsWarenbewegung / Umlagerung
GET/POST /warehouse/inventoriesInventuren

Transfer und Aktionen #

Die Wandlungen zwischen Belegarten und alles, was bucht, storniert oder wieder öffnet - jeweils über die originalen EULANDA-SP-Ketten.

Wandlungen (Transfer) #

EndpunktZweck
POST /quotes/{id}/actions/convert-to-orderAngebot → Auftrag
POST /sales-orders/{id}/delivery-notesAuftrag → Lieferschein (Teillieferung via items)
POST /delivery-notes/{id}/invoicesLieferschein → Rechnung
POST /invoices/from-delivery-notesMehrere Lieferscheine → Sammelrechnung
POST /sales-orders/{id}/purchase-ordersAuftrag → Bestellungen je Lieferant
POST /purchase-orders/{id}/goods-receiptsBestellung → Wareneingang
POST /service-articles/{id}/actions/create-order / create-quoteGerät → Auftrag/Angebot

Buchen und Wiedereröffnen #

EndpunktZweck
POST /sales-orders/{id}/actions/book / reopenAuftrag buchen (reserviert) / wieder öffnen
POST /delivery-notes/{id}/actions/bookLieferschein buchen (Lager ab)
POST /purchase-orders/{id}/actions/book / cancel-bookingBestellung buchen / Buchung stornieren
POST /warehouse/documents/{id}/actions/bookLagerbeleg (z.B. Wareneingang) buchen
POST /articles/{id}/parts-list/actions/produceStückliste fertigen / zerlegen
POST /warehouse/inventories/{id}/actions/take-over-stock / complete / cancelInventur-Ablauf

Storno und Gutschrift #

EndpunktZweck
POST /invoices/{id}/actions/creditDirektgutschrift (mode: newOrder, reopenDeliveryNotes, reopenOrder)
POST /invoices/{id}/actions/cancelRechnung stornieren (löscht!)
POST /invoices/{id}/actions/write-offRestbetrag ausbuchen
POST /cash-receipts/{id}/actions/cancelStorno-Bon zu kassiertem Beleg (TSE inklusive)

Kassen-Aktionen #

EndpunktZweck
POST /cash-registers/{id}/actions/login / logoutAn-/Abmelden (PIN-Gate)
POST .../actions/deposit / withdrawEinlage / Entnahme
POST /cash-receipts/{id}/actions/payKassieren (bucht Lager, TSE, Rückgeld)
POST /cash-registers/{id}/actions/closeZ-Abschluss mit Zählung

PDF-Ausgabe #

EndpunktZweck
GET /{beleg}/{id}/pdfBeleg als PDF (?form= wählt das Formular, sonst Standard)

Auswertungen #

Statistik #

EndpunktZweck
GET /statistics/revenueUmsatz-/Ertrags-Cube (groupBy month/customer/article/…)
GET /statistics/kpiKennzahlen Jahr/Vorjahr/Monat/Vormonat (Rechnung + Kasse)
GET /statistics/product-groupsWarengruppen-Monatsstatistik

Historien und Rückverfolgung #

EndpunktZweck
GET /service-articles/{id}/historyGerätehistorie über alle Belegarten
GET /articles/{id}/identsVerfügbare Seriennummern/Chargen
GET /idents/{id}/historyRückverfolgung einer SN/Charge
GET /open-items?view=dunningMahn-Sicht (Mahnstufe, Überfälligkeit)

System und Infrastruktur #

EndpunktZweck
GET /healthLebenszeichen + DB-Check (anonym)
GET /infoProdukt- und Versionsinfo (anonym)
GET /openapi.jsonMaschinenlesbare Spezifikation (anonym)
GET/PUT/DELETE /registry/value, GET /registry/subtreeSQL-Registry (Pfad-Allowlist je Client)

Die Details zu jedem Bereich - Feld-Glossare, Beispiele in PowerShell und curl, Fehlercodes - stehen auf den jeweiligen Unterseiten (siehe Einleitung).