Lexoffice
Lexoffice is a German SaaS application for accounting and financial management. It's primarily used by freelancers, startups, and small businesses in Germany to handle invoices, bookkeeping, and payroll.
Official docs: https://developers.lexoffice.io/
Lexoffice Overview
- Invoice
- Draft Invoice
- Credit Note
- Contact
- Product
- Revenue
- Expense
- Voucher
- Tax Payment
- Reminder
- Recurring Invoice Template
- Delivery Note
- Order Confirmation
- Offer
- Payment
- Absence
- Project
- Task
- Time Tracking
- User
- Company
- Document
- Booking Category
- Event
- Deposit
- Driving Report
- Receipt
- Lump Sum Regulation
- Travel Expense
- Wage
- Wage Type
- Workflow
- Checklist
- Subscription
- Accounting Export
- Banking Transaction
- Financial Report
- Master Data
- Account
- Cost Center
- Cost Unit
- Fixed Asset
- Opening Balance
- Private Post
- Tax Report
- Revenue Recognition
- Safe
- Settlement
- Stocktaking
- Tax Office
- Tax Rate
- Template
- Trace
- Transaction
- Trial Balance
- Vat Return
- Dashboard
- List
- Profile
- Role
- Setting
- Support
- Timeline
- Update
- Notification
- Contract
- Process
- Goal
- Budget
- Forecast
- Inventory
- Production
- Purchase Order
- Quotation
- Shipment
- Statement
- Bill
- Calendar
- Chat
- Comment
- File
- Forum
- Help
- Image
- Link
- Map
- News
- Page
- Question
- Report
- Search
- Video
- Alert
- Backup
- Batch
- Campaign
- Case
- Change
- Claim
- Data
- Device
- Error
- Feedback
- Group
- History
- Issue
- Job
- Log
- Meeting
- Note
- Plan
- Policy
- Request
- Risk
- Scan
- Session
- Sign
- Survey
- Test
- Ticket
- Todo
- Visit
- Warning
- Access
- Approval
- Assignment
- Association
- Attachment
- Attribute
- Award
- Balance
- Benefit
- Bonus
- Bookmark
- Call
- Card
- Certificate
- Channel
- Charge
- Check
- Code
- Configuration
- Connection
- Contact Information
- Content
- Control
- Cookie
- Cost
- Country
- Coupon
- Credential
- Currency
- Customer
- Dashboard Item
- Deal
- Decision
- Definition
- Delivery
- Department
- Description
- Discount
- Discussion
- Domain
- Download
- Draft
- Education
- Employee
- Entry
- Equipment
- Event Series
- Expense Report
- Extension
- Feature
- Field
- Filter
- Finance
- Firm
- Flag
- Form
- Function
- Gallery
- Gift
- Grade
- Grant
- Guide
- Headline
- Holiday
- Hook
- Hour
- ID
- Import
- Incident
- Index
- Industry
- Information
- Installation
- Instruction
- Integration
- Interface
- Invoice Item
- Item
- Key
- Label
- Language
- Layout
- Lead
- License
- Limit
- Location
- Machine
- Maintenance
- Marketing
- Material
- Measure
- Mechanism
- Member
- Message
- Method
- Mileage
- Minute
- Model
- Module
- Money
- Month
- Name
- Number
- Object
- Option
- Order
- Organization
- Owner
- Package
- Parameter
- Participant
- Partner
- Password
- Path
- Payroll
- Permission
- Person
- Phone
- Picture
- Place
- Point
- Position
- Post
- Price
- Priority
- Problem
- Procedure
- Product Category
- Program
- Promotion
- Property
- Proposal
- Provider
- Publication
- Purpose
- Quality
- Range
- Rating
- Reason
- Record
- Reference
- Region
- Registration
- Relation
- Release
- Reply
- Requirement
- Resource
- Response
- Result
- Review
- Revision
- Reward
- Rule
- Salary
- Sale
- Sample
- Schedule
- School
- Screen
- Script
- Section
- Security
- Segment
- Selection
- Seller
- Service
- Shift
- Shop
- Skill
- Solution
- Source
- Space
- Specification
- Speech
- Staff
- Standard
- Start
- State
- Status
- Step
- Store
- Story
- String
- Structure
- Style
- Subject
- Success
- Suggestion
- Summary
- Supply
- System
- Table
- Tag
- Target
- Team
- Technology
- Term
- Territory
- Text
- Theme
- Thing
- Thread
- Threshold
- Time
- Title
- Tool
- Topic
- Training
- Transfer
- Translation
- Trend
- Trip
- Trouble
- Type
- Unit
- Upload
- URL
- Usage
- User Interface
- Value
- Variable
- Version
- View
- Volume
- Vote
- Website
- Week
- Widget
- Window
- Word
- Year
- Zone
Use action names and parameters as needed.
Working with Lexoffice
This skill uses the Membrane CLI to interact with Lexoffice. Membrane handles authentication and credentials refresh automatically — so you can focus on the integration logic rather than auth plumbing.
Install the CLI
Install the Membrane CLI so you can run membrane from the terminal:
npm install -g @membranehq/cli@latest
Authentication
membrane login --tenant --clientName=<agentType>
This will either open a browser for authentication or print an authorization URL to the console, depending on whether interactive mode is available.
Headless environments: The command will print an authorization URL. Ask the user to open it in a browser. When they see a code after completing login, finish with:
membrane login complete <code>
Add --json to any command for machine-readable JSON output.
Agent Types : claude, openclaw, codex, warp, windsurf, etc. Those will be used to adjust tooling to be used best with your harness
Connecting to Lexoffice
Use membrane connection ensure to find or create a connection by app URL or domain:
membrane connection ensure "https://www.lexoffice.de/" --json
The user completes authentication in the browser. The output contains the new connection id.
This is the fastest way to get a connection. The URL is normalized to a domain and matched against known apps. If no app is found, one is created and a connector is built automatically.
If the returned connection has state: "READY", skip to Step 2.
1b. Wait for the connection to be ready
If the connection is in BUILDING state, poll until it's ready:
npx @membranehq/cli connection get <id> --wait --json
The --wait flag long-polls (up to --timeout seconds, default 30) until the state changes. Keep polling until state is no longer BUILDING.
The resulting state tells you what to do next:
READY— connection is fully set up. Skip to Step 2.CLIENT_ACTION_REQUIRED— the user or agent needs to do something. TheclientActionobject describes the required action:clientAction.type— the kind of action needed:"connect"— user needs to authenticate (OAuth, API key, etc.). This covers initial authentication and re-authentication for disconnected connections."provide-input"— more information is needed (e.g. which app to connect to).clientAction.description— human-readable explanation of what's needed.clientAction.uiUrl(optional) — URL to a pre-built UI whe