I run a flower shop in Munich and recently migrated my entire e-commerce setup to Medusa v2. The shop, the
subscription service, the dashboard - everything runs on Medusa now.
One thing that was completely missing: a connection to Lexware Office, which is the most popular accounting software
for small businesses in Germany. Every order meant manually creating an invoice. With 5-10 orders a day, that gets old
fast.
So I built LexBridge - an open-source Medusa v2 plugin that automates the entire invoicing workflow.
What it does
When a customer places an order, the plugin:
- Looks up the customer in Lexware (or creates a new contact)
- Creates an invoice with all line items, tax rates, and payment terms
- Downloads the finalized PDF from Lexware
- Stores the invoice reference in the database
Everything is configurable through the Medusa Admin UI - no code changes needed after installation.
The tricky parts
German tax rates - Germany has 7% for food/flowers and 19% for everything else. A single order can contain items with
different tax rates. The plugin supports a taxRateOverride callback so you can define your own logic per line item.
Payment terms per payment method - A customer paying with PayPal should get "due immediately", while a B2B customer
paying on invoice gets "14 days". The plugin lets you configure this per payment provider.
Lexware API quirks - The API has a rate limit of 2 requests per second and returns 503 errors more often than you'd
like. The plugin handles this with exponential backoff and automatic retries.
Idempotency - Medusa can fire order.placed events multiple times. A unique constraint on order_id ensures only one
invoice is created per order.
Free and Pro
The core features are completely free and open-source (MIT license). I added a Pro tier for advanced features like
credit notes, dry-run mode, webhook sync, and email notifications. It's a small way to fund ongoing development while
keeping the essential functionality free for everyone.
Tech stack
- Medusa v2 module with custom service, subscribers, and admin UI
- TypeScript end to end
- AES-256-GCM encryption for API keys stored in the database
- Nodemailer for SMTP email delivery
- Admin UI built with Medusa's native UI components
Try it
npm install medusa-lexbridge
- https://github.com/Severin2k/medusa-plugin-lexware
- https://lexbridge.shop
- https://www.npmjs.com/package/medusa-lexbridge
If you're running a Medusa shop in Germany/DACH and dealing with Lexware, this might save you a lot of manual work.
Feedback and contributions are welcome!
Top comments (0)