Mustang 2.11.0

Yesterday, May 22nd 2024 we released version 2.11 of our cross platform e-invoicing library/validator/tool Mustangproject.

Refactorings/Updates

  • EN16931 validation 1.3.12 codelists v11 #357
  • Fonts removed #358
  • invoice’s getSender/getRecipient() now return tradeparty no IZUGFeRDExportableTradeParty
  • #314 ZUGFeRDInvoiceImporter additional constructor

Issues/Improvements

  • InvoiceImporter UBL to also parse contacts and other UBL improvements
  • (first) IBAN is now parsed into sender’s getBankDetails
  • Gross price removed if equal net https://github.com/ZUGFeRD/mustangproject/pull/369 / surrendered to XRechnung 3
  • compromises, e.g. no longer put gross amount if it does not deviate from net

New features

  • ZUGFeRDImporter to also accept xml files (previously that needed to be run through XMLImporter)
  • Xrechnungimporter to also read from filename, inputstream
  • Support inputstreams https://github.com/ZUGFeRD/mustangproject/pull/379
  • be able to programmatically access validation messages https://github.com/ZUGFeRD/mustangproject/pull/382
  • added cash discount write support (new class, previously only possible for XRechnung, not ZF Extended, using a manually encoded setPaymentTermDescription)

Germany introduces mandatory B2B e-invoices 2025-2028

On Friday, 2024-03-22, the german Federal Council (Bundesrat) passed the law on statutory domestic B2B e-invoicing which will ban paper and PDF invoices without Factur-X between german companies as of 2028. Background

We took this as an occasion to relaunch the (inofficial) https://ZUGFeRD.org/ page, which still lists open source tools but now also features a navigation and has a (english) FAQ you can contribute to.

Mustangserver 1.3

Today, march 24th, 2024, we released a set of changes to both our infrastructure and our Mustangserver server application.

Updates to the infrastructure

  • There are now minimum Service Level Agreements (SLAs) in our contract.
    In the basic configuration we only guarantee 99% availability but we can talk if you need more. We now also have more scalable prices.
    The amount of operations per month when we still consider someone a “standard” customer has been increased five-fold.
  • Authentication using API keys: API keys are easier to use than our standard oauth2 authentication and they can be restricted by time, referrer or IP address. This was possible before but we now resolved the last issues and added it to our documentation.
  • There is now end-to-end-monitoring on both APIs, Mustangserver and Mustangserver-docs. Previously we monitored the OS and the process only, but not it’s responses, which in very rare cases would give us false negatives. Now we periodically perform a full round trip including actual operations on the api manager and the server process.
  • Load balancing is now tested and enabled: We tested the already existing load balancer, now we really “armed” it.

Application updates

Among others,

  • we updated the Phive validator to now also validate e.g. german XRechnung 3.0.1
    (for CII this was previously possible using Mustangservers internal /validate validation),
  • we updated the documentation e.g. on the visualization, i.e. on xmltohtml
  • we made it easier to log messages in a massively parallel scenario and
  • we added a endpoint “combine”, which adds a invoice object as JSON directly to
    a PDF/A file. Previously there was only combineXML, which required the JSON to be converted
    to XML in a previous step.

B2B Situation in Germany

The mediation council has suggested yesterday to introduce mandatory domestic B2B e-invoicing in Germany two years later than originally anticipated, with an obligation to read as of 2025 and write as of 2026. The german parliament may confirm this compromise on 2024-02-23 and the federal council should then ratify on 22.03.2024.

Update on 24.02.2024: I was corrected that the deadline remains 2025/2026, in the original version of this post on Thursday, 22 February I had incorrectly interpreted a requested two year delay to 2027/2028.

Mustangserver 1.2

Mustangserver 1.2, available since January 8th, 2024, sported minor changes, the only differences being that /combineXML now supports XRechnung 3 as output and
/parse as well as /invoice2XML accordingly support email addresses of tradeparties, not only of their contacts: Already previously one could validate XRechnung 3.0.

This new version has now been set as default on Monday, 29 January 2024.

Mustang 2.10.0

