Zum Inhalt springen
← All posts

Legally Compliant Invoices in WooCommerce

WooCommerce does not produce legally compliant invoices out of the box. What Austrian and German VAT law requires, which plugins work, and how to solve numbering, the small business exemption and compliant archiving.

WooCommerce invoices are the detail that trips up more shop owners than any other legal requirement I see in my projects. The order confirmation email that WooCommerce sends after checkout looks official enough – but it is not an invoice in the eyes of Austrian or German tax law. It usually lacks a sequential invoice number, the seller’s VAT ID and a proper tax breakdown. The gap stays invisible until a business customer asks for a real invoice to reclaim VAT, or until a tax audit lands on your desk.

In this article I will walk you through what an invoice legally needs in the DACH region, how to set up clean invoice numbering, which plugins have proven themselves in my client projects in Vienna, and how to handle small business exemptions, automation and mandatory archiving.

One thing before we start: I am a web developer, not a tax advisor. This article is a technical field guide, not legal or tax advice. For binding answers about your specific situation, please talk to your accountant or tax advisor.

Why the order confirmation is not an invoice

Out of the box, WooCommerce was built for the US market, where invoicing rules are far more relaxed. European VAT law – implemented in Austria as § 11 UStG and in Germany as § 14 UStG – demands a specific set of mandatory details on every invoice. The standard WooCommerce emails do not deliver them.

There is a second, sneakier problem: the WooCommerce order number is simply the internal database post ID. It shares its sequence with pages, products and drafts, which produces large random gaps. As a sequential invoice number, it is unusable – and unexplained gaps in invoice numbering are exactly what auditors ask about first.

If you are still deciding on your platform, I compare the legal and technical trade-offs in my guide on which shop system to choose for your online store.

What every invoice must contain

Austria and Germany both implement the EU VAT Directive, so the core requirements are nearly identical. A full invoice needs:

  • Name and address of the seller and the customer
  • Quantity and description of the goods, or nature and scope of the service
  • Date of delivery or the period in which the service was performed
  • Net amount, broken down by tax rate
  • Applicable VAT rate and the VAT amount in euros
  • Issue date of the invoice
  • A sequential, unique invoice number
  • The seller’s VAT ID – and in Austria, for invoices above 10,000 euros, the customer’s VAT ID as well

The differences sit in the details. Here is how the two countries compare:

Rule Austria Germany
Legal basis § 11 UStG § 14 UStG
Simplified small-amount invoice up to 400 euros gross up to 250 euros gross
Retention period 7 years (§ 132 BAO) 8 years for invoices (since 2025)
Small business threshold 55,000 euros gross (since 2025) 25,000 euros previous year / 100,000 euros current year (since 2025)
Exemption note required by § 6 para 1 no 27 UStG § 19 UStG

For invoices below 400 euros in Austria (250 euros in Germany), simplified rules apply: you may omit the customer address, the invoice number and the separate VAT breakdown. In practice I recommend issuing complete invoices anyway – a good plugin does not care whether the order is 30 or 3,000 euros, and B2B customers expect full documents.

Invoice numbering: sequential, unique, explainable

The law requires invoice numbers to be sequential and issued only once. They do not have to start at 1, and a documented gap is not automatically a problem – but every gap you cannot explain is a red flag in an audit. My rules of thumb from years of WooCommerce projects:

  • Assign the invoice number when the invoice is created, not when the order comes in. Cancelled and abandoned orders would otherwise punch holes into your sequence.
  • Use a year-based format such as 2026-0001. It keeps the sequence readable and makes year-end closing easier.
  • Keep order numbers and invoice numbers strictly separate – the plugins below maintain their own counter for exactly this reason.
  • If you also invoice outside the shop, for example for services, ask your tax advisor whether one shared sequence or separate ranges make more sense for you.

The small business exemption: no VAT, but a mandatory note

If you operate under the small business scheme (Kleinunternehmerregelung), you charge no VAT – but you must state the reason on every invoice. The usual wording refers to § 6 para 1 no 27 UStG in Austria or § 19 UStG in Germany. An invoice without this note is formally defective, even though no tax is involved.

Technically this means: setting your WooCommerce tax rates to zero is not enough. The exemption note has to appear on the PDF invoice and ideally in the checkout as well. Good invoicing plugins provide a dedicated text field for it; the German market suites even ship it as a ready-made switch.

The plugins I actually use in projects

Three approaches have proven reliable in my work:

  • WooCommerce PDF Invoices & Packing Slips by WP Overnight: the de-facto standard with over 300,000 active installs. The free version generates PDF invoices with an independent numbering sequence and attaches them to WooCommerce emails. The Pro version adds credit notes, proforma invoices and UBL e-invoice output.
  • Germanized for WooCommerce or WooCommerce German Market: full legal-compliance suites for the DACH market. They cover checkout requirements, mandatory consumer information and – in their paid tiers – compliant PDF invoicing. If your shop already runs one of them, you do not need a separate invoicing plugin.
  • Direct integration with accounting software: sevdesk, Lexware Office (formerly lexoffice) or FreeFinance in Austria can be connected via API. The invoice is then created inside the accounting system, which also solves immutable archiving, because those platforms are certified for it.

My advice: pick one path and remove the rest. I have inherited shops where three invoicing plugins ran in parallel, each with its own numbering sequence – untangling that costs far more than setting it up properly once. And remember that every one of these plugins touches tax-relevant processes, so updates need to be applied promptly and tested. That is precisely what my ongoing website care and maintenance service covers.

Automation: from checkout to your accountant

Set up properly, the whole chain runs without anyone touching it: an order comes in, payment confirmation switches the status to processing, the plugin generates the invoice with the next number, attaches the PDF to the customer email and pushes the document to your accounting software via API. For a shop with 200 orders a month, that saves several working hours – and eliminates typos in the books.

Four things I verify in every setup:

  1. Is the invoice triggered on the right order status? Bank transfer and pay-later methods need a different trigger than credit cards.
  2. Are tax rates correct for every destination country, including the EU OSS scheme for cross-border B2C sales?
  3. Are refunds and cancellations issued as separate credit notes instead of deleting or editing existing invoices?
  4. Does every document also land in a tamper-proof archive outside the shop itself?

For edge cases – reverse charge invoices, tiered B2B pricing, custom document types – plugin settings sometimes hit their limit. That is where I build targeted extensions as part of my custom WooCommerce development work.

Archiving: GoBD, BAO and the coming e-invoice

Creating the invoice is only half the job – you also have to store it correctly. Germany’s GoBD rules require documents to be archived in a complete, unalterable and machine-readable way; the retention period for invoices was shortened to eight years in 2025. Austria’s § 132 BAO requires seven years.

From a technical standpoint, a PDF sitting in the WordPress uploads folder is not a compliant archive. The folder is writable, backups rotate, and files get lost during server migrations. I always set up a second, independent storage location – either inside the connected accounting platform or as an automated export to versioned storage.

Then there is the e-invoice: since 2025, German B2B companies must be able to receive structured e-invoices (XRechnung, ZUGFeRD), and the obligation to issue them phases in from 2027. Austria currently mandates e-invoices mainly for contracts with the federal government. If you are building your invoicing stack today, choose a plugin that already supports ZUGFeRD or UBL – the switch later becomes a checkbox instead of a project.

The five mistakes I see most often

  1. Using the WooCommerce order number as the invoice number, gaps and all.
  2. Charging no VAT as a small business but omitting the mandatory exemption note.
  3. Editing or deleting issued invoices after a cancellation instead of creating credit notes.
  4. Keeping PDF invoices only in the uploads folder, outside any backup or archiving concept.
  5. Outdated EU tax rates because the OSS scheme was never configured properly.

Conclusion

WooCommerce can absolutely produce legally compliant invoices for the Austrian and German market – just not out of the box. A solid invoicing plugin, a clean numbering sequence, the correct small business setup and proper archiving turn this from a liability into a fully automated background process. The combination of mandatory invoice details, GoBD or BAO archiving and the upcoming e-invoicing rules looks intimidating, but technically it is a solved problem.

Not sure whether your shop gets this right? Send me a message – I will review your invoicing setup and tell you honestly what is missing and what is not.

Häufige Fragen

Is the WooCommerce order confirmation a valid invoice?

No. The confirmation email typically lacks a sequential invoice number, the seller's VAT ID and a proper tax breakdown, all of which are mandatory under Austrian and German VAT law. You need an invoicing plugin or an accounting integration to issue valid invoices.

Which plugin should I use for WooCommerce PDF invoices?

WooCommerce PDF Invoices & Packing Slips is the proven standard for pure invoice generation. If you need full DACH legal compliance, Germanized or German Market cover invoicing plus checkout requirements. Alternatively, an API connection to sevdesk or Lexware Office creates invoices directly in your accounting software.

How long do I have to keep invoices in Austria and Germany?

Austria requires seven years under § 132 BAO; Germany requires eight years for invoices since 2025. Storage must be complete and tamper-proof – a PDF in the WordPress uploads folder alone does not qualify.

What do small businesses need to put on WooCommerce invoices?

Under the small business exemption you charge no VAT, but every invoice must state the legal basis: § 6 para 1 no 27 UStG in Austria or § 19 UStG in Germany. Good invoicing plugins provide a dedicated field for this note.

Free checklist: 10 points before your website goes live

Practical tips from real projects — straight to your inbox, no spam. Unsubscribe any time.

    Alex
    Alex · Buntweb

    Web developer and IT service provider from Vienna. For over ten years I have been building and maintaining websites and online shops — focused on clean technology, honest advice and solutions that work in everyday business.

    Ask a question