ZUGFeRD / mustangproject

Open Source Java e-Invoicing library, validator and tool (Factur-X/ZUGFeRD, UNCEFACT/CII XRechnung)
http://www.mustangproject.org
Apache License 2.0
202 stars 113 forks source link

Missing VAT ExemptionReasonCode #345

Closed cgimenez closed 10 months ago

cgimenez commented 10 months ago

Hi all, the legitimate (AFAIK) code VATEX-EU-79-C is missing from the schematron rules.

This code is included in the legitimate codes of French Schematron config files, but not in Mustang ones As one can see, for the BASIC profile : https://github.com/ZUGFeRD/mustangproject/blob/866ef8da823390f463cc0139d6bd56faf7d37632/validator/src/main/resources/schematron/ZF_221/FACTUR-X_BASIC_codedb.xml#L4496

The list starts with VATEX-EU-132 which is the second row of the UE doc I mentioned

jstaerk commented 10 months ago

These files are not Mustang's but the official rulesets from ZUGFeRD. If you send me an example which does not work but should and the list of missing codes I can upstream your request.

Fun fact: they declared the "current" code lists valid but only publish them with every new ZUGFeRD release, so if your codes got added between the 2.2.1 release and now there is a certain likelyhood that they will be added anyway in the next version.

cgimenez commented 10 months ago

Oh I see... No unfortunately I don't have a working example yet - I've integrated Mustang in my Ruby test suite and stumble upon this anomaly, not a big deal but it would make sense for ZUGFeRD to integrate this VAT exception code (which is exactely the reason I need to use it : Repayment of expenditure), provided that it can be tracked on several documents amongst UE countries (eg. this one dated May 2023 : https://docs.peppol.eu/poacc/billing/3.0/codelist/vatex/)

So, if you're in touch with them would be worth to tell them that this specific code is missing

Thanks for your hints ;-)

jstaerk commented 10 months ago

Hi, just of curiosity how do you use java out of ruby?

Note besides 1: apparently we're talking about VATEX-EU-79-C. on community support: it would have to wait until somebody feels encouraged, commercially I could draft you a offer and these details usually go in the three-digit-euro-amounts.

Note besides 2: it only seems to be present in the ZUGFeRD extended profile and even then it is optional image

You link Peppol, in case you need it in UBL you most likely need Mustang to write UBL in the fist case https://github.com/ZUGFeRD/mustangproject/issues/320, or if you want to validate UBL you need #337 first.

cgimenez commented 10 months ago

About integrating Mustang it's very simple - my test suite exercice the whole invoicing stack, which at some point generates a Factur-x PDF. Then the test suite calls the Mustang executable as a cmd line process, capture the xml output, parse it then if errors are detected pretty print them and raise a test failure

About the missing VATEX-EU-79-C code that's not a big deal, even if it's a trick I use a different code in the test suite (one that don't make Mustang complaining) and VATEX-EU-79-C in production.

In the French Factur-x documentation reference (published by the FNFE and FeRD) the ExemptionReasonCode (whilst optionnal) is clearly mentionned as legitimate in the BASIC profile (which is the one I targeted)

About Peppol, I mentioned their page just to show that VATEX-EU-79-C is a legitimate code in the "nomenclature" of VATEX codes - not really Peppol related I must confess.

Nevermind thanks a lot to all people who maintain Mustang : the validator have been a life saver for me. It's a shame that the french side of Factur-x (the FNFE) don't promote it... In fact Mustang, AFAIK, is never mentioned anywhere in all the documents I have stubled upon french side (or I'm deadly blind ;-) ).