/b2b

Samples for german domestic B2B e-invoices

Apache License 2.0Apache-2.0

Samples for Statutory German Domestic B2B E-Invoices

As german businesses have to be able to accept/read/understand domestic B2B e-invoices as of January 1st, 2025 (the law, in particular art. 23 on p. 23) and a bit of it's
background) and samples are nowhere in sight this is an attempt to demonstrate how temporary, makeshift, inofficial samples can be created based on a part of AWV's ZUGFeRD Infopaket using Mustang until someone feels responsible to release official samples.

Background

We need to parse invoices calculated according to the rules laid down in EN16931-2 using the known codelists as attributes. According to EN16931-1, we have to support the XML syntaxes CII and UBL. Additionally, according to a letter of the BMF, we have to assume that we also have to be able to parse CII embedded into PDF/A files, i.e. Factur-X~ZUGFeRD. I.e., we create three directories, FX for Factur-X, CII and UBL.

1. PDF

Get the ZUGFeRD 2.2 samples by downloading the Infopaket

We put the samples (Factur-X=PDF files) from the EN16931 and XRechnung reference profile (they are EN16931 as well) in the FX folder.

2. CII

Get Mustang

We can either use Mustang --action extract or we open the files in a PDF reader and save their embedded factur-x.xml's (or, in case of the xrechnung reference profile, the xrechnung.xml) as .cii.xml.

3. UBL

We switch to the UBL directory and use --action ubl to convert all CII files to UBL. (Mustang uses Philip Helger's great open source CII2UBL for that purpose there).

Please note that --action validate will work on FX and CII but not yet on UBL files (issue), the offline viewer Quba should still be capable to render all three formats.

4. Do something with it

And don't forget to have fun.

Kind regards,
Your Mustang Team
Jochen Stärk
Chief Mustangproject.org ZUGFeRD Amatuer
jstaerk[at]usegroup.de