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.
Sie entscheiden 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 beachten Sie die folgenden Hinweise zur Nutzung der Lexware Public API:
- Zur Synchronisierung von Daten (z.B. Kontakten) zwischen ihrer 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, kommen Sie bitte auf uns zu.
First Steps
- Legen Sie sich unter https://app.lexware.de/signup einen Lexware Account an oder verwenden Sie einen existierenden Lexware Account.
- Sofern noch nicht vorhanden komplettieren Sie bitte die Daten zur Firmierung (https://app.lexware.de/settings/#/company)
- Optional: Konfigurieren Sie das Rechnungs-Layout unter https://app.lexware.de/voucher/settings/#/Step1
- Generieren Sie einen API Key über die Public API Key Verwaltung: https://app.lexware.de/addons/public-api
Weitere Informationen zu den API Keys finden Sie weiter unten.
Allgemeine Nutzungsbedingungen zur Public API
Für die Nutzung der Public API gelten unsere Allgemeinen Nutzungsbedingungen zur Public API: https://office.lexware.de/public-api-lizenz-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. Sie finden 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, können Sie weiterhin mehrere Benutzer anlegen, falls Sie den Zugang kontrollieren und die Überwachung von Aktivitäten erleichtern wollen (siehe Benutzer und Berechtigungen und Protokollierung in Lexware).
Die Lebensdauer des API Keys beträgt 24 Monate. Diese können Sie 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 finden Sie 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 finden Sie hier.