Mustang, a ZUGFeRD/Factur-X solution

Mustangproject is a open source library and command line tool for ZUGFeRD/FacturX, a PDF-based format for electronic invoices.

You can support electronic invoices in your own java software with the library or quickly find out how many invoices have metadata, extract or add ZUGFeRD metadata using the command line tool

Mustangproject 1.7.3 was released on 2019-08-01 and supports ZUGFeRD 2, ZUGFeRD 1 and Factur-X 1.

Features

  • Convert PDF/A1 to PDF/A3
  • Read and write ZUGFeRD 1 and ZUGFeRD 2
  • Embeddable java library based on PDFbox
  • Permissive license (APL2, free for use in commercial and noncommercial applications)
  • We try to be particularly
  • The Mustangproject library
    • supports Maven
    • can be embedded in your Java software
  • Command line tool
    • Runs on Linux, Mac OS and Windows
    • Add ZUGFeRD XML to PDF
    • Extract ZUGFeRD XML from PDF
    • Migrate ZUGFeRD 1 to 2 (experimental)
    • Convert PDF/A-1 to PDF/A-3
    • Find out how many PDFs are ZUGFeRD

Valid

Interoperability is very important to us. Our sample invoice not only passes the GEFEG ZUGFeRD validator and 3-Heights™ PDF Validator Online Tool . We fixed a small, unspectacular and harmless violation of the PDF/A-3 standard which is e.g. still present in the official ZUGFeRD sample files.

Stable

Mustangproject has a relative high abstraction level, and you e.g. don’t have to manually specify the invoice type to „380“ like in this sample from Konik sample


											invoice.setHeader(new Header() 
											.setInvoiceNumber("20131122-42") 
											.setCode(_380); 
										

(source: http://konik.io/blog/2016/Konik-1.2.9.html)

Our business process abstraction which allows you to upgrade the library and switch between the ZUGFeRD versions with a single command.

Reading of ZUGFeRD data has been implemented using Xpath (a XML query language).
This means that Mustangproject can parse ZUGFeRD files from before version 1.0 to including version 2 using the same code base.

Free

Open-Source licenses can be restrictive or permissive. While e.g. Konik is based on the „viral“ Gnu Public License, Mustangproject is even more free, based on the permissive Apache Public License, which allows you to even sell commercial software including Mustangproject without paying us a single cent in license fees.

Awards

In 2015 the Open-Source Business Alliance awarded
Mustangproject with the “OSBAR” in gold to direct
“deserved attention” (verdiente Aufmerksamkeit) to it. Thank you!
Picture of the Open Source Business Award OSBAR

Comparison

This is a matrix comparing some open source ZUGFeRD libraries:

Mustang Konik Factur-X Python library
Mustangproject Logo Konik Logo
Version 1.7.3 1.2.9
Publication date 01.08.2019 25.08.2016 28.07.2017
Basis Java PDFBox Java (and .net) itext, PDFBox Python
Human language English English English
Source format PDF-A1, PDF-A3 PDF, PDF-A1, PDF-A3 PDF-A1
Business processes Yes No No
Profile Extended Extended ?
Architecture JAXB/Plain JAXB Python 🙂
Licence APL (permissive) GPL (restrictive) and commercial APL (permissive)
Discounts possible Yes(?) possible
Deposits possible Yes(?) possible
Dunning fees possible Yes(?) possible
Other fees possible Yes(?) possible
Official Sample Mustang
Konik
None
Validator Fehler/Warnungen 0/0 1/1
PDF validation errors 0 1 Not possible