Integration

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).

Ask it in chat

Say what should happen.
The workflow builds itself.

When this happens, do that in Lexware Office.Built from the 48 Lexware Office tools below, on the connection you add once.

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 Code
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"
Codex (~/.codex/config.toml)
[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"

[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"
Cursor, Claude Desktop and other JSON configs
{
  "mcpServers": {
    "livecontext": {
      "type": "http",
      "url": "https://livecontext.ai/mcp",
      "headers": {
        "X-API-Key": "YOUR_API_KEY"
      }
    }
  }
}

Set up the MCP server step by step

How to connect Lexware Office

  1. Create your workspace

    Sign up free. Nothing to install.

  2. 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.

  3. 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.

Popular integrations

Browse the whole catalog