lexoffice

lexoffice (rebranded to "lexware Office" in 2025) is a German cloud accounting, invoicing, and bookkeeping SaaS from Lexware (Haufe Group). Its public REST API lets developers push and pull business data - contacts, invoices, quotations, order confirmations, delivery notes, credit notes, dunnings, bookkeeping vouchers, files, payments, and profile metadata - and subscribe to webhooks via event subscriptions. Authentication is a self-serve Bearer API key. The API gateway moved from api.lexoffice.io to api.lexware.io on 26 May 2025 as part of the rebrand; the legacy host remained available through December 2025.

lexoffice publishes 14 APIs on the APIs.io network, including Contacts API, Credit Notes API, Delivery Notes API, and 11 more. Tagged areas include Accounting, Invoicing, Bookkeeping, Finance, and Germany.

lexoffice’s developer surface includes authentication, documentation, and 7 more developer resources.

37.4/100 thin ▬ flat Agent 48/100 agent ready Full breakdown ↓
scored 2026-07-23 · rubric v0.5
AccessPaidSelf serve
14 APIs
AccountingInvoicingBookkeepingFinanceGermanyVouchersContactsSaaSFinancial Software

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-23 · rubric v0.5
Composite quality — 37.4/100 · thin
Contract Quality 14.7 / 25
Developer Ergonomics 3.9 / 20
Commercial Clarity 7.9 / 20
Operational Transparency 4.1 / 13
Governance 0.0 / 12
Discoverability 6.8 / 10
Agent readiness — 48/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/lexoffice: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 14

Individual APIs this provider publishes, each with its own machine-readable definition.

lexoffice Contacts API

Customers and vendors.

lexoffice Credit Notes API

Credit note documents.

lexoffice Delivery Notes API

Delivery note documents.

lexoffice Down Payment Invoices API

Down payment invoice documents.

lexoffice Dunnings API

Payment reminder documents.

lexoffice Event Subscriptions API

Webhook subscriptions for change events.

lexoffice Files API

File upload and download for voucher receipts.

lexoffice Invoices API

Outgoing invoices.

lexoffice Order Confirmations API

Order confirmation documents.

lexoffice Payments API

Payment status for a voucher and payment conditions.

lexoffice Profile API

Account profile and reference metadata.

lexoffice Quotations API

Sales quotations / offers.

lexoffice Recurring Templates API

Templates that generate recurring invoices.

lexoffice Vouchers API

Bookkeeping vouchers and the voucherlist search.

Scroll for all 14

Open Collections 1

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

Pricing Plans 1

Published pricing tiers and plan structures.

Rate Limits 1

Documented rate limits and quota policies.

Lexoffice Rate Limits

3 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Security Posture 2

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Lexoffice Authentication

http · 1 scheme

SECURITY

Lexoffice Domain Security

TLSv1.3 · HSTS · DNSSEC · DMARC

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Lexoffice Agentic Access

35 operations · 13 acting

35 operations · 13 acting

AGENTIC

Resources

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Access & Security 2

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 2

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: lexoffice (lexware Office) Public API
  version: '1.0'
request:
  auth:
    type: bearer
    token: '{{apiKey}}'
items:
- info:
    name: Contacts
    type: folder
  items:
  - info:
      name: Filter contacts.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/contacts?page=0&size=25
      params:
      - name: email
        value: ''
        type: query
        description: Filter by email address.
      - name: page
        value: '0'
        type: query
        description: Zero-based page index.
      - name: size
        value: '25'
        type: query
        description: Page size.
    docs: Returns a paged, filterable list of contacts.
  - info:
      name: Create a contact.
      type: http
    http:
      method: POST
      url: https://api.lexware.io/v1/contacts
      body:
        type: json
        data: "{\n  \"version\": 0,\n  \"roles\": { \"customer\": {} },\n  \"company\": { \"name\": \"Musterfirma GmbH\" }\n\
          }"
    docs: Creates a new contact (customer and/or vendor).
  - info:
      name: Retrieve a contact.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/contacts/:id
      params:
      - name: id
        value: ''
        type: path
        description: The UUID of the contact.
    docs: Retrieves a single contact by its UUID.
  - info:
      name: Update a contact.
      type: http
    http:
      method: PUT
      url: https://api.lexware.io/v1/contacts/:id
      params:
      - name: id
        value: ''
        type: path
        description: The UUID of the contact.
      body:
        type: json
        data: "{\n  \"version\": 1,\n  \"roles\": { \"customer\": {} },\n  \"company\": { \"name\": \"Musterfirma GmbH\" }\n\
          }"
    docs: Updates an existing contact (version required for optimistic locking).
