Everything you'd want to know before you install.
A detailed look at how DataFirefly Factur-X SW — E-Invoicing for Shopware 6: ZUGFeRD & XRechnung 3.0 works, why we built it the way we did, and the thinking behind the features above.
Electronic invoicing is no longer optional
In Germany, every business has had to be able to receive B2B e-invoices since January 2025, and the issuance obligation rolls out in stages until 2028. B2G already requires XRechnung with a Leitweg-ID. In France, the Factur-X mandate imposes reception from September 2026 and issuance in 2026-2027 depending on company size. If your Shopware shop sells B2B or invoices public authorities, EN 16931 compliant e-invoices are becoming a condition for getting paid.
What native Shopware does not cover
Shopware offers basic ZUGFeRD output since version 6.6.10, but it does not produce XRechnung 3.0, does not handle the Leitweg-ID, does not exist on earlier 6.5 and 6.6 versions, and its seller data is limited to the document settings. DfFacturX is a complete compliance suite: multiple profiles, rich seller data per sales channel, SEPA payment instructions, automatic VAT categories, e-mail attachment and regeneration tooling.
XRechnung 3.0 and Leitweg-ID, no workarounds
Invoicing a German public authority requires an XRechnung XML with a BT-10 buyer reference — the Leitweg-ID — which Shopware has nowhere to store. On activation the plugin installs a dedicated custom field on the customer profile and on the order: enter the Leitweg-ID once on the customer and it is reused on all their invoices, with per-order overrides and a configurable fallback. The generated XML includes the Peppol business process, the BG-6 seller contact and the electronic addresses required by the KOSIT validator.
A hybrid PDF, not yet another document
For the Factur-X and ZUGFeRD profiles, the XML is embedded directly into the invoice PDF generated by Shopware via incremental update: attached factur-x.xml file, AF relationship of type Data, PDF A-3 XMP metadata with the complete Factur-X extension schema. The document media is replaced in place — the PDF your customer downloads from their account or receives by e-mail is the hybrid e-invoice. If an exotic PDF structure prevents embedding, the plugin degrades gracefully: the XML remains available as an e-mail attachment and via console, and a warning is logged.
An accounting model that passes validators
EN 16931 is demanding: net amounts, no negative lines, VAT breakdown per category, totals consistent to the cent. DfFacturX converts gross orders to the net model using Shopware's calculated taxes, turns promotions into document-level allowances with their per-rate breakdown, declares shipping as document charges, and uses the RoundingAmount BT-114 field to absorb any rounding drift: the XML GrandTotal always strictly equals the Shopware order total. Zero rates automatically receive the right category — K intra-community, G export, Z — with an exemption reason.
Automatic, and never blocking
Generation triggers when the invoice document is created, whatever the channel: admin, Flow Builder or API. B2B-only mode restricts generation to business orders. The XML is automatically attached to order e-mails. And by design, an e-invoice error never blocks the creation of the invoice itself: the incident is logged and the df:facturx:generate console command lets you regenerate after fixing, with on-the-fly profile override and XML export to a file.
Validate before going live
The documentation includes a complete validation checklist: gross and net orders, promotion, shipping, intra-community sale with VAT number, export outside the EU. Export the XML with one command and submit it to the KOSIT validator for XRechnung or the Mustang validator for Factur-X and ZUGFeRD. You go live knowing exactly what your customers and their accounting tools will receive.
There are no reviews yet.