Lexware API Kochbuch - Public API
Entwicklungsumgebung
Die Lexware Public API steht als REST API in unserer Produktivumgebung zur Verfügung.
Wir empfehlen für die Entwicklung von Integrationen und Anbindungen, welche die Public API verwenden, die Verwendung von Lexware Test-Accounts. Diese können jederzeit angelegt werden, sind kostenfrei und 30 Tage gültig. Bis auf wenige Einschränkungen (z.B. Elster) bieten Lexware Test-Accounts alle Funktionen der Version Lexware XL.
Du entscheidest selbst, wann die Integration oder Anbindung den Stand erreicht hat um damit produktiv zu arbeiten. Es ist keine Abnahme oder Qualitätskontrolle seitens Lexware vorgesehen oder erforderlich.
Bitte beachte die folgenden Hinweise zur Nutzung der Lexware Public API:
- Zur Synchronisierung von Daten (z.B. Kontakten) zwischen deiner API Client-Anwendung und Lexware steht unsere Webhook Funktionalität (siehe unten) zur Verfügung. Polling von Ressourcen ist unbedingt zu vermeiden.
- Es ist nicht erlaubt die Lexware Public API für Performance- und Lasttests zu verwenden. Wenn die Notwendigkeit hierfür besteht, komme bitte auf uns zu.
First Steps
- Lege dir unter https://app.lexware.de/signup/app/trial einen Lexware Account an oder verwende einen existierenden Lexware Account.
- Sofern noch nicht vorhanden komplettiere bitte die Daten zur Firmierung (https://app.lexware.de/settings/#/company)
- Optional: Konfiguriere das Rechnungs-Layout unter https://app.lexware.de/voucher/settings/#/Step1
- Generiere einen API Key über die Public API Key Verwaltung: https://app.lexware.de/addons/public-api
Weitere Informationen zu den API Keys findest du weiter unten.
Allgemeine Nutzungsbedingungen zur Public API
Für die Nutzung der Public API gelten unsere Allgemeinen Nutzungsbedingungen zur Public API: https://agb.lexware.de/lexware-office/public-api-lizenz--und-nutzungsbedingungen
API Key
API Keys können in gängigen Tools sofort eingesetzt werden. Lexware bietet für Postman (https://www.getpostman.com/) eine Beispielsammlung an. Du findest diese in den Samples der Technischen Dokumentation: https://developers.lexware.io/docs/
Pro Benutzer können mehrere API Keys mit einem bezeichnenden Namen erstellt werden. Optional können die Berechtigungen des Keys für den Zugriff auf Lexware eingeschränkt werden. Für eine erhöhte Sicherheit, kannst du weiterhin mehrere Benutzer anlegen, falls du den Zugang kontrollieren und die Überwachung von Aktivitäten erleichtern willst (siehe Benutzer und Berechtigungen und Protokollierung in Lexware).
Die Lebensdauer des API Keys beträgt 24 Monate. Diese kannst du bei Bedarf in der API Keys Verwaltung (https://app.lexware.de/addons/public-api) erneuern.
Events und Webhooks
Zur Synchronisierung von Daten der API Client-Anwendung und Lexware bietet die Public API Webhooks an. Details zur Verwendung von Webhooks findest du im Kapitel “Event Subscriptions Endpoint” der Technischen API Dokumentation.
Wie Webhooks funktionieren wird anhand des Events “invoice.status.changed” erklärt.
Änderungen am Status einer Rechnung können Webhooks auslösen. Dazu muss die API Client-Anwendung eine Subscription auf den event “invoice.status.changed” anlegen. Bei der Anlage des Events muss eine callback-URL angegeben werden. Diese callback-URL wird seitens Lexware aufgerufen, wenn der event eintritt.
Hier ein POST request mit Beispiel Payload im JSON Format der beim Eintreten des Events an die callback-URL gesendet wird:
{
"organizationId": "aa93e8a8-2aa3-470b-b914-caad8a255dd8",
"eventType": "invoice.status.changed",
"resourceId": "4d43ad14-671d-4e0c-fd4b-2fd8cc117eff",
"eventDate": "2023-05-23T12:30:00.000+02:00"
}
Der Beispiel JSON Payload ist wie folgt zu interpretieren:
- organizationId: Der Webhook bezieht sich auf die ID des Lexware Accounts 612f56c7-4e92-4124-9e1f-4ed2b48e3e50.
- eventType: Es handelt sich um die Änderung am Status einer Rechnung.
- resourceId: Der Event bezieht sich auf die Rechnung mit ID 4d43ad14-671d-4e0c-fd4b-2fd8cc117eff
- eventDate: Die Änderung am Status der Rechnung fand am 2023-05-23 um 12:30:00.000+02:00 Uhr statt.
Best Practice für die Verarbeitung von Webhooks den Einsatz einer Eingangs-Queue. Die Einträge in der Queue können dann z.B. asynchron abgearbeitet werden.
Falls die Zustellung eines Webhooks temporär aufgrund von z.B. Netzwerkproblemen fehlschlägt, finden innerhalb von 48 Stunden mehrere Wiederholungen statt.
Lexware unterstützt neben Events für Rechnungen auch Events für Kontakte (Kontakt angelegt, geändert, …).
API Dokumentation
Die vollständige Dokumentation aller REST-Endpunkte und der verfügbaren Methoden findest du hier.