Overview
In this article, you will learn interesting facts about electronic invoicing, its formats (ZUGFeRD, Factur-X and XRechnung) and how to use our software component List & Label for e-invoicing.
Klicke hier für den deutschen Artikel.
The creation and delivery of an invoice is increasingly less often done in the traditional way of paper printing and sending by post. More and more often, invoices are issued completely electronically, which brings various ecological and economic advantages. This so-called e-invoice (electronic invoice) is processed completely electronic and preferably automatic. An e-invoice is issued, sent and received digitally. Often, a PDF invoice is created and sent via e-mail. This is then read out by the recipient, usually with special software, and transferred to the accounting department. In order to be able to automate this process – in particular the reading and transmission of invoice information – standardized formats are used, which are given to the e-invoice when it is created. ZUGFeRD, Factur-X and/or XRechnung are often mentioned in this context. In the following, you can find out which formats are used and how you can create e-invoices with our tool List & Label.
What is ZUGFeRD?
ZUGFeRD is an acronym. It’s a mixture of German and English words and stands for “Zentraler User Guide des Forums elektronische Rechnung Deutschland”. The German Federal Ministry for Economic Affairs and Energy has launched the Forum for Electronic Invoicing Germany (FeRD), a data format for electronic invoice exchange.
This is a hybrid data format that displays the invoice as a PDF format that can be read by humans and also contains the invoice data as a structured XML file in the PDF document. Automated invoice processing is possible by reading out the XML data. The PDF itself is provided in the PDF/A-3 standard. This allows the XML file itself to be embedded and is also considered a long-term archive format.
The initial focus of ZUGFeRD was on the business sector and was developed with this in mind. However, ZUGFeRD can also be used to meet specific requirements of administrations and authorities, as the “XRechnung” profile has been supported since version 2.1.1 (more on this later). This means that the hybrid format has a very wide range of applications in the B2B, B2C and B2G (Business to Government) sectors.
What is Factur-X?
Factur-X is the common name in France for the Franco-German standard for hybrid electronic invoices and is fully compatible and technically identical to ZUGFeRD version 2.1. The standard is compliant with the European standard EN 16931, which defines the standards and technical rules for electronic invoicing in Europe to ensure interoperability and legal compliance.
What is XRechnung?
The XRechnung format, which is popular in Germany, is a data exchange standard for electronic invoices and is developed and provided by KoSIT (Coordination Office for IT Standards). It is mainly used for the electronic exchange of invoices between companies and German authorities (B2G). However, unlike the ZUGFeRD and Factur-X formats, XRechnung is not a hybrid format. It consists of a structured XML data format that can be used for automated processing.
How do the ZUGFeRD, Factur-X and XRechnung formats differ?
The data structure of all three formats is based on the standard EN 16931 mentioned above. In ZUGFeRD 2.1, this is controlled via the “EN 16931” profile of the same name. In addition to the requirements of this standard, XRechnung defines 21 national business rules at national level and therefore fulfills the requirements for German authorities and administrations. For example, the BT-10 element, known as the “buyer reference”, which must contain the so-called routing ID, is mandatory for XRechnung.
ZUGFeRD was developed to meet the needs of the economy and is used for B2C and B2B. However, since the release of version 2.1.1, the integrated “XRechnung” profile can also be used to meet the specific requirements of administrations and authorities.
With ZUGFeRD, different content requirements for electronic invoicing can be specifically controlled via profiles, for example to map low requirements (BASIC) or increased requirements (Extended). This makes it possible to optimize the exchange of invoices.
The most significant difference between the ZUGFeRD and XRechnung formats is that XRechnung only consists of a structured XML file and is therefore ideal and sufficient for automated further processing. However, it is not possible to quickly view such an e-invoice via PDF. This is where the strength of ZUGFeRD’s hybrid format comes into play. It consists of a human-readable PDF document in addition to the embedded structured XML data.
What does List & Label offer for ZUGFeRD, Factur-X and XRechnung?
List & Label is the ideal complement to the ZUGFeRD SDK. This SDK can be used to create and validate the required XML files. List & Label then provides the additional component required for ZUGFeRD generation: the output in a human-readable format.
List & Label’s support for electronic invoice formats comes into play during PDF export. As a result, the ZUGFeRD format quickly comes to the fore. However, as ZUGFeRD is compatible with Factur-X and also supports the ‘XRechnung’ profile, all three e-invoice formats can be implemented when exporting PDFs with List & Label.
List & Label supports the hybrid format of ZUGFeRD directly and Factur-X and XRechnung indirectly. The output is always a PDF export with an embedded and structured XML file, which must be provided by the application.
PDF document
As usual, List & Label provides the PDF document as a PDF export. It’s based on the form created with the Designer.
XML file
As List & Label itself is database independent for data supply and no logical information of the registered data is known, List & Label itself cannot create the XML file of the e-invoice. The XML file must still be created and provided by the application itself and the XML structure must be available according to the with the CII standard. The UBL standard is not supported at this time.
PDF export specific options are available to determine the appropriate format for PDF export from List & Label. The following options are important:
PDF.ZUGFeRDXmlPath
Determines the XML file to be embedded.
PDF.ZUGFeRDVersion
Defines the version of ZUGFeRD to be used.
PDF.ZUGFeRDConformanceLevel
Determines the ZUGFeRD profile of the XML file to be embedded.
PDF.Conformance
Specifies the PDF version and should be PDF/A-3b for ZUGFeRD. However, if the PDF.ZUGFeRDXmlPath option is used, the appropriate PDF version is set automatically.
An overview of the individual options can be found in the programming reference in the chapter for the PDF export.
ZUGFeRD 2.1 with “Extended” profile
// create export configuration
ExportConfiguration exportConfiguration = new ExportConfiguration(
LlExportTarget.Pdf, "Export.pdf", "invoice.lst");
// define ZUGFeRD 2.1 options
LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDVersion, "2.1");
LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDConformanceLevel, "EXTENDED");
LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDXmlPath, "ZUGFeRD-invoice.xml");
// start export
LL.Export(exportConfiguration);
ZUGFeRD 2.1 with “XRechnung” profile
// create export configuration
ExportConfiguration exportConfiguration = new ExportConfiguration(
LlExportTarget.Pdf, "Export.pdf", "invoice.lst");
// define ZUGFeRD 2.1 options
LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDVersion, "2.1");
LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDConformanceLevel, "XRECHNUNG");
LL.ExportOptions.Add(LlExportOption.PdfZUGFeRDXmlPath, "ZUGFeRD-invoice.xml");
// start export
LL.Export(exportConfiguration);