Lexware Office (formerly lexoffice) is Germany's most popular cloud accounting software for freelancers and small businesses. With over 300,000 users, Lexware Office has established itself as a modern alternative to traditional accounting solutions. The major advantage: Lexware Office offers a modern REST API that makes automation significantly easier.

Why Automate Lexware Office?

Typical manual tasks:

TaskManual EffortAutomated
Creating invoices from shop systems5 min/invoiceAutomatic
Recording and categorizing receipts3 min/receipt30 sec/receipt
Payment reminders30 min/weekAutomatic
Reporting to accountant2h/month1 click
Matching bank transactions1h/weekAI-powered

Potential time savings: 15-20 hours/month for typical SMBs. For the budget side, see our comprehensive guide to what a build like this costs to implement and run.

Lexware Office API: The Basics

Setting Up API Access

  1. Lexware Office -> Settings -> Public API
  2. Generate API key
  3. Store key securely (only visible once!)

Available API Endpoints

EndpointFunctionsTypical Use Case
/contactsManage customers/suppliersCRM sync
/invoicesCreate/retrieve invoicesShop integration
/vouchersManage receiptsReceipt capture
/paymentsManage paymentsPayment reminders
/credit-notesCredit notesReturns
/quotationsQuotesSales automation

API Limits

  • 100 requests/minute - Standard limit
  • Pagination - Max 100 entries per request
  • Rate limiting - 429 error when exceeded

Tip: Build batching and caching into your workflows.

The 10 Most Important Lexware Office Automations

1. Shopify/WooCommerce -> Lexware Office Invoices

Trigger: New order in shop

Workflow:

Shop (New Order)
        |
    Check/create customer data
        |
    Create invoice in Lexware Office
        |
    Send PDF to customer
        |
    Mark order as "invoiced"

n8n Implementation:

// Create Lexware Office invoice
{
  "voucherDate": "2024-01-15",
  "address": {
    "name": order.customer.name,
    "street": order.shipping.address,
    "zip": order.shipping.zip,
    "city": order.shipping.city,
    "countryCode": "DE"
  },
  "lineItems": order.items.map(item => ({
    "type": "custom",
    "name": item.name,
    "quantity": item.quantity,
    "unitPrice": {
      "netAmount": item.price,
      "taxRatePercentage": 19
    }
  })),
  "totalPrice": {
    "currency": "EUR"
  }
}

2. Automatic Receipt Capture

Trigger: Email with attachment or upload to folder

Workflow:

Email/Dropbox (new receipt)
        |
    OCR extraction
        |
    Lexware Office: Create voucher
        |
    Automatic categorization
        |
    If unclear: Slack notification

Make.com Scenario:

  1. Watch: Gmail -> new emails with attachments
  2. Filter: Only PDFs and images
  3. OCR: Mindee or Google Vision
  4. Create: Lexware Office -> Create Voucher
  5. Notify: Slack on success/error

3. CRM Synchronization

Trigger: New contact in HubSpot/Pipedrive

Workflow:

CRM (New Customer)
        |
    Check: Exists in Lexware Office?
        |
    No: Create contact
    Yes: Update contact
        |
    Save Lexware Office ID in CRM

4. Automatic Payment Reminders

Trigger: Daily at 9:00 AM

Workflow:

Schedule (daily)
        |
    Lexware Office: Get open invoices
        |
    Filter: Overdue > 7 days
        |
    For each invoice:
      - Level 1: Payment reminder
      - Level 2: 1st reminder notice
      - Level 3: 2nd reminder notice
        |
    Send email
        |
    Update status in Lexware Office

5. Quote to Invoice Conversion

Trigger: Quote accepted

Workflow:

Quote Status: Accepted
        |
    Lexware Office: Retrieve quote
        |
    Create invoice from quote
        |
    Generate PDF
        |
    Send to customer

6. Recurring Invoices

Trigger: Monthly on the 1st

Workflow:

Schedule (1st of month)
        |
    List: Get subscription customers
        |
    For each customer:
      - Create invoice
      - Send PDF
      - Trigger SEPA direct debit

7. Bank Integration with AI

Trigger: New bank transactions (via finAPI)

Workflow:

finAPI (new transactions)
        |
    AI: Categorization
    (GPT-4/Claude)
        |
    Lexware Office: Match payment
        |
    Unclear bookings: For review

8. Accountant Report

Trigger: End of month

Workflow:

Schedule (last day of month)
        |
    Lexware Office: Get monthly summary
        |
    Create Excel/PDF report
        |
    Email to accountant

9. Expense Approval

Trigger: New receipt above threshold

Workflow:

Lexware Office (new receipt > 500 EUR)
        |
    Slack: Request approval
        |
    Wait for response
        |
    Approved: Release receipt
    Rejected: Mark receipt

10. Inventory Sync

Trigger: Stock level changes

Workflow:

Inventory System (stock change)
        |
    Lexware Office: Update item
        |
    If below threshold: Reorder suggestion

Step-by-Step: Shop to Lexware Office with n8n

Prerequisites

  • n8n Cloud or Self-Hosted
  • Lexware Office API key
  • Shopify/WooCommerce admin access

Building the Workflow

Step 1: Set up trigger

Node: Shopify Trigger
- Event: Order Created
- Credentials: Shopify OAuth

Step 2: Check/create contact

