lexware-office-full

n8n community node for the COMPLETE Lexware Office (lexoffice) API — all resources, plus an event-subscription trigger.

Package Information

Released: 4 mo ago
Downloads: 82 weekly / 489 monthly
Latest Version: 0.1.1
Author: Adrian Awad

Documentation

n8n-nodes-lexware-office-full

npm version
npm downloads
License: MIT

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 All toggle
    • Optimistic locking (Auto Version fetches the current version before 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)

  1. Start n8n with community packages enabled: N8N_COMMUNITY_PACKAGES_ENABLED=true
  2. 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-full

Option 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

Discussion