In this article, we would like to inform you about the e-invoicing obligation from 2025 in germany and the implementation in conzept 16
You can find an example of how to create an e-invoice in ZUGFeRD format in the CodeLibrary under the name ZUGFeRD_Basic.
E-Invoicing mandatory
According to the Growth Opportunities Act, mandatory e-invoicing will be introduced for domestic B2B sales (sales between companies) from 1 January 2025. In addition, e-invoicing will also become mandatory for cross-border B2B business within the EU. The Growth Opportunities Act redefines the electronic invoice. In future (from 2025), electronic invoices must be created in a structured electronic format that fulfils the European invoice standard EN16931 and thus enables electronic processing. A purely visual representation of the invoice (e.g. as a PDF) will then no longer fulfil the requirements for an electronic invoice.
What is an e-invoice?
With an e-invoice, invoice information is transmitted electronically in a structured, machine-readable format, received automatically and processed further. This enables end-to-end digital processing from the creation of the invoice to the payment of the invoice amounts. The e-invoice is based on an XML data format, which is essentially used for machine processing.
Which formats are available?
From the perspective of the tax authorities, invoices in accordance with the XStandard (so-called XRechnung) as well as the ZUGFeRD format (from version 2.0.1) generally fulfil the required European format of an e-invoice. Other invoice formats can also fulfil the requirements.
What is ZUGFeRD?
ZUGFeRD is a cross-industry data format for the electronic exchange of invoice data that was developed by the Forum elektronische Rechnung Deutschland (FeRD) – with the support of the Federal Ministry for Economic Affairs and Energy.
As a hybrid data format, ZUGFeRD corresponds to an invoice in PDF/A-3 format with XML attachment and XMP metadata. The actual PDF describes a visual representation of the invoice, i.e. one that can be utilised by humans. The XML attachment, on the other hand, describes a standardised representation of the invoice, i.e. one that can be used by machines. Various profiles can be selected that define the level of detail of the information contained.
Note: For hybrid formats, such as the ZUGFeRD format, which consists of an image file (pdf document) and a structured data record (XML file), the structured part will be decisive in future. In the event of a discrepancy, the data from the structured part will take precedence over the data from the image file.
While in Germany the FeRD (Forum elektronische Rechnung Deutschland) maintains the ZUGFeRD specification for electronic invoices for Germany, in France the FNFE-MPE (Forum National de la Facture Electronique et des Marchés Publics Electroniques) is responsible for maintaining the Factur-X specification for electronic invoices in France.
In 2020, ZUGFeRD was harmonised with Factur-X
Is a layout prescribed for a ZUGFeRD invoice?
For ZUGFeRD invoices, there are no fixed formats or layouts for the PDF file. However, all relevant invoice and profile data must be contained both in the PDF file and in the XML file (as a content-related multiple part). The structure of the embedded XML file is fixed and there is no provision for individual customisation.
Which ZUGFeRD profiles are available?
There are five ZUGFeRD profiles, including BASIC, EN 16931 (COMFORT) and EXTENDED, which differ in the scope of the standardised data and in terms of invoice conformity in accordance with the German Value Added Tax Act (UStG). In order to create EU-compliant electronic invoices, invoicing with the EN 16931 profile is recommended. The EN 16931 (COMFORT) profile fully maps EN 16931-1 and focusses on the core elements of an electronic invoice.
If the needs of your customers cannot be fully covered by the EN 16931 format, the EXTENDED profile is recommended. This is an extension of EN 16931-1 to support more complex business processes (invoices in which several deliveries / delivery locations are invoiced, structured payment terms, additional information at item level to support stock management, etc.).
A description of the ZUGFeRD profiles can be found at: https://www.ferd-net.de/standards/zugferd-faq
ZUGFeRD in conzept 16
Since version 5.8.06, conzept 16 offers the possibility to create electronic invoices according to the ZUGFeRD specification, as explained in the article ZUGFeRD with conzept 16. The CodeLibrary contains an example for creating a ZUGFeRD e-invoice called ZUGFeRD_Basic.
In the latest version ZUGFeRD 2.2 from 1 March 2022, important elements were added to the EXTENDED profile to improve interoperability with Order-X. In addition, the documentation has been further standardised to highlight the common origin of the two formats.
With version ZUGFeRD 2.3, the validation of the EXTENDED profile has changed. In version 2.3.2, rounding inaccuracies are permitted in the EXTENDED profile, but not in all previous versions. Users of ZUGFeRD EXTENDED are therefore strongly recommended to update to the current version.
The release package of ZUGFeRD version 2.3.2 can be downloaded free of charge – after registration – from the FeRD website at: https://www.ferd-net.de/publikationen-produkte/publikationen/detailseite/zugferd-232-deutsch.
How do the ZUGFeRD versions differ in terms of implementation?
From a technical standpoint, the versions differ in the following features:
- Name of the XML attachment The file name of the XML attachment varies depending on the version:
- ZUGFeRD 1.0: ZUGFeRD-invoice.xml
- ZUGFeRD 2.0: zugferd-invoice.xml
- ZUGFeRD 2.1: factur-x.xml
- ZUGFeRD 2.2: factur-x.xml
- ZUGFeRD 2.3.2 factur-x.xml
- Structure of the XML attachment Some elements of the XML structure have different names or positions, have been added or removed or are only permitted in a more detailed profile.
- XMP metadata Among other things, the metadata defines the version and profile of the selected specification.
How can I ensure that my ZUGFeRD e-invoice is valid?
To ensure that the XML structure is correct, it is advisable to take a look at the respective specification. The individual elements and any dependencies are described in detail there. The info packs also contain XML schemas that can be used to validate the XML data. However, it should be noted that not every error can be recognised! However, in order to check conformity in full, the ZUGFeRD Community Portal, ZF/FX Validation, provides a service which – after registration – can be used to check the entire PDF document for conformity with the specification. When inserting the XML attachment to the PDF document in conzept 16, pay attention to the name belonging to the ZUGFeRD version:
// PDF nach ZUGFeRD 1.0
tPDF->PdfAttachFile('ZUGFeRD-invoice.xml', _PdfAttachAssociateZUGFeRD);
// PDF nach ZUGFeRD 2.0
tPDF->PdfAttachFile('zugferd-invoice.xml', _PdfAttachAssociateZUGFeRD);
// PDF nach ZUGFeRD 2.1
tPDF->PdfAttachFile('factur-x.xml', _PdfAttachAssociateZUGFeRD);
// PDF nach ZUGFeRD 2.2
tPDF->PdfAttachFile('factur-x.xml', _PdfAttachAssociateZUGFeRD);
// PDF nach ZUGFeRD 2.3.2
tPDF->PdfAttachFile('factur-x.xml', _PdfAttachAssociateZUGFeRD);
conzept 16 automatically embeds the XMP metadata matching the selected specification when the PDF document is saved. In the conzept 16 version, it is possible to determine the version of the specification in addition to the profile:
// PDF nach ZUGFeRD 1.0 mit Profil Basic erzeugen
tPDF->PdfClose('Rechnung.pdf', _PdfModePdfZUGFeRD10 | _PdfModePdfZUGFeRDBasic);
// PDF nach ZUGFeRD 2.0 mit Profil Comfort erzeugen
tPDF->PdfClose('Rechnung.pdf', _PdfModePdfZUGFeRD20 | _PdfModePdfZUGFeRDComfort);
// PDF nach ZUGFeRD 2.1 mit Profil Extended erzeugen
tPDF->PdfClose('Rechnung.pdf', _PdfModePdfZUGFeRD21 | _PdfModePdfZUGFeRDExtended);
// PDF nach ZUGFeRD 2.2 mit Profil Comfort erzeugen
tPDF->PdfClose('Rechnung.pdf', _PdfModePdfZUGFeRD21 | _PdfModePdfZUGFeRDComfort);
// PDF nach ZUGFeRD 2.3.2 mit Profil Comfort erzeugen
tPDF->PdfClose('Rechnung.pdf', _PdfModePdfZUGFeRD21 | _PdfModePdfZUGFeRDComfort);
As the metadata in ZUGFeRD versions 2.1, 2.2 and 2.3.2 do not differ, a ZUGFeRD 2.2 PDF document can also be created with the _PdfModePdfZUGFeRD21 option.
Do you already use electronic invoices in your company?
Do you use ZUGFeRD or another solution?
Let us know about your experiences.
If you have any questions, please contact our Support.