Open-Source Libraries and Tools

Inofficial page on free Factur-X, Order-X and Deliver-X (and XRechnung) libraries and tools.

ZUGFeRD/Factur-X is a standard to embed machine readable XML in electronic invoice PDFs.

Libraries

Python

  • Akretion’s factur-x is a BSD-licensed library

PHP

C++

.net/ C#

Java

  • Konik GPL Java and C# library for ZUGFeRD 1

  • Mustang is an APL Java and .net library for ZUGFeRD 1 and 2(=Factur-X) and a command-line tool to extract, combine and validate. It’s open-source REST API has been continued commercially.

PDF tools

Creation

  • Ghostscript can also be used to create PDF/A files from ordinary PDF

  • iText RUPS can be used, along with a good hex editor to inspect the PDF internal structure, or a Windows-only alternative

  • MuPDF for windows and linux, mutools show can display simple internal structures

  • Open source AI/invoice recognition InvoiceNet

  • Open source OCR/pattern based invoice recognition invoice2data

Validators

  • FNFE uses a odoo plugin which is based on VeraPDF and the CEN Schematron

  • The ZUGFeRD-community online validation is based on Mustang and embeds VeraPDF and the CEN Schematron as well

  • Philip Helgers open-sourve-validator Phive can validate almost any invoice XML, including XRechnung, unfortunately not covering PDF-hybrid formats

  • VeraPDF, validates PDF-A,

  • Exiftool allows to quickly check PDF/A meta data,

Official Sources

  • The ZUGFeRD Infopaket includes schema and schematron, example files, specs, codelist and a refererence (called technical appendix)

  • The CEN Schematron can be used to validate ZUGFeRD/Factur-X XML

Other tools

ZUGFeRD/Factur-X Creating

ZUGFeRD/Factur-X Consuming

  • Open-source homebanking application: Hibiscus

Display

Miscellaneous

  • Additional data is a python project to support extensions for certain industries like logistics, adding additional information to structured invoices (e.g. the invoice is for kilometres and the additional data contains the amount of miles)

  • Swiss army knife conversion tool, use e.g. it’s commandline tool EIGOR to convert interchangably between CII, UBL and FatturaPA

  • A little python script to remove personal data from CII invoices

  • Philip Helger published a java library to convert UN/CEFACT CII to UBL

  • There is a OpenXRechnungToolbox to visualize and validate XRechnung and Leitweg-IDs

  • There is an interesting parser for the EN16931 specification documents

  • xpdf has a interesting pdfdetach command line tool to extract the XML from the PDF