Creates finalized invoices and credit notes in Lexware Office from your orders, reads payments back and gives customers their invoice PDF.
Tested on 2 buildsUpdated Nov 7, 2026Version 1.0.0CS-Cart, Multi-Vendor 4.17.2 – 4.21.x No core file edits
Built for
Lexware Office Connector: Finalized Lexware Office invoices and credit notes from your orders, with the payment state read back1 of 7
What it does
For online shops in Germany that keep their books in Lexware Office, the accounting software formerly called lexoffice. When an order reaches the status you choose, the add-on creates the customer contact and the invoice in your Lexware Office account through its Public API. Lexware Office assigns the invoice number and the PDF. Works with CS-Cart, CS-Cart Ultimate and Multi-Vendor, in euro.
How it works
Paste the API key of a Lexware Office trial account, press Test connection and run a few test orders; then switch to your live key. Choose the order status that creates the invoice. Companies become customer contacts, consumers get a one-time address. A queue with automatic retries does the work in the background; every call is in the log. Lexware Office tells the store about payments, and a cron run checks too.
Features
Finalized invoices (or drafts) created at the order status you choose, with product, shipping, fee and discount lines
Tax types for domestic net and gross prices, intra-community supply, export delivery, distance sales and small business accounts
Business customers as contacts with the VAT ID, consumers as one-time addresses
One credit note per invoice (the Lexware Office rule) for the refund status or a completed return, linked to the invoice and capped at the invoice; a second credit for the same invoice is logged, not sent
Payment state read back by event subscription, with an optional order status change when paid
Invoice PDF for signed-in customers; XRechnung XML for e-invoices that Lexware Office creates
Respects the 2 requests per second limit of the Public API, retries failed calls and looks up unclear attempts before creating again
API key stored encrypted, test and live mode, log with CSV export
Multi-Vendor: one marketplace account or one API key per vendor, with strict vendor scope
What you get
Package
kv_lexware_office-1.0.0.zip, installed through Add-ons → Manage add-ons
Updates & support
12 months included. Download new versions from your account and install them in Add-ons → Manage add-ons or the Upgrade Center.
License
1 production installation. Staging, dev and localhost are free and unlimited. The add-on keeps working after the update period ends. How licensing works
For developers
Uses 4 CS-Cart PHP hooks. No core files are changed.
Compatibility
We list only the builds we install and test on. “Tested” means the full test plan was run on that build; “Supported” means the build is inside the supported range and uses the same hooks.
CS-Cart version and edition compatibility
CS-Cart version
CS-Cart
CS-Cart Ultimate
Multi-Vendor
Multi-Vendor Ultimate
4.22 and later
Testing next
Testing next
Testing next
Testing next
4.21.2
Supported
Supported
Supported
Supported
4.20.x
Supported
Supported
Supported
Supported
4.19.x
Supported
Supported
Supported
Supported
4.18.x
Supported
Supported
Supported
Supported
4.17.2
Supported
Supported
Tested
Supported
Before 4.17.2
Not supported
Not supported
Not supported
Not supported
Last tested build: Multi-Vendor 4.17.2, Nov 7, 2026Tested on: Multi-Vendor 4.17.2
Requirements
PHP
CS-Cart or Multi-Vendor 4.17.2 to 4.21.x (Ultimate or Multi-Vendor edition), PHP 7.4 to 8.3
Requirement
The primary currency of the store is EUR
Requirement
A Lexware Office account. The Public API is available with the Lexware Office plans that include it; the connection test tells you if your key is accepted
Requirement
An API key: in Lexware Office open Settings, Public API (app.lexware.de/addons/public-api) and create a key. Keep it secret; anybody with the key can read and create documents in your account
Requirement
A cron job or a scheduler that opens the cron address every minute (see Configuration)
Core changes
None. Hooks and template overrides only
1.0.0
Nov 7, 2026
Latest
Added 13
Initial release.
Connection with an API key (Bearer) for the Lexware Office Public API at api.lexware.io; test and live mode (Lexware Office has no sandbox: the test key belongs to a second, trial account); key stored encrypted; "Test connection" reads the profile (organization, tax type, small business, distance sales principle) and the country list.
Finalized invoices (or drafts) created at the order status you choose: product, shipping, payment fee and order discount lines, German or English documents, payment term, introduction text, shipping date = order day, voucher date = the day in the shop time zone.
Contacts: companies and every sale that needs one become customer contacts (found by e-mail and name first, VAT ID sent, retried without it when Lexware Office rejects it); consumers get a one-time address unless "contacts for consumers" is on; umlauts and long texts are handled by characters.
Tax types: net and gross prices, intra-community supply (or section 13b), export delivery, EU distance sales (DESTINATION principle), vat-free for small business accounts; tax rates from the order's tax or a per-tax override; rates Lexware Office does not accept stop the job with a message.
Credit note for the refund status or a completed RMA return, linked to the invoice with precedingSalesVoucherId and never above the invoice. Lexware Office allows ONE credit note per invoice ("There can only be one credit note related to an invoice"): the first credit is created, a later one for the same invoice is logged as a warning with the instruction to create it in Lexware Office, and is not sent.
Payment state read back (GET /v1/payments) by event subscription (invoice.status.changed, payment.changed, credit-note.status.changed, RSA signature verified with the published key) and by the cron run; optional order status change when paid (only from Open or Backordered).
Order tab: number, status, totals, open amount, paid date, tax type, e-invoice format, credit notes, PDF / XRechnung XML download, link into Lexware Office, create invoice / credit note now, refresh.
Customer order page: invoice PDF (XRechnung: XML) for the signed-in owner of the order, streamed through the store.
Existing Lexware Office contacts that the add-on adopts are updated by merging (billing address and VAT ID only), so Leitweg-ID, vendor number, shipping address and notes survive; orders in status Incomplete get no invoice; Queue past orders needs the "Do not sync orders before" date.
Idempotency: document row stored before the POST, per-order lock, every invoice and credit note carries a per-attempt reference in its closing text; a lost answer is found again by scanning all pages of the voucher list and reading each unknown document (no guessing by name or amount), and an attempt that cannot be found is never repeated by itself (the merchant presses Issue now after checking), 2 requests per second kept by a database lock per key with 429 back-off.
Multi-Vendor: marketplace owner mode or one API key per vendor; vendors only see and (owner mode off) act on their own orders; run now, backfill and cron are for the administrator.
Job queue with retries and back-off, cron (command line and secret address), log with CSV export, queue of past orders from a start date, Upgrade Synchronizer, domain-bound licence client.
Tested on Multi-Vendor 4.17.2. First release.
Which Lexware Office plan do I need?
The Public API has to be available in your plan. The connection test shows whether your key is accepted. XRechnung and invoices in English need the extended invoicing features of Lexware Office (the Connection page lists the business features of your account).
Is there a sandbox?
No. Lexware Office offers a free trial account with all features; use its API key as the test key.
Can the add-on book payments in Lexware Office?
No. The Public API only reads payments (GET /v1/payments/{id}). The add-on reads them back; you book incoming payments in Lexware Office.
Why does an invoice need to be finalized?
Only a finalized invoice has a number, a PDF and can be credited. The Public API cannot finalize a draft later. With "Finalize the invoice" off you get drafts that you finalize in Lexware Office; the add-on then shows them as drafts.
Can an invoice be changed or deleted by the add-on?
No. A finalized invoice cannot be changed through the API. If an order changes after the invoice, create a credit note and a new invoice in Lexware Office.
Does a refund pay the customer back?
The credit note is the accounting document. The money goes back through your payment provider or by bank transfer.
What if the connection breaks while the invoice is created?
The add-on writes a pending document row first. The next attempt searches the Lexware Office voucher list (same total, same contact or name, created since the attempt) and adopts the invoice it finds; it never creates a second one. If two invoices could be the one, the job stops and asks you to decide.
Does it work with several currencies?
The Lexware Office API supports euro only. The store's primary currency must be EUR.
Does it send e-mails to customers?
No. The invoice is available as a download on the customer's order page. Sending invoices by e-mail is done in Lexware Office.
What does the customer see?
A button "Download invoice (PDF)" on the order page when signed in. Guests and other customers cannot download it.
Does it work with Multi-Vendor?
Yes. Owner mode: one account for the marketplace. Otherwise each vendor connects their own account. Vendors only act on their own orders.
Where is the API key stored?
Encrypted with AES-256-GCM in the database; it is never shown again and never written to the log.
Lexware Office is a trademark of its owner; this add-on is not affiliated with or endorsed by Lexware Office.
CS-Cart 4.17.2 Ultimate (HTTP end-to-end with real orders), Multi-Vendor 4.17.2 vendor-panel checks, a local mock that follows the Lexware Office Public API documentation