Lexware Office integration
Lexware Office (formerly lexoffice) is German accounting and invoicing software. With this API an agent can create quotations, order confirmations, invoices, credit notes, delivery notes and dunnings (as drafts or finalized) and download their PDF or XRechnung files, manage customer and vendor contacts and articles, record bookkeeping vouchers and upload receipts, read payment status, recurring invoice templates and the voucher list, and subscribe webhooks to events. Not exposed: the deprecated document rendering and voucher-number filter routes, the undocumented e-mail sending of delivery notes, and changing a document status (the API cannot). Authentication is a private API key the Lexware user creates at app.lexware.de/addons/public-api (its scopes are chosen there), sent as a Bearer token; the API allows 2 requests per second. Contacts, document addresses and the profile carry personal data (names, addresses, e-mail addresses, phone numbers).
Say what should happen.
The workflow builds itself.
What you can do with Lexware Office
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Each badge shows the default agent permission of an endpoint (allowed: an agent calls it without asking; ask first: you are asked before an agent calls it, when the agent or chat asks permission for sensitive actions; never: no agent may call it), which every user can change endpoint by endpoint in their credential settings.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Article, 5 operations
create_articleCreate articlePOSTAgents: ask firstCreates an article (PRODUCT or SERVICE) with title, unitName and price (leadingPrice NET or GROSS plus taxRate 0, 7 or 19). Returns its id; material and service line items of sales vouchers reference it by that id.delete_articleDelete articleDELETEAgents: ask firstPermanently deletes an article (HTTP 404 when the id does not exist). This cannot be undone.get_articleGet articleGETAgents: ask firstReturns one article: title, description, type, articleNumber, gtin, note, unitName, price (netPrice, grossPrice, leadingPrice, taxRate), archived and version.list_articlesList articlesGETAgents: ask firstLists articles, filtered by articleNumber, gtin or type (PRODUCT, SERVICE). 25 per page by default, size up to 250, page from 0; returns content plus paging fields such as totalElements and last.update_articleUpdate articlePUTAgents: ask firstReplaces an article with the data sent: call get_article first and send back every field to keep (title, type, unitName, price) with its current version; a stale version answers HTTP 409.
Contact, 4 operations
create_contactCreate contactPOSTAgents: ask firstCreates a customer and/or vendor contact (personal data): send version 0, roles such as {customer: {}}, and company {name} or person {lastName}, never both; optional addresses, e-mails, phones, note.get_contactGet contactGETAgents: ask firstReturns one contact (personal data): roles with customer and vendor numbers, company or person, addresses, e-mail addresses, phone numbers, XRechnung ids, note, archived and version.list_contactsList contactsGETAgents: ask firstLists contacts (personal data: names, addresses, e-mails, phones), filtered by email or name (substring, 3+ characters), number, customer or vendor role. 25 per page, size up to 250, page from 0.update_contactUpdate contactPUTAgents: ask firstReplaces a contact: call get_contact first and send back every field to keep with its version (HTTP 409 when stale). Refused when an address, e-mail or phone type, or contactPersons, holds more than one entry.
Event subscription, 4 operations
create_event_subscriptionCreate event subscriptionPOSTAgents: ask firstSubscribes an HTTPS webhook URL to one event type (for example invoice.created or contact.changed); Lexware checks the URL certificate with a HEAD request first. A duplicate answers HTTP 409. Returns its id.delete_event_subscriptionDelete event subscriptionDELETEAgents: ask firstDeletes an event subscription, so its webhook stops receiving that event. To change a subscription, delete it and create it again.get_event_subscriptionGet event subscriptionGETAgents: ask firstReturns one event subscription: subscriptionId, organizationId, createdDate, eventType and callbackUrl.list_event_subscriptionsList event subscriptionsGETAgents: ask firstReturns every event subscription of this API key: subscriptionId, organizationId, eventType, callbackUrl and createdDate.
Voucher, 4 operations
create_voucherCreate voucherPOSTAgents: ask firstCreates a bookkeeping voucher (sales or purchase invoice or credit note) with voucherItems per tax rate and a categoryId from list_posting_categories. Status open unless voucherStatus is unchecked.get_voucherGet voucherGETAgents: ask firstReturns one bookkeeping voucher: type, status, number, dates, totals, taxType, contact, remark, voucherItems, the ids of its files and version.list_vouchersList vouchersGETAgents: ask firstLists voucher metadata across every type (invoices, quotations, credit notes, bookkeeping vouchers...). voucherType and voucherStatus are required: comma-separated values or any. Filters: contact, dates.update_voucherUpdate voucherPUTAgents: ask firstReplaces a bookkeeping voucher: call get_voucher first and send back every field with its version. A file id left out of files is deleted permanently. The status can only move from unchecked to open.
Voucher file, 3 operations
download_fileDownload fileGETAgents: ask firstDownloads a bookkeeping voucher file (pdf, png, jpg or e-invoice xml) by file id. Returns a file reference. Sales voucher documents are downloaded with their own download_*_file tool instead.upload_fileUpload filePOSTAgents: ask firstUploads a bookkeeping voucher file (pdf, jpg, png or xml, at most 5 MB) with type voucher: Lexware creates a voucher for it and runs text recognition. Returns the file id and the voucherId.upload_voucher_fileUpload voucher filePOSTAgents: ask firstUploads a file (pdf, image or xml) and assigns it to an existing bookkeeping voucher; a file with identical content is reused instead of stored twice.
Credit note, 2 operations
create_credit_noteCreate credit notePOSTAgents: ask firstCreates a credit note, a draft unless finalize=true (finalized: numbered, no longer editable). With precedingSalesVoucherId of an invoice, a finalized credit note is paid off at once and reduces that invoice.get_credit_noteGet credit noteGETAgents: ask firstReturns one credit note: status (draft, open, paidoff, voided), number, dates, address, line items, totals, tax amounts and conditions, related vouchers and texts. List them with list_vouchers.
Delivery note, 2 operations
create_delivery_noteCreate delivery notePOSTAgents: ask firstCreates a delivery note (prices optional, no payment terms), a draft unless finalize=true. Pass precedingSalesVoucherId to continue an invoice, quotation or order confirmation. Returns its id.get_delivery_noteGet delivery noteGETAgents: ask firstReturns one delivery note: status (draft or open), number, dates, address, line items, tax and shipping conditions, delivery terms, related vouchers and texts. List them with list_vouchers.
Dunning, 2 operations
create_dunningCreate dunningPOSTAgents: ask firstCreates a dunning (always a draft) for the invoice or down payment invoice given in precedingSalesVoucherId, with the same contact and tax conditions. It is attached to that invoice. Returns its id.get_dunningGet dunningGETAgents: ask firstReturns one dunning: date, address, line items (fees), totals, tax amounts and conditions, shipping conditions, related vouchers and texts.
Invoice, 2 operations
create_invoiceCreate invoicePOSTAgents: ask firstCreates an invoice, a draft unless finalize=true (finalized: numbered, no longer editable, status fixed). Pass precedingSalesVoucherId to continue a quotation, order confirmation or delivery note. Returns its id.get_invoiceGet invoiceGETAgents: ask firstReturns one invoice: status, number, dates, address, line items, totals, tax amounts, tax, payment and shipping conditions, related vouchers and closing invoice data. List invoices with list_vouchers.
Order confirmation, 2 operations
create_order_confirmationCreate order confirmationPOSTAgents: ask firstCreates an order confirmation, a draft unless finalize=true (finalized: numbered, no longer editable). Pass precedingSalesVoucherId to continue a quotation without optional or alternative items. Returns its id.get_order_confirmationGet order confirmationGETAgents: ask firstReturns one order confirmation: status (draft or open), number, dates, address, line items, totals, tax, payment and shipping conditions, delivery terms and related vouchers. List with list_vouchers.
Quotation, 2 operations
create_quotationCreate quotationPOSTAgents: ask firstCreates a quotation with an expirationDate, a draft unless finalize=true. Items may be optional or carry alternative subItems. Returns its id; continue it with create_order_confirmation or create_invoice.get_quotationGet quotationGETAgents: ask firstReturns one quotation: status (draft, open, accepted, rejected), number, dates, expirationDate, address, line items with optional and alternative items, totals, tax and payment conditions.
Recurring template, 2 operations
get_recurring_templateGet recurring templateGETAgents: ask firstReturns one recurring invoice template with its settings: start and end date, interval, finalize flag, next and last execution, last error and executionStatus (ACTIVE, PAUSED or ENDED).list_recurring_templatesList recurring templatesGETAgents: ask firstLists recurring invoice templates (read-only): address, items, totals, payment conditions and recurrence settings (interval, next run, status). 25 per page, size up to 250, sort by a date field.
Country, 1 operation
list_countriesList countriesGETAgents: ask firstReturns every country known to Lexware: countryCode, English and German name, and taxClassification (de, intraCommunity or thirdPartyCountry), which decides the tax types a document may use.
Credit note file, 1 operation
download_credit_note_fileDownload credit note fileGETAgents: ask firstDownloads the credit note document as a file: PDF, or the XML of an XRechnung credit note. A draft has no file yet (HTTP 409). Returns a file reference.
Delivery note file, 1 operation
download_delivery_note_fileDownload delivery note fileGETAgents: ask firstDownloads the delivery note document as a PDF file. A draft has no file yet (HTTP 409). Returns a file reference.
Down payment invoice, 1 operation
get_down_payment_invoiceGet down payment invoiceGETAgents: ask firstReturns one down payment invoice (Abschlagsrechnung, read-only in the API): status, number, dates, address, its single line item, totals, tax and payment conditions, and closingInvoiceId.
Down payment invoice file, 1 operation
download_down_payment_invoice_fileDownload down payment invoice fileGETAgents: ask firstDownloads the down payment invoice document as a file: PDF, or the XML of an XRechnung. A draft has no file yet. Returns a file reference.
Dunning file, 1 operation
download_dunning_fileDownload dunning fileGETAgents: ask firstDownloads the dunning document as a PDF file. Returns a file reference.
Invoice file, 1 operation
download_invoice_fileDownload invoice fileGETAgents: ask firstDownloads the invoice document as a file: PDF, or the XML of an XRechnung invoice. A draft has no file yet (HTTP 409). Returns a file reference.
Order confirmation file, 1 operation
download_order_confirmation_fileDownload order confirmation fileGETAgents: ask firstDownloads the order confirmation document as a PDF file. A draft has no file yet (HTTP 409). Returns a file reference.
Payment, 1 operation
get_paymentGet paymentGETAgents: ask firstReturns the payment status of a sales or bookkeeping voucher by its id: openAmount, paymentStatus (balanced, openRevenue, openExpense), voucherStatus, paidDate and the payment items booked against it.
Payment condition, 1 operation
list_payment_conditionsList payment conditionsGETAgents: ask firstReturns the payment conditions configured in Lexware: id, paymentTermLabelTemplate, paymentTermDuration in days, the early payment discount and organizationDefault.
Posting category, 1 operation
list_posting_categoriesList posting categoriesGETAgents: ask firstReturns the posting categories for bookkeeping vouchers: id (the categoryId of voucher items), name, type (income or outgo), contactRequired, splitAllowed and groupName.
Print layout, 1 operation
list_print_layoutsList print layoutsGETAgents: ask firstReturns the print layouts for sales vouchers: id (the printLayoutId accepted by the create tools), name and default.
Profile, 1 operation
get_profileGet profileGETAgents: ask firstReturns the connected organization: organizationId, companyName, tax type, small business flag, business features, and who connected the API key (user name and e-mail, personal data).
Quotation file, 1 operation
download_quotation_fileDownload quotation fileGETAgents: ask firstDownloads the quotation document as a PDF file. A draft has no file yet (HTTP 409). Returns a file reference.
Use Lexware Office from Claude Code, Cursor or Codex
Connect Lexware Office in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its Lexware Office operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect Lexware Office
- Create your workspace
Sign up free. Nothing to install.
- Connect Lexware Office once
Add your Lexware Office connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
Lexware Office integration FAQ
What can you do with the Lexware Office integration?
LiveContext exposes 48 operations on Lexware Office, covering article, contact, event subscription and voucher.