The new version of Mustangproject, 2.10.0, released today, December 30th 2023, adds write support for XRechnung 3.0.1, which becomes mandatory for german B2G invoices as of February 2024 (issue #343). Users will need to add email addresses for also for tradeparties themselves, not only for their contacts.
Additionally two minor issues were fixed, concerning PDF/A3 input from inputstream and the commandline is now again capable opf producing Factur-X 1 files, closing issue #354.

Mustangserver 1.1

On Saturday, December 9th, 2023, during the planned maintenance window of Mustangserver we released version 1.1.
This release

  • Renames a parameter for consistency (invoice2XML’s parameter standard was renamed to format)
  • Improves exception handling and also returns exception messages where they may have been discarded in the past
  • The internally used header parameter Username which was previously listed optional has now been removed altogether from the interactive demo version. The parameter had been overwritten internally by the API management anyway but it was confusing for users who may have thought they had to enter something, which caused errors, anyway.
  • The endpoint CombineXML transparently now also accepts PDF/A-3 input files for Factur-X output. This is partly due to the fact that we’ve seen that PDF/A-3s created with the mustangserver-docs endpoint in some cases (heavy use of big graphics) could be up to 80% smaller in size compared to their PDF/A-1 counterparts, presumambly, due to compression algorithms introducted between those versions.

Additionally, during the maintenance we

  • updated our SSL certificates, which would otherwise have been due on December, 23rd
  • We now by default redirect to “devportal”, i.e. the API “market place”, when accessing api.usegroup.de. Previously the build-in auto-redirection was to “publisher” (part of the administration) which was unfortunate for users who had used self-sign-up and may have been confronted with spurious lack-of-privileges-messages.
  • We restricted access to Mustangserver-docs, the PDF/A-generating endpoint. Existing users still have access but new users, in particular those using self-sign-up, will have to specifically request access in the future if they require to test it, as it is a premium feature anyway.

Mustang 2.9.0

Mustangproject version 2.9.0 was released today, November 27th, 2023.
New features include

  • Previously one had to specify if the input was PDF/A-1 or PDF/A-3, now with #341 we have input PDF-A Version autodetection
  • It can now validate XRechnung 3.0.1 #347

and it comes with the following fixes

  • Missing closing tag in BankDetails when there’s no BIC number #339
  • PDF/A-3 input now also sets a default ZUGFeRD version

The following known issues remain:

  • the Xrechnung validation still only covers the CII version #337,
  • it does not yet write XR 3.0 #343 and
  • there are still known ZUGFeRD upstream issues with validation in particular affecting XRechnung #316

Mustangserver 1.0

On Friday, September 29th 2023, on the occasion of the ninth ZUGFeRD developer days, we released Mustangserver 1.0, a e-invoicing REST API which allows users to validate, read, write and convert electronic invoices over the network in 56 programming languages. It supports XRechnung, Factur-X, ZUGFeRD and Order-X and is prepared for the planned german mandatory B2B invoices.

More information

On the same conference, Mustangproject, the open source sister project of Mustangserver, was awarded a Best in Practise Award. Thank you very much!

ZUGFeRD Developer Days Aftermath

On Monday, October 2nd, 15:00 CET, we’ll meet online and discuss what has been said on the ZUGFeRD Developer days 28./29.09. in Bielefeld and clarify open questions on


https://jochenstrk.my.webex.com/jochenstrk.my/j.php?MTID=m116aca8ef681a3507ddd4eb7581bd375
Montag, 2. Oktober 2023 15:00 | 1 Stunde | (UTC+02:00) Amsterdam, Berlin, Bern, Rom, Stockholm, Wien
Meeting-Kennnummer: 2361 186 6413
Passwort: Gwe6fJBGm45 (49363524 über Telefon- und Videosysteme)

Über Videosystem beitreten
Wählen Sie 23611866413@webex.com
Sie können auch 62.109.219.4 wählen und Ihre Meeting-Nummer eingeben.

Über Telefon beitreten
+44-20-7660-8149 United Kingdom Toll

Zugriffscode: 236 118 66413;-)

See you there,
Jochen