Short description:

From 27 November 2020, it will be mandatory for companies to submit invoices to public contracting authorities electronically. The XML format 'XInvoice' is the standardised format that must be submitted. Until now, the customer has used a processing method for invoices in which XML files are embedded in a PDF file (ZUGFeRD). This means that a document can be read by humans and, after a few processing steps, by machines. However, this does not comply with the latest regulations, according to which an invoice must be exclusively machine-processable. PTA is developing a method in the associated middleware that provides an 'XInvoice', e.g. for sending via email.


The customer's middleware is written in Java using Spring. Using Spring, so-called processors are configured, which take over the processing of the documents in terms of formatting and layout. The documents to be sent are previously written with an associated configuration file from the ERP system SoftM into a database, which is read out in the middleware at the beginning. Testing is carried out by the customer himself. This means that PTA analyses the code and the classes and functions involved. If possible, the functionality of the new functionalities is tested using minimal examples in order to reduce the iterations between the customer and the developers.

Technical description:

The format of the XInvoice corresponds to the current version 2.0.0 of the EU standard EN 16931-1. On the technical side, this corresponds to a formatting of XML files to enable standardised electronic processing. In the case of the customer, the formatting of invoices takes place in separate web services. These are called by the middleware to receive the content of the document. The implementation of the method is based on an existing class of the middleware. This is used to send invoices to customers in PDF format. In addition to the content of the document, the class contains customer-specific information for processing. In order to send an XML document, another class for XML processing is extended by this customer information. Likewise, a new processor is needed to query the XInvoice and create an XML document. It must be ensured that other methods of the middleware, e.g. archiving, are compatible with the XML file received.