n8n-nodes-lexware-office-full
v0.1.1
Published
n8n community node for the COMPLETE Lexware Office (lexoffice) API — all resources, plus an event-subscription trigger.
Maintainers
Readme
n8n-nodes-lexware-office-full
The complete Lexware Office (formerly lexoffice) API as an n8n community node — every resource, plus a webhook trigger. Create invoices, quotations, delivery notes, contacts, vouchers, download PDFs, react to events — all from n8n.
This is an unofficial, community-built integration for https://api.lexware.io. Not affiliated with Lexware / Haufe-Lexware.
✨ Features
- All 20 API resources in one node — see the table below.
- Trigger node that auto-registers a Lexware event subscription (webhook) and cleans it up again.
- Hybrid design: read/list/PDF/file operations are fully structured; create/update take the full Lexware JSON body → 100 % field coverage from day one.
- Built-in handling for the tricky parts:
- Rate limiting (2 req/s) with automatic HTTP 429 backoff
- Pagination via a simple
Return Alltoggle - Optimistic locking (
Auto Versionfetches the currentversionbefore updating) - Two-step PDF (
/document→/files/{id}) as a single Get PDF operation (PDF or e-invoice XML) - Binary upload & download
📦 Installation
Option A — Community Nodes GUI (recommended, self-hosted)
- Start n8n with community packages enabled:
N8N_COMMUNITY_PACKAGES_ENABLED=true - In n8n: Settings → Community Nodes → Install and enter:
n8n-nodes-lexware-office-full
Option B — Docker image
FROM n8nio/n8n
RUN npm install -g n8n-nodes-lexware-office-fullOption C — Manual (custom extensions)
npm install n8n-nodes-lexware-office-full
# point n8n at it via N8N_CUSTOM_EXTENSIONS=/path/to/node_modules🔑 Credentials
Create a Lexware Office API credential and paste your public API key
(Lexware Office → Settings → Public API → Generate key). The base URL defaults to
https://api.lexware.io (legacy https://api.lexoffice.io also works). The credential is verified
against GET /v1/profile.
🧩 Resources & operations
| Resource | Operations |
|---|---|
| Article | Create · Get · Get Many · Update · Delete |
| Contact | Create · Get · Get Many · Update |
| Country | Get Many |
| Credit Note | Create · Get · Get PDF |
| Delivery Note | Create · Get · Get PDF |
| Dunning | Create · Get · Get PDF |
| Down Payment Invoice | Get · Get PDF |
| Event Subscription | Create · Get · Get Many · Delete |
| File | Upload · Download |
| Invoice | Create · Get · Get PDF |
| Order Confirmation | Create · Get · Get PDF |
| Payment | Get |
| Payment Condition | Get Many |
| Posting Category | Get Many |
| Print Layout | Get Many |
| Profile | Get |
| Quotation | Create · Get · Get PDF |
| Recurring Template | Get · Get Many |
| Voucher | Create · Get · Update · Upload File |
| Voucherlist | Get Many (filter by voucherType, voucherStatus) |
🚀 Examples
Create a draft invoice — Resource Invoice, Operation Create, Data (JSON):
{
"voucherDate": "2026-06-11T12:00:00.000+02:00",
"address": { "contactId": "<contact-uuid>" },
"lineItems": [
{ "type": "custom", "name": "Consulting", "quantity": 1, "unitName": "hour",
"unitPrice": { "currency": "EUR", "netAmount": 100, "taxRatePercentage": 19 } }
],
"totalPrice": { "currency": "EUR" },
"taxConditions": { "taxType": "net" },
"shippingConditions": { "shippingType": "none" }
}Set Finalize = true to issue it instead of saving a draft.
Download a PDF — Resource Invoice, Operation Get PDF, the invoice ID. Returns the PDF as binary
(draft vouchers have no PDF yet and return 406).
React to events — add the Lexware Office Trigger, set e.g. invoice.changed. It registers the
subscription automatically and emits each event (toggle Resolve Resource to also fetch the full record).
🛠️ Development
npm install
npm run build # tsc + copy icons -> dist/🤝 Contributing
Issues and PRs welcome. The create/update operations accept raw JSON so the node already covers every field; structured fields per resource can be added incrementally.
📄 License
MIT © Adrian Awad / Kneissl Messtechnik GmbH
