EN 16931 e-invoices and credit notes from your orders: XRechnung, Factur-X/ZUGFeRD PDF/A-3 and Peppol BIS 3.0 UBL with a validation log.
Available Updated Oct 25, 2026Version 1.0.1CS-Cart, Multi-Vendor 4.17.2 – 4.21.x No core file edits
Built for
EU e-Invoicing: XRechnung, Factur-X/ZUGFeRD & Peppol-ready UBL: overview1 of 16
What it does
A PDF invoice is not an e-invoice. Belgium, France and Germany are moving business invoicing to structured EN 16931 formats from 2026. This add-on helps you prepare: each order gets one e-invoice as XRechnung (CII and UBL), Factur-X/ZUGFeRD (a PDF/A-3 with the XML inside) and Peppol BIS 3.0 UBL, plus e-credit notes. It is for stores and marketplaces that sell to businesses or public bodies in the EU and want those invoices to be machine-readable.
How it works
Enter your seller data once and check the VAT category of each tax. Buyers can add a buyer reference, a Peppol ID and a VAT ID at checkout. When an order reaches a status you choose, its e-invoice is created and frozen; the order page and the e-Invoices list offer the four downloads, the checks and a rebuild button. Customers download it from their order page. Peppol files go to any access point, by upload or through a driver plug-in. Vendors can invoice in their own name.
Features
XRechnung 3.0 in CII and UBL syntax
Factur-X 1.0 / ZUGFeRD 2.x EN 16931 as PDF/A-3 with embedded XML
Peppol BIS Billing 3.0 UBL invoices and credit notes
Gapless numbering, shared with Invoices & Credit Notes when installed
E-credit notes on cancellation or from partial credit notes
Seller data page and buyer reference, Peppol ID and VAT ID fields
VAT categories from your taxes: standard, zero, exempt, reverse charge, export
UN/ECE units per product and measured quantities
Validation log per format with rule codes
Downloads, ZIP export, e-mail attachment and customer downloads
Peppol access point driver interface for one-click sending
Vendors as sellers with their own seller data
What you get
Package
kv_eu_e_invoicing-1.0.0.zip, installed through Add-ons → Manage add-ons
Updates & support
12 months included. Download new versions from your account and install them in Add-ons → Manage add-ons or the Upgrade Center.
License
1 production installation. Staging, dev and localhost are free and unlimited. The add-on keeps working after the update period ends. How licensing works
Compatibility
We list only the builds we install and test on. “Tested” means the full test plan was run on that build; “Supported” means the build is inside the supported range and uses the same hooks.
CS-Cart version and edition compatibility
CS-Cart version
CS-Cart
CS-Cart Ultimate
Multi-Vendor
Multi-Vendor Ultimate
4.22 and later
Testing next
Testing next
Testing next
Testing next
4.21.2
Supported
Supported
Tested
Supported
4.20.x
Supported
Supported
Supported
Supported
4.19.x
Supported
Supported
Supported
Supported
4.18.x
Supported
Supported
Supported
Supported
4.17.2
Tested
Supported
Tested
Supported
Before 4.17.2
Not supported
Not supported
Not supported
Not supported
Last tested build: Multi-Vendor 4.21.2, Oct 25, 2026Tested on: Multi-Vendor 4.17.2, CS-Cart 4.17.2, Multi-Vendor 4.21.2
Requirements
PHP
CS-Cart or CS-Cart Multi-Vendor 4.17.2 – 4.21.x (tested on CS-Cart Ultimate 4.17.2 with PHP 8.1, Multi-Vendor 4.17.2 with PHP 8.1 and Multi-Vendor 4.21.2 with PHP 8.3)
PHP
PHP 7.2.5 – 8.3, as supported by your CS-Cart version. The XML and the PDF/A-3 are written in plain PHP: no PDF library, no extra extension and no external service is needed. The ZIP export uses PHP's ZipArchive, which almost every host has
Requirement
MySQL/MariaDB with InnoDB
Requirement
Optional: Kavio Labs Invoices & Credit Notes (shared numbering and credit notes), EU VAT Number Validation (checked buyer VAT IDs and reverse charge), Sell by Weight & Length (measured quantities and units)
Core changes
None. Hooks and template overrides only
1.0.0
Oct 25, 2026
Latest
Added 13
EN 16931 e-invoices and e-credit notes for orders in four formats: XRechnung 3.0 CII, XRechnung 3.0 UBL, Factur-X 1.0 / ZUGFeRD 2.x EN 16931 (PDF/A-3 with embedded factur-x.xml, written in plain PHP) and Peppol BIS Billing 3.0 UBL.
Automatic creation at chosen order statuses, manual creation on the order page, bulk creation from the orders list.
Gapless numbering: numbers and dates of Invoices & Credit Notes when active (its credit notes become e-credit notes), otherwise own series with format tokens and yearly reset.
Full e-credit notes on cancellation and by hand (own numbering); with Invoices & Credit Notes 1.0.1+ every credit note issued there becomes an e-credit note at once.
Seller data page (VAT ID, tax number, registration ID, legal information, Peppol ID, address, contact, IBAN/BIC, payment terms) with company fallback; per storefront on Ultimate and per vendor on Multi-Vendor.
Buyer reference / Leitweg-ID, Peppol ID and VAT ID profile fields at checkout; EU VAT Number Validation support (VAT ID and reverse charge).
VAT categories from CS-Cart taxes (S, Z, E, AE, K, G, O) with tax mapping and exemption texts; prices with or without tax, order discounts, shipping and payment surcharges; rounding to the charged total; paid orders.
Payment means mapping per payment method; UN/ECE unit per product; measured quantities of Sell by Weight & Length.
Validation log per format (EN 16931, XRechnung BR-DE and Peppol rules) with rebuild.
Downloads for admins, vendors and customers; ZIP export; attachment to the order status e-mail.
Peppol access point driver interface (kv_eu_e_invoicing_peppol_transports hook) with manual and automatic sending.
Multi-Vendor: vendors or the marketplace as sellers.
Domain-bound license check.
Tested on Multi-Vendor 4.17.2, CS-Cart 4.17.2, Multi-Vendor 4.21.2. First release.
Which format should I send?
It depends on your buyer. German public sector buyers (Leitweg-ID) expect XRechnung, usually through their portal or Peppol. Businesses in Belgium and many other countries receive Peppol BIS 3.0 through their access point. In France and Germany, Factur-X / ZUGFeRD is widely accepted because it is a readable PDF and an e-invoice at the same time. The add-on gives you all four from the same document; your tax advisor can tell you what applies to you.
Is a Factur-X PDF a valid e-invoice?
Factur-X (called ZUGFeRD 2 in Germany) is a PDF/A-3 file with the structured invoice data (factur-x.xml, EN 16931 profile) inside. Software reads the XML, people read the PDF. Our test suite checks the PDF part with veraPDF and the XML with the official rules.
Does the add-on send e-invoices through Peppol?
Not on its own: sending needs an account with a Peppol access point, and providers differ by country and price. You can download the Peppol UBL file and upload it to your provider, or install a driver for your provider (see Developer notes) and send with one click or automatically.
What does the validation log check?
The rules your store data can break: seller and buyer IDs and addresses, electronic addresses, VAT categories and their required IDs, payment details (IBAN for credit transfer), totals, and the extra rules of XRechnung (contact phone and e-mail, buyer reference) and Peppol (electronic addresses, Belgian enterprise number and GLN check digits). The file structure is generated to the specifications and tested with the official validators.
A Peppol card says "Needs attention" for a consumer order. Is that a problem?
No. Consumers have no Peppol address, so a Peppol file cannot be sent to them. Use Factur-X or XRechnung for such orders; the Peppol card matters only for business buyers that receive through Peppol.
The buyer reference is the order number. Is that right?
XRechnung and Peppol require a buyer reference. Public buyers in Germany must give their Leitweg-ID, which they enter in the Buyer reference / Leitweg-ID field at checkout. For other buyers the add-on uses the order number (setting Buyer reference when the buyer gave none).
Prices in my store include VAT. Are the amounts right?
Yes. e-Invoices use net amounts per line; the add-on removes the tax of each line (the stored tax, or by the rate), splits order discounts over the VAT rates, adds shipping and the payment surcharge with their own tax, and recalculates the VAT per rate. If CS-Cart rounded the order total differently, the difference is written as rounding so the amount due matches what the customer paid.
How are reverse charge and exports handled?
When a buyer with a VAT ID from another EU country orders without tax being charged, the lines get the category Intra-community supply (K, goods) or Reverse charge (AE, services; setting). With EU VAT Number Validation, its decision for the order is used. Sales without tax to buyers outside the EU are exports (G). The required exemption reasons and codes are added automatically.
Can I change an e-invoice after it was created?
Fix the data and use Rebuild from order on the document page; the number and date stay the same. Once your buyer has received the document, correct it with a credit note and a new invoice instead.
Does it work with Invoices & Credit Notes?
Yes, and they are made for each other: the e-invoice uses the same number and date as the PDF invoice, and every credit note there (full, partial, return, wallet refund) becomes an e-credit note with the credited lines. Without it, this add-on numbers its own e-invoices and creates full credit notes on cancellation.
Does it work with EU VAT Number Validation and Sell by Weight & Length?
Yes. Checked VAT IDs and the reverse-charge decision come from EU VAT Number Validation; measured quantities and units (kg, m, l ...) from Sell by Weight & Length.
Does it work with the full page cache of CS-Cart 4.21?
Yes. The add-on adds nothing to cached pages; customer download links are on the account order page only.
Does it slow down checkout?
No. The e-invoice is created when the order reaches the configured status, in a few milliseconds; files are generated only when someone downloads them or an e-mail attachment is due.
What happens if the license lapses?
Without a valid license (no key after the 14-day start period, an invalid or revoked key, a domain the license does not cover, or no successful check for 14 days), no new e-invoices or e-credit notes are created, nothing is attached to e-mails and nothing is sent over Peppol; e-invoices created so far stay downloadable for you, your vendors and your customers. Once the license is valid again, everything works again.
The admin panel shows a license notice.
Open Add-ons → Manage add-ons → EU e-Invoicing → Settings → License. The status line says what is wrong: no key, a key for another add-on, a revoked license, or a domain that the license does not cover. Fix it and click Check now. See License.
Does the add-on work on my staging copy?
Yes. Subdomains of your licensed domain (for example staging.yourstore.com) and local development hosts (localhost, private IP addresses, .local, .test) are covered by the same license.
Does the license check slow down my storefront or checkout?
No. The check runs in the admin panel or from cron, once a day. The storefront never runs it.
EU Withdrawal Button & Returns PortalHelps you provide the online withdrawal function: a "Withdraw from contract here" button, a two-step statement and a dated acknowledgement.
$69
Also from Kavio Labs
Available now and coming next, tested on the same CS-Cart builds.