- info:
    name: Invoices
    type: folder
  items:
  - info:
      name: Create an invoice.
      type: http
    http:
      method: POST
      url: https://api.lexware.io/v1/invoices?finalize=false
      params:
      - name: finalize
        value: 'false'
        type: query
        description: Create in open status instead of draft.
      body:
        type: json
        data: "{\n  \"voucherDate\": \"2026-07-12T00:00:00.000+02:00\",\n  \"address\": { \"name\": \"Musterfirma GmbH\",\
          \ \"countryCode\": \"DE\" },\n  \"lineItems\": [ { \"type\": \"custom\", \"name\": \"Beratung\", \"quantity\": 1,\
          \ \"unitName\": \"Stunde\", \"unitPrice\": { \"currency\": \"EUR\", \"netAmount\": 100.0, \"taxRatePercentage\"\
          : 19 } } ],\n  \"taxConditions\": { \"taxType\": \"net\" },\n  \"totalPrice\": { \"currency\": \"EUR\" }\n}"
    docs: Creates an invoice. Pass finalize=true to create it in the open status.
  - info:
      name: Retrieve an invoice.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/invoices/:id
      params:
      - name: id
        value: ''
        type: path
        description: The UUID of the invoice.
    docs: Retrieves a single invoice by its UUID.
  - info:
      name: Request the invoice PDF.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/invoices/:id/document
      params:
      - name: id
        value: ''
        type: path
        description: The UUID of the invoice.
    docs: Returns a documentFileId used to download the rendered PDF via the Files endpoint.
- info:
    name: Vouchers
    type: folder
  items:
  - info:
      name: Create a voucher.
      type: http
    http:
      method: POST
      url: https://api.lexware.io/v1/vouchers
      body:
        type: json
        data: "{\n  \"type\": \"salesinvoice\",\n  \"voucherNumber\": \"RE-2026-001\",\n  \"voucherDate\": \"2026-07-12\"\
          ,\n  \"totalGrossAmount\": 119.0,\n  \"totalTaxAmount\": 19.0,\n  \"taxType\": \"gross\",\n  \"useCollectiveContact\"\
          : true,\n  \"voucherItems\": [ { \"amount\": 119.0, \"taxAmount\": 19.0, \"taxRatePercent\": 19.0, \"categoryId\"\
          : \"8f8464a8-5023-41f8-a481-e8e8f38a10c8\" } ]\n}"
    docs: Creates a bookkeeping voucher for preliminary accounting.
  - info:
      name: Retrieve a voucher.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/vouchers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The UUID of the voucher.
    docs: Retrieves a voucher by its UUID.
  - info:
      name: Update a voucher.
      type: http
    http:
      method: PUT
      url: https://api.lexware.io/v1/vouchers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The UUID of the voucher.
      body:
        type: json
        data: '{}'
    docs: Updates an existing voucher.
  - info:
      name: Delete a voucher.
      type: http
    http:
      method: DELETE
      url: https://api.lexware.io/v1/vouchers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The UUID of the voucher.
    docs: Deletes a voucher.
  - info:
      name: Search the voucher list.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/voucherlist?voucherType=invoice&voucherStatus=open&page=0&size=25
      params:
      - name: voucherType
        value: invoice
        type: query
        description: Required. Comma-separated voucher types.
      - name: voucherStatus
        value: open
        type: query
        description: Required. Comma-separated statuses.
      - name: page
        value: '0'
        type: query
        description: Zero-based page index.
      - name: size
        value: '25'
        type: query
        description: Page size.
    docs: Filterable list of voucher-type documents. voucherType and voucherStatus are required.
  - info:
      name: Upload a file.
      type: http
    http:
      method: POST
      url: https://api.lexware.io/v1/files
      body:
        type: text
        data: 'multipart/form-data with parts: file (binary), type=voucher'
    docs: Uploads a receipt file (PDF/JPG/PNG) to attach to a voucher.
- info:
    name: Event Subscriptions
    type: folder
  items:
  - info:
      name: List event subscriptions.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/event-subscriptions
    docs: Lists all event subscriptions (webhooks).
  - info:
      name: Create an event subscription.
      type: http
    http:
      method: POST
      url: https://api.lexware.io/v1/event-subscriptions
      body:
        type: json
        data: "{\n  \"eventType\": \"invoice.created\",\n  \"callbackUrl\": \"https://example.com/webhooks/lexoffice\"\n}"
    docs: Registers an HTTPS callback URL for an event type.
  - info:
      name: Retrieve an event subscription.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/event-subscriptions/:id
      params:
      - name: id
        value: ''
        type: path
        description: The UUID of the subscription.
    docs: Retrieves an event subscription by its UUID.
  - info:
      name: Delete an event subscription.
      type: http
    http:
      method: DELETE
      url: https://api.lexware.io/v1/event-subscriptions/:id
      params:
      - name: id
        value: ''
        type: path
        description: The UUID of the subscription.
    docs: Deletes an event subscription.
- info:
    name: Payments
    type: folder
  items:
  - info:
      name: Retrieve payment status for a voucher.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/payments/:voucherId
      params:
      - name: voucherId
        value: ''
        type: path
        description: The UUID of the voucher.
    docs: Returns the open amount, payment status, and payment items for a voucher.
  - info:
      name: List payment conditions.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/payment-conditions
    docs: Returns the payment conditions configured in the account.
- info:
    name: Profile & Metadata
    type: folder
  items:
  - info:
      name: Retrieve the account profile.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/profile
    docs: Returns the connected organization's profile and connection metadata.
  - info:
      name: List countries.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/countries
    docs: Returns the list of supported countries with tax classification.
  - info:
      name: List posting categories.
      type: http
    http:
      method: GET
      url: https://api.lexware.io/v1/posting-categories
    docs: Returns the posting categories used to classify voucher items.
bundled: true