A WooCommerce to lexoffice integration turns each paid WooCommerce order into the matching record in lexoffice - a sales invoice (Rechnung) or booking voucher (Beleg) with correct line items, the right taxType and taxRatePercentage per position, and a deduplicated contact (Kontakt) as the debitor. Refunds become credit notes, shipping and fees get their own lines, and EU or third-country sales carry the correct tax subtype for reverse-charge, intra-community supply, or export. Done properly it is not a nightly CSV import: it is an idempotent pipeline that keeps lexoffice in sync with your shop so your bookkeeping and Steuerberater start from clean, correctly taxed data.
WooCommerce knows everything about a sale - the line items, the tax collected per position, the coupon, the shipping, the gateway fee, the partial refund three days later. lexoffice needs all of that expressed as accounting records: a contact for the customer, an invoice or voucher with correctly taxed lines, a credit note for the refund, and posting categories that carry through to the DATEV export your Steuerberater pulls.
The gap between a WordPress shop and a German accounting system is where the work lives. A WooCommerce to lexoffice integration closes it automatically: it reads each relevant order event from WooCommerce, applies your booking logic, deduplicates the customer, and writes a clean record into lexoffice that your finance workflow can rely on without anyone re-keying figures.
| WooCommerce object / event | Becomes in lexoffice | Notes |
|---|---|---|
| Paid order (processing / completed) | Sales invoice (Rechnung) or voucher (Beleg) | Model chosen per your bookkeeping; one record per order |
| Order billing customer | Contact (Kontakt / Debitor) | Deduplicated on email and VAT ID, not created blindly |
| Order line items | lexoffice line items with unit price and quantity | Net or gross per your taxType convention |
| Tax lines | taxType + taxRatePercentage per line | 19% / 7% domestic, plus the correct tax subtype cross-border |
| Shipping line | Separate line item | Shipping is itself taxable and booked on its own position |
| Fee lines / gateway fees | Separate line or expense voucher | Kept apart from revenue so the net payout reconciles |
| Coupon / discount | Reduced line amounts | lexoffice has no discount object; the net is applied per line |
| Refund / partial refund | Credit note (salescreditnote / Rechnungskorrektur) | Same lines and tax keys as the original, dated to the refund |
The exact posting categories, tax handling, and invoice-versus-voucher model are agreed once and encoded in the pipeline. After that, nobody maps an order by hand.
A directory plugin or a one-off export gets you 80% of the way and leaves the expensive 20% on your desk:
We treat this as a pipeline, not a plugin. WooCommerce order and refund events are pulled on a schedule (or by webhook), validated, deduplicated against existing lexoffice contacts, transformed into your agreed lexoffice records, and written through the lexoffice Invoices or Vouchers endpoint - with throttling that respects the API rate limit and backs off cleanly on 429.
The pipeline is idempotent: every WooCommerce order carries a stable ID, so a retry or a re-run never creates a second invoice, a duplicate voucher, or a phantom contact. It runs on cloud-native, fully EU-hosted AWS infrastructure, so order and customer data never leaves the EU - which keeps your DPA/AVV and your GDPR obligations clean, and matters given lexoffice is itself a German system.
Then we keep it running. Monitoring, alerting, incident response, and watching for WooCommerce and lexoffice API changes are our responsibility under contract. Your month-end stops depending on a WordPress cron job nobody owns.
If you process a handful of orders a month at a single VAT rate, a directory plugin or even manual entry into lexoffice is genuinely fine, and we will tell you so. The integration earns its place when volume climbs, when you sell across EU borders and need correct tax subtypes, when refunds and multiple payment gateways make reconciliation a monthly chore, or when duplicate contacts and broken invoice numbers are already costing you time your Steuerberater bills back to you. At that point a plugin on your web server is a liability, and a managed, EU-hosted pipeline with a named owner earns its keep.
Need this integration built and permanently operated? Tell us which systems connect and what data has to move. Fixed-price scoping quote within 48 hours.
Request a scoping call