Artikelverwaltung per API: So nutzt du den Lexware-Endpunkt richtig
Wenn du Artikel in Lexware programmatisch erstellen, lesen oder aktualisieren willst, dann ist der articles-Endpunkt dein Werkzeug der Wahl. Damit kannst du Produkte und Dienstleistungen in deinem System verwalten, die später in Belegen wie Angeboten oder Rechnungen verwendet werden. Klingt simpel? Ist es auch – wenn man ein paar Dinge beachtet.
- Was kann der Endpunkt?
Mit einem simplen JSON-Objekt bekommst du Zugriff auf zentrale Eigenschaften eines Artikels: vom Titel, Beschreibung und Preis bis hin zur Artikelnummer und GTIN. Dabei ist die Struktur klar aufgebaut und leicht zu verarbeiten. Jeder Artikel hat eine eindeutige
id, eineorganizationId, einen Typ (PRODUCToderSERVICE) und natürlich Preisangaben, auf die wir gleich noch näher eingehen. - Lesezugriff: Schnell zum Ziel
Ein
GETauf den Endpunkt bringt dir alle Infos über einen Artikel zurück. Felder wiecreatedDate,updatedDateundarchivedsind dabei schreibgeschützt. Du kannst sie lesen, aber nicht verändern. Gleiches gilt für die Preisfelder – je nachdem, obleadingPriceaufNEToderGROSSsteht, wird jeweils der andere Wert automatisch berechnet. - Schreibzugriff: Was du setzen musst
Willst du einen Artikel anlegen oder aktualisieren, gibst du mindestens folgende Felder an:
titledescriptiontype(PRODUCToderSERVICE)articleNumberpricemitleadingPrice, einem Preiswert undtaxRate
Wichtig: Du musst entscheiden, ob du den Netto- oder den Bruttopreis führend setzen willst. Der andere wird dann automatisch berechnet. Das funktioniert nur zuverlässig, wenn du auch einen gültigen Steuersatz mitgibst – aktuell sind 0, 7 und 19 Prozent erlaubt.
- GTIN und Einheiten
Wenn du Produkte hast, die über den Handel vertrieben werden, kannst du auch eine GTIN hinterlegen. Diese wird auf Format geprüft (GTIN-8 bis GTIN-14). Auch die Mengeneinheit lässt sich über
unitNameangeben – das ist besonders nützlich, wenn du z. B. Stück, Stunden oder Lizenzen verkaufen willst. - Versionierung: Änderungen im Griff behalten
Ein spannendes Detail ist das Feld
version. Es sorgt dafür, dass du keine Änderungen überschreibst, die zwischenzeitlich passiert sind. Bei jedem Update steigt dieversionautomatisch an – ein klassisches Beispiel für „optimistic locking“. Wenn du also ein Update planst, solltest du die aktuelle Version vorher abrufen und mitgeben. - Interne Notizen
Über das Feld
notekannst du eigene Anmerkungen oder Hinweise hinterlegen, die nur intern sichtbar sind. Das ist super für kleine Hinweise zur Lagerung, Einkaufskonditionen oder Support.
Der articles-Endpunkt von Lexware ist ein gut strukturierter und flexibel einsetzbarer Bestandteil der API. Er lässt sich sauber in bestehende Systeme einbinden und deckt alle Anforderungen für eine zentrale Artikelverwaltung ab – von Stammdaten über Preise bis zur internen Dokumentation. Wer sich an die Regeln hält, wird mit klaren Strukturen und nachvollziehbarem Verhalten belohnt. Damit steht dir der Weg offen, Angebote und Rechnungen automatisiert und sauber mit Artikeln zu befüllen – ganz ohne manuelle Pflege.
/articles
POST
Wenn du per API einen neuen Artikel in Lexware anlegen willst, läuft das über einen POST-Request an den articles-Endpunkt. Dabei übergibst du im Body ein JSON mit den erforderlichen Feldern wie title, type, unitName, articleNumber und einem verschachtelten price-Objekt. Die Lexware Article API erwartet dabei entweder einen Netto- oder Bruttopreis mit entsprechendem leadingPrice und gültigem taxRate. Die Antwort enthält eine eindeutige id, Zeitstempel sowie eine version zur späteren Bearbeitung.
Power Apps |
Lexoffice.CreateArticle(
{
articleNumber: Left(GUID(),18),
price: {
grossPrice: 61.90 * 1.19,
netPrice: 61.90,
leadingPrice: "NET",
taxRate: 19
},
title: "Dein Produktitel",
type: "SERVICE",
unitName: "Stück"
}
)
/articles/{id}
GET
Ein einzelner Artikel lässt sich ganz einfach per GET-Request abrufen. Du gibst dabei die Artikel-ID direkt in der URL an. Die Lexware Article API liefert dir alle relevanten Felder zurück – von Titel, Beschreibung und Typ bis hin zur Artikelnummer, GTIN und Preisinformationen. Auch interne Notizen und die aktuelle version sind enthalten. Praktisch: Das Preisobjekt enthält sowohl Netto- als auch Bruttopreis, je nachdem, welcher ursprünglich führend gesetzt wurde.
Power Apps |
Lexoffice.RetrieveAnArticle("4be94e3c-7832-43b8-ba59-a9bdb121a468")
/articles
GET
Wenn du mehrere Artikel abrufen willst, verwendest du einen GET-Request auf den articles-Endpunkt mit optionalen Filter- und Paging-Parametern. Standardmäßig bekommst du eine paginierte Antwort mit Feldern wie totalPages, numberOfElements und sort. Über Parameter wie page, size oder gezielte Filter kannst du die Abfrage präzisieren. Die Artikel selbst werden im content-Array zurückgegeben – komplett mit ID, Titel, Beschreibung, Preisen und allem, was dazugehört. So kannst du bequem ganze Produktkataloge automatisiert abfragen und weiterverarbeiten.
Power Apps |
Lexoffice.FilteringArticles().content
/articles/{id}
PUT
Wenn du einen bestehenden Artikel ändern willst, nutzt du einen PUT-Request mit der entsprechenden Artikel-ID. Dabei musst du nicht nur die neuen Werte, sondern auch die aktuelle Version im Request mitschicken. Fehlt diese, wird der Vorgang abgelehnt. Die Lexware Article API prüft mithilfe von optimistic locking, ob zwischenzeitlich Änderungen vorgenommen wurden. Erfolgreiche Updates erhöhen die Version automatisch und setzen einen neuen Zeitstempel im Feld updatedDate. So bleibt deine Datenbasis jederzeit konsistent.
Power Apps |
With(
{articleId: "4be94e3c-7832-43b8-ba59-a9bdb121a468"},
Lexoffice.UpdateAnArticle(
articleId,
"SERVICE",
"Stück",
With(
{netPrice: 11},
{
grossPrice: Value(
Text(
netPrice * 1.19,
"#.00"
)
),
netPrice: netPrice,
leadingPrice: "NET",
taxRate: 19
}
),
Lexoffice.RetrieveAnArticle(articleId).version,
{
title: "Neuer Title",
description: "Beschriebung",
articleNumber: Left(
GUID(),
18
)
}
)
)
/articles/{id}
DELETE
Einen Artikel zu löschen ist genauso einfach wie ihn abzurufen. Du schickst einen DELETE-Request mit der entsprechenden Artikel-ID. Gibt es den Artikel, wird er gelöscht und die API antwortet mit Statuscode 204. Falls die ID nicht existiert, bekommst du eine 404 zurück. Wichtig: Gelöschte Artikel sind vollständig entfernt und nicht archiviert. Prüfe also vorher genau, ob du ihn wirklich nicht mehr brauchst.
Power Apps |
Lexoffice.DeleteAnArticle("4be94e3c-7832-43b8-ba59-a9bdb121a468")
Entdecke deine Möglichkeiten
Beispiele für Lexware Office
Lexware Office /contacts
Contacts Endpoint verstehen und effizient nutzen Wenn du mit Geschäftskontakten in Lexware Office arbeitest, ist der Contacts Endpoint Lexware Office der zentrale Einstieg. Dieser stellt dir sämtliche Informationen zu Kontakten bereit – egal ob Kunde, Lieferant oder beides. Hier bekommst du nicht nur Namen und Nummern, sondern auch Adressen, Ansprechpartner,
Lexware Office – Einstieg in API
Lexware Office automatisieren mit Power Automate & Power Apps Die Standardfunktionen von Lexware Office reichen oft weit – aber eben nicht immer. Sobald Abläufe individueller werden oder du deine Daten weiterverarbeiten möchtest, kommt man mit Bordmitteln schnell an Grenzen. Und genau hier kommt der Lexware-Office-Connector ins Spiel. Mit der Verbindung
Lexware Office /files
Dateien abrufen und hochladen – so einfach geht’s mit der API Du willst Belege nicht mehr manuell verwalten, sondern direkt per API in dein System holen oder hochladen? Genau dafür gibt es zwei praktische Endpunkte: Einen zum Herunterladen von Dokumenten wie Rechnungen, Quittungen oder E-Rechnungen – und einen zum Hochladen
Lexware Office /voucherlist
Mit dem voucherlist-Endpunkt Belege filtern Wenn du Belege per API effizient abrufen willst, ist der voucherlist-Endpunkt dein Einstiegspunkt. Hier bekommst du nicht nur eine paginierte Liste, sondern kannst auch gezielt nach Typ, Status, Zeitraum und mehr filtern. Egal ob Eingangsrechnung, Ausgangsrechnung oder Gutschrift – dieser Endpunkt liefert dir genau das,