Node: HTTP Request
- Method: GET
- URL: https://api.lexoffice.io/v1/contacts
- Query: email={{ $json.customer.email }}
- Headers: Authorization: Bearer YOUR_API_KEY

Node: IF
- Condition: Contact exists?
- Yes: Use contact ID
- No: Create contact

Step 3: Create invoice

Node: HTTP Request
- Method: POST
- URL: https://api.lexoffice.io/v1/invoices
- Body: (see JavaScript below)

{
  "voucherDate": "{{ $now.format('yyyy-MM-dd') }}",
  "address": {
    "contactId": "{{ $('Contact').item.json.id }}"
  },
  "lineItems": [
    {{#each $json.line_items}}
    {
      "type": "custom",
      "name": "{{ this.name }}",
      "quantity": {{ this.quantity }},
      "unitPrice": {
        "netAmount": {{ this.price }},
        "taxRatePercentage": 19
      }
    }{{#unless @last}},{{/unless}}
    {{/each}}
  ],
  "taxConditions": {
    "taxType": "net"
  },
  "shippingConditions": {
    "shippingType": "delivery",
    "shippingDate": "{{ $now.plus(3, 'days').format('yyyy-MM-dd') }}"
  },
  "paymentConditions": {
    "paymentTermLabel": "Payable within 14 days",
    "paymentTermDuration": 14
  }
}

Step 4: Finalize invoice

Node: HTTP Request
- Method: POST
- URL: https://api.lexoffice.io/v1/invoices/{{ $json.id }}/document

Step 5: Send PDF

Node: HTTP Request
- Method: GET
- URL: https://api.lexoffice.io/v1/invoices/{{ $json.id }}/document
- Response: Binary

Node: Send Email
- To: {{ $('Shopify Trigger').item.json.customer.email }}
- Subject: Your Invoice {{ $json.voucherNumber }}
- Attachment: Invoice PDF

Make.com: Using Lexware Office Modules

Make.com offers native Lexware Office modules:

Available Modules

ModuleFunction
Watch InvoicesTrigger on new invoices
Create InvoiceCreate invoice
Get ContactRetrieve contact
Create ContactCreate contact
Create VoucherCreate receipt
List PaymentsRetrieve payments

Example Scenario

  1. Shopify -> Watch Orders
  2. Lexware Office -> Search Contact (by Email)
  3. Router:
    • Contact exists -> continue
    • Contact missing -> Create Contact
  4. Lexware Office -> Create Invoice
  5. Lexware Office -> Finalize Invoice
  6. Gmail -> Send Email with Attachment

Error Handling

Common Errors

ErrorCauseSolution
401 UnauthorizedInvalid API keyGenerate new key
429 Too Many RequestsRate limitAdd delays
400 Bad RequestInvalid dataValidate before request
404 Not FoundResource missingCheck ID

Best Practice: Retry Logic

// n8n Code Node
const maxRetries = 3;
let attempt = 0;

while (attempt < maxRetries) {
  try {
    // API Request
    return result;
  } catch (error) {
    if (error.response?.status === 429) {
      await new Promise(r => setTimeout(r, 60000)); // Wait 1 min
      attempt++;
    } else {
      throw error;
    }
  }
}

Security and Compliance

Protect API Key

  • Never hardcode in code
  • Use n8n Credentials
  • Rotate regularly

GoBD Compliance

  • Lexware Office is GoBD-certified
  • Automation doesn't change that
  • Observe archiving requirements

GDPR

  • Process customer data only for intended purposes
  • Observe deletion deadlines (Lexware Office supports this)

Cost-Benefit Analysis

Investment

ItemCost
Lexware Office (M/L)12-30 EUR/month
n8n/Make.com50-120 EUR/month
Setup (implemented for you)one-time, depends on scope

Savings

ProcessBeforeAfterSavings
100 invoices/month8h0.5h7.5h
200 receipts/month10h2h8h
Payment reminders4h0h4h
Total22h2.5h19.5h

At 40 EUR/hour = 780 EUR/month savings

Advanced Integrations

Lexware Office + Stripe

For a step-by-step guide on payment webhooks, see our Stripe webhook setup tutorial. Automatically create invoices for Stripe payments:

Stripe Webhook (Payment Success)
        |
    Lexware Office: Create invoice
        |
    Lexware Office: Mark as paid

Lexware Office + Calendly

For service providers with booking systems:

Calendly (Appointment booked)
        |
    Lexware Office: Create contact
        |
    Lexware Office: Create invoice
        |
    Send email with invoice

Lexware Office + Notion

Project-based billing:

Notion (Project completed)
        |
    Extract time entries from Notion
        |
    Lexware Office: Invoice with line items

Conclusion

Lexware Office is an ideal candidate for automation thanks to its modern API. With n8n or Make.com you can:

  • Automatically create invoices from shop systems
  • Intelligently capture and categorize receipts
  • Fully automate payment reminders
  • Generate accountant reports at the click of a button

Time spent on accounting drops by 80-90%.

Next Steps

  1. Create API key - Activate in Lexware Office
  2. Build first workflow - e.g., Shop -> Invoice
  3. Expand gradually - Connect additional processes

If you run a Shopify store, the Shopify to Lexware Office integration is the shortest route from order to booked invoice. I help you with Lexware Office automation - from analysis to finished integration. If you are a tax firm, also read our guide on automation for tax consultants. Book a free call.