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.
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.
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.
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.
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.
And don't forget to have fun.
Kind regards,
Your Mustang Team
Jochen Stärk
Chief Mustangproject.org ZUGFeRD Amatuer
jstaerk[at]usegroup.de