Leitweg-ID and XRechnung for German public buyers, Peppol BIS Billing 3.0 UBL, buyer VAT ID checks, validation and batch export.
Tested on Shopware 6.7.16.0 & Shopware 6.6.10.31Updated Nov 12, 2026Version 1.0.0Compatible with Shopware 6.6.10+ and 6.7 No core file edits
Built forShopware
EU E-Invoicing for Shopware: Leitweg-ID, XRechnung and Peppol BIS from your Shopware documents.1 of 6
What it does
Leitweg-ID and XRechnung for German public buyers, Peppol BIS Billing 3.0 UBL, buyer VAT ID checks, validation and batch export.
The part of e-invoicing Shopware core does not do. Shopware 6.6.10 and later create ZUGFeRD / XRechnung CII documents. For a German public buyer, for Peppol or for an EU reverse-charge sale they still miss data: the Leitweg-ID, the buyer VAT ID, the right VAT category. This plugin adds it, validates it and exports it.
Features
Leitweg-ID and buyer reference
Field per customer and per order, optional at checkout for business customers
Checked by structure and check digits before the order is placed
Written to BT-10 of every file, including Shopware's own ZUGFeRD XML (core writes the order number)
Three formats from your Shopware documents
XRechnung 3.0 UBL for German public buyers
Peppol BIS Billing 3.0 UBL
XRechnung 3.0 CII
Invoices, credit notes and cancellations; the same document numbers, no second numbering
Business data done right
Buyer VAT ID checked per EU country (format and check digit, no remote call), Peppol ID, purchase order number
VAT categories: reverse charge (AE), intra-community supply (K), export (G), exempt (E), zero rated (Z), with the exemption reason code, instead of core's S / Z
Payment means, due date, IBAN, seller contact and Peppol endpoint
Checked before you send
Built-in EN 16931 and XRechnung rules with messages that name the Shopware place to fix the data
Made for Shopware
Orders > E-invoices: list with filters, search by buyer reference, validation status and ZIP export with a report
E-invoice tab on every order
Created automatically when Shopware creates the document, or by hand
Public events and services only, no core overrides, no external service; Shopware 6.6 and 6.7
What you get
Download & installThe plugin .zip for Shopware 6.6 and 6.7, installed in Extensions > My extensions > Upload extension (or with Composer). Download it from My licenses right after payment.
12 months of updates & supportNew versions and help for 12 months (24 or 36 months at checkout). After that the plugin keeps working; renew anytime at 50%.
License for your storeOne production domain with all its subdomains; staging and local development hosts are free. How licensing works
30-day refundFull refund within 30 days of your first purchase, no reason needed. Refund policy
Tested buildsShopware 6.6.10+ and 6.7. Tested on Shopware 6.7.16.0 and Shopware 6.6.10.31.
Documentation & supportFull guide (Installation, Configuration, Usage, FAQ) on this page. Tickets from your account, same-day reply on weekdays (Mon-Fri 09:00-18:00 UTC+3).
Compatibility
EU E-Invoicing works with Shopware 6.6.10+ and 6.7.
We list the builds we install and test on. “Tested” means the test plan ran on that build; “Supported” means the build is inside the supported range.
Compatibility
Version
Range
Runs on
Status
Shopware 6.7
6.7.x
PHP 8.2 – 8.4
Tested on 6.7.16.0
Shopware 6.6
6.6.10 – 6.6.x
PHP 8.2 – 8.4
Tested on 6.6.10.31
Hosting
Self-hosted and PaaS
Zip upload or Composer
Supported
1.0.0
Nov 12, 2026
Latest
First release: Leitweg-ID and buyer reference, XRechnung 3.0 UBL and CII, Peppol BIS Billing 3.0 UBL, buyer VAT ID, Peppol ID and purchase order number, VAT categories AE / K / G / E / Z with exemption codes, completion of Shopware's own ZUGFeRD XML, built-in validation, optional KoSIT check, e-invoices list with ZIP export.
How do I install the plugin?
Upload the plugin. Extensions > My extensions > Upload extension: choose the .zip from My licenses.
Install and activate. Click Install, then switch the plugin on. Shopware clears its caches for you.
Enter the license key. Open the plugin's configuration and paste the key from My licenses. You have 14 days to do it; staging and local shops are included.
Shopware 6.6.10+ and 6.7. Tested on Shopware 6.7.16.0 and Shopware 6.6.10.31. The Compatibility tab lists every version range.
Does it work on Shopware SaaS?
No. Shopware SaaS runs apps only, so plugins need a self-hosted shop or a PaaS (cloud) shop where you can install plugins.
Does it work with Composer-managed shops?
Yes. The package has a composer.json at its root, so it installs with a path or artifact repository as well as from the Administration. Shops that turn runtime extension management off install it with Composer.
Can I see it before I buy?
Yes. Every plugin page shows real screenshots from Shopware 6.7 and the full documentation, so you can check each screen before you buy. Every order also has a 30-day refund.
What does the license cover?
One production store domain with every subdomain (www, shop., staging.), plus local development hosts such as localhost, *.local and *.test. A store on another domain needs its own license; a second-store license is 40% off. You have 14 days after installing to enter the key. 12 months of updates and support are included; after that the plugin keeps working and renewals are 50% off. How licensing works
Can I get a refund?
Yes. Ask for a full refund within 30 days of your first purchase, no reason needed: open a ticket or write to [email protected] with your order number. The money goes back to the card or bank account you paid with within 5 business days of approval. Refund policy
How do I get help?
Open a ticket from your account, so your license details are attached. We answer with a same-day reply on weekdays (Mon-Fri 09:00-18:00 UTC+3). Support policy. Not a customer yet? Ask a pre-sales question.
The e-invoicing parts Shopware core does not do: Leitweg-ID and XRechnung for German public buyers, Peppol BIS Billing 3.0 UBL, buyer VAT ID checks, validation and batch export.
Works with Shopware 6.6.10 and later and Shopware 6.7 (self-hosted and PaaS; Shopware SaaS runs apps only, not plugins).
What you get
Leitweg-ID and buyer reference per customer and per order, optional at checkout, checked by structure and check digits, written to BT-10 of every file, including Shopware's own ZUGFeRD XML.
XRechnung 3.0 UBL and CII, Peppol BIS Billing 3.0 UBL for invoices, credit notes and cancellations, created automatically or from the order.
Buyer VAT ID, Peppol endpoint and purchase order number (BT-48, BT-49, BT-13), VAT IDs checked per EU country.
Correct VAT categories: reverse charge (AE), intra-community supply (K), export (G), exempt (E) and zero rated (Z), with the exemption reason code.
Validation before you send: EN 16931 and XRechnung rules in the shop, each message naming where to fix it, plus an optional check against your own KoSIT validator.
E-invoices list and ZIP export under Orders, with filters and a validation report.
Pages
Installation
Requirements: Shopware 6.6.10 or later, or Shopware 6.7, self-hosted or PaaS; PHP 8.2 to 8.4.
Download the plugin zip from your Kavio Labs account.
In the Administration open Extensions > My extensions and choose Upload extension. Select the zip.
Click Install, then switch the plugin on.
Command line: bin/console plugin:zip-import KvEuEinvoicing-1.0.0.zip, then bin/console plugin:install --activate KvEuEinvoicing, then bin/console cache:clear.
First steps
Open Settings > Documents > Invoice > Company and fill in the company data completely (name, address, country, VAT ID or tax number, IBAN, e-mail, phone). It is the seller of every e-invoice.
Open Orders > E-invoices > Licence, enter your licence key and choose Check now. Until then the plugin works for 14 days.
Open Orders > E-invoices > Settings and choose the formats you need (see Configuration).
Create an invoice for a test order and open the order's E-invoice tab.
Update
Upload the new zip the same way and choose Update. Your settings, licence and e-invoice files stay.
Uninstall
Choose Uninstall in My extensions. Tick Keep user data if you want to retain issued e-invoices and settings; otherwise the plugin table, the custom field set and all settings are removed.
Configuration
Open Extensions > My extensions > EU E-Invoicing > Configure, or Orders > E-invoices > Settings. Every setting can be set for all sales channels or for one sales channel.
Settings
Your seller data
The plugin does not ask for your company data twice. Name, address, VAT ID, tax number, IBAN and BIC come from Settings > Documents > Invoice > Company, exactly as on the PDF invoice. Fill them in completely: the readiness check on each order names the field that is missing.
Two additions live in the plugin:
Setting
What it does
Seller Peppol ID
Scheme and ID of your own Peppol endpoint, for example 9930:DE123456788 (German VAT ID) or 0204:991-12345-67 (Leitweg-ID). Empty: derived from your VAT ID.
Company registration ID
Your commercial register number, used when you have no VAT ID.
Contact person or department, phone, e-mail
XRechnung requires a seller contact. Empty: the company name, phone and e-mail of the document company data.
Payment terms text
Free text written to the invoice.
E-invoice files
Setting
What it does
Create e-invoice files automatically
When Shopware creates an invoice, credit note or cancellation document, the e-invoice files of the selected formats are created and checked at once. Off: create them from the order's E-invoice tab.
Formats
XRechnung 3.0 UBL (German public buyers), Peppol BIS Billing 3.0 UBL, XRechnung 3.0 CII. Select any combination.
Buyer reference when the buyer gave none
Order number (what Shopware core writes) or leave empty. German public buyers reject a missing or wrong buyer reference, so ask for the Leitweg-ID at checkout.
Shopware ZUGFeRD
Shopware creates its own ZUGFeRD / XRechnung CII documents. Complete Shopware's ZUGFeRD / XRechnung XML (on by default) writes the data core leaves out into that XML: the Leitweg-ID instead of the order number (BT-10), the buyer VAT ID (BT-48), the purchase order number (BT-13), the buyer Peppol ID, the delivery country for intra-EU supplies and the correct VAT category of 0 % lines.
VAT categories of 0 % lines
Shopware writes category S or Z for every line. The plugin decides the correct EN 16931 category from the order:
Case
Setting
Default
Tax-free supply to a company with a VAT ID in another EU country
Intra-EU
K, intra-community supply of goods (or AE, reverse charge for services)
Tax-free supply outside the EU
Export
G, export outside the EU (or E, O)
0 % or exempt supply inside the country
Domestic
Z, zero rated (or E, exempt)
The exemption reason (BT-120 / BT-121) is written together with the category, for example VATEX-EU-IC.
Payment means and units
Invoice and prepayment are written as SEPA credit transfer (code 58) with your IBAN, direct debit as 59, cash on delivery as 10. Other payment methods use the code you select here (68 online payment service, 54 credit card, 30 credit transfer, ZZZ mutually defined). The default unit code is UN/ECE Recommendation 20, for example H87 piece.
Checkout
Show the e-invoice fields at checkout adds two optional fields to the checkout confirm page for customers that have a company: buyer reference / Leitweg-ID and purchase order number. A Leitweg-ID is checked (structure and check digits) before the order is placed.
Checkout fields on a phone
KoSIT validator (optional)
The built-in rule checks always run. If you operate the official KoSIT validator on your own server in daemon mode (java -jar validator.jar -D), enter its URL here. XRechnung files are then also checked against the official XRechnung schematron, and the verdict is shown in the list. Files are sent only to the URL you enter, never to a third-party service. Check every new XRechnung file with KoSIT runs the check on creation.
Licence
Enter the licence key in the Licence tab and choose Check now. The plugin works for 14 days after installation without a key; the Administration is never blocked. See Installation.
Usage
Where the buyer reference comes from
German public buyers (federal, state and municipal authorities) require an XRechnung that carries their Leitweg-ID as buyer reference (BT-10). Shopware core always writes the order number there. With this plugin the reference comes from, in this order:
the value on the order (entered by the customer at checkout, or saved by you in the E-invoice tab),
the value saved on the customer (custom field set EU E-Invoicing),
the fallback you chose in the settings.
The same two levels exist for the buyer VAT ID (on top of the VAT ID stored with the customer), the buyer Peppol ID and the purchase order number (BT-13). VAT IDs are checked per country (format and check digit), Leitweg-IDs by structure and check digits, Peppol IDs by scheme and format. No remote service is called.
Create an e-invoice
With Create e-invoice files automatically on, nothing has to be done: when an invoice, credit note or cancellation document is created (manually, by a flow or in bulk), the files of the selected formats are created and checked.
By hand: open the order, E-invoice tab.
Buyer for e-invoices shows the buyer reference, VAT ID, Peppol ID and purchase order number. Correct them and choose Save buyer data.
Ready for e-invoicing? lists, per format, whether the order passes the rules of that format. A message names the Shopware place where a missing seller or buyer detail is fixed.
E-invoice files lists the files per document. Choose Create e-invoices (or Recreate all after a correction, Recreate for one document) and Download a file.
Each file shows Valid, Warnings or Not valid. A file that is not valid is kept for review but never offered as a clean file. A consumer without a Peppol ID cannot receive Peppol BIS: the Peppol file is refused with the reason.
E-invoice tab of an order
Shopware's own ZUGFeRD documents
Create ZUGFeRD documents as before. With Complete Shopware's ZUGFeRD / XRechnung XML on, the plugin fixes the data core leaves out while the XML is built, so the same document is accepted by the official validator.
E-invoices list
Orders > E-invoices lists every file with document, order, buyer, format, status, total and date. Filter by status, format and document type, or search by document number, buyer or buyer reference. The cards on top count files, valid files, warnings and files that are not valid.
Orders > E-invoices
Tick files and choose Export N as ZIP, or tick none and choose Export all as ZIP (up to 5,000 files): the ZIP holds the XML files and a validation-report.csv, ready for your tax advisor or a public buyer's portal.
KoSIT check
With a KoSIT URL configured, KoSIT on a file in the list or Check with KoSIT on the order (or the automatic check) sends the XRechnung file to your own validator and stores the verdict: KoSIT accepted, KoSIT rejected with the findings, or KoSIT not reached.
Credit notes and cancellations
Credit notes and cancellation documents of Shopware are converted like invoices: type code 381 (credit note) with the reference to the original invoice.
Permissions
Reading needs the order:read privilege, creating files and saving buyer data needs order:update. The settings follow the normal Shopware settings privileges.
FAQ
Does it work on Shopware SaaS?
No. Shopware SaaS runs apps only. The plugin needs a self-hosted or PaaS shop.
Which Shopware and PHP versions?
Shopware 6.6.10 and later 6.6 releases, and Shopware 6.7. PHP 8.2 to 8.4. It uses only public events and services of Shopware, so it does not override core classes.
Do I still need Shopware's own ZUGFeRD documents?
Shopware core creates the PDF/A-3 hybrid invoice and its own CII XML. This plugin adds what core does not: Leitweg-ID as buyer reference, Peppol BIS Billing 3.0 and XRechnung UBL, buyer VAT ID, the correct VAT categories (reverse charge, intra-community, export, exempt), validation and batch export. It also completes core's own XML with that data.
Which formats are written?
XRechnung 3.0 UBL, Peppol BIS Billing 3.0 UBL and XRechnung 3.0 CII, for invoices, credit notes and cancellations. They were checked against the official KoSIT validator with the XRechnung 3.0.2 configuration, the Peppol BIS Billing 3.0 schematron and the UBL 2.1 schema.
Is the invoice sent to the buyer or to a portal?
No. The plugin creates and validates the files and lets you download or export them. Sending to a public buyer's portal or a Peppol access point is done with your usual channel.
Does a customer's data leave my server?
No. All checks run inside your shop. If you connect a KoSIT validator, the files go only to the URL you enter.
Why is my file marked "Not valid"?
The message in the order's E-invoice tab names the rule and the Shopware place to fix it, for example a missing seller IBAN in Settings > Documents > Invoice > Company, a missing seller contact, or a buyer reference that is not a valid Leitweg-ID. Fix it and choose Recreate.
Why does my consumer order not get a Peppol file?
Peppol needs an endpoint ID for the buyer. A consumer has none, so the Peppol file is refused. Use the XRechnung formats, or enter a Peppol ID on the order.
What happens to my data when I uninstall?
The Shopware uninstall dialog asks whether to keep the plugin data. Keep it if you must retain issued e-invoices: they are legal records in many countries.
Licence
One production domain, no expiry, 12 months of updates. The plugin works for 14 days without a key; afterwards creating files needs an active licence. The Administration stays available.
Sell fabric, flooring, rope or bulk goods by the metre, square metre or kilo: the shopper types the amount, the price is exact. With area calculator and packs.