Lexoffice is Germany's most popular cloud accounting software for freelancers and small businesses. With over 300,000 users, Lexoffice has established itself as a modern alternative to traditional accounting solutions. The major advantage: Lexoffice offers a modern REST API that makes automation significantly easier.
Why Automate Lexoffice?
Typical manual tasks:
| Task | Manual Effort | Automated |
|---|---|---|
| Creating invoices from shop systems | 5 min/invoice | Automatic |
| Recording and categorizing receipts | 3 min/receipt | 30 sec/receipt |
| Payment reminders | 30 min/week | Automatic |
| Reporting to accountant | 2h/month | 1 click |
| Matching bank transactions | 1h/week | AI-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.
Lexoffice API: The Basics
Setting Up API Access
Available API Endpoints
| Endpoint | Functions | Typical Use Case |
|---|---|---|
| /contacts | Manage customers/suppliers | CRM sync |
| /invoices | Create/retrieve invoices | Shop integration |
| /vouchers | Manage receipts | Receipt capture |
| /payments | Manage payments | Payment reminders |
| /credit-notes | Credit notes | Returns |
| /quotations | Quotes | Sales 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 Lexoffice Automations
1. Shopify/WooCommerce -> Lexoffice Invoices
Trigger: New order in shop
Workflow:
Shop (New Order)
|
Check/create customer data
|
Create invoice in Lexoffice
|
Send PDF to customer
|
Mark order as "invoiced"
n8n Implementation:
// Create Lexoffice 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
|
Lexoffice: Create voucher
|
Automatic categorization
|
If unclear: Slack notification
Make.com Scenario:
3. CRM Synchronization
Trigger: New contact in HubSpot/Pipedrive
Workflow:
CRM (New Customer)
|
Check: Exists in Lexoffice?
|
No: Create contact
Yes: Update contact
|
Save Lexoffice ID in CRM
4. Automatic Payment Reminders
Trigger: Daily at 9:00 AM
Workflow:
Schedule (daily)
|
Lexoffice: 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 Lexoffice
5. Quote to Invoice Conversion
Trigger: Quote accepted
Workflow:
Quote Status: Accepted
|
Lexoffice: 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)
|
Lexoffice: Match payment
|
Unclear bookings: For review
8. Accountant Report
Trigger: End of month
Workflow:
Schedule (last day of month)
|
Lexoffice: Get monthly summary
|
Create Excel/PDF report
|
Email to accountant
9. Expense Approval
Trigger: New receipt above threshold
Workflow:
Lexoffice (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)
|
Lexoffice: Update item
|
If below threshold: Reorder suggestion
Step-by-Step: Shop to Lexoffice with n8n
Prerequisites
- n8n Cloud or Self-Hosted
- Lexoffice 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 Lexoffice Modules
Make.com offers native Lexoffice modules:
Available Modules
| Module | Function |
|---|---|
| Watch Invoices | Trigger on new invoices |
| Create Invoice | Create invoice |
| Get Contact | Retrieve contact |
| Create Contact | Create contact |
| Create Voucher | Create receipt |
| List Payments | Retrieve payments |
Example Scenario
- Contact exists -> continue
- Contact missing -> Create Contact
Error Handling
Common Errors
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Invalid API key | Generate new key |
| 429 Too Many Requests | Rate limit | Add delays |
| 400 Bad Request | Invalid data | Validate before request |
| 404 Not Found | Resource missing | Check 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
- Lexoffice is GoBD-certified
- Automation doesn't change that
- Observe archiving requirements
GDPR
- Process customer data only for intended purposes
- Observe deletion deadlines (Lexoffice supports this)
Cost-Benefit Analysis
Investment
| Item | Cost |
|---|---|
| Lexoffice (M/L) | 12-30 EUR/month |
| n8n/Make.com | 50-120 EUR/month |
| Setup (implemented for you) | from 5,000 EUR one-time |
Savings
| Process | Before | After | Savings |
|---|---|---|---|
| 100 invoices/month | 8h | 0.5h | 7.5h |
| 200 receipts/month | 10h | 2h | 8h |
| Payment reminders | 4h | 0h | 4h |
| Total | 22h | 2.5h | 19.5h |
At 40 EUR/hour = 780 EUR/month savings
Advanced Integrations
Lexoffice + 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)
|
Lexoffice: Create invoice
|
Lexoffice: Mark as paid
Lexoffice + Calendly
For service providers with booking systems:
Calendly (Appointment booked)
|
Lexoffice: Create contact
|
Lexoffice: Create invoice
|
Send email with invoice
Lexoffice + Notion
Project-based billing:
Notion (Project completed)
|
Extract time entries from Notion
|
Lexoffice: Invoice with line items
Conclusion
Lexoffice 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
If you run a Shopify store, the Shopify to Lexoffice integration is the shortest route from order to booked invoice. We support you with Lexoffice automation - from analysis to finished integration. If you are a tax firm, also read our guide on automation for tax consultants. Contact us for a free consultation.