stephanstapel/ZUGFeRD-csharp

TaxExemptionReasonCodes aren't upper-case

Closed this issue · 0 comments

tipa commented

The ZUGFeRD validation website (https://www.zugferd-community.net/en/open_community/validation) now redirects to validation website: https://www.portinvoice.com/
When validating a reverse charge invoice with that tool, the following warnings are emitted:

[BR-CL-22]-Tax exemption reason code identifier scheme identifier MUST belong to the CEF VATEX code list. Please be aware, that the code list is case-sensitive.
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax/ram:ExemptionReasonCode
[CEF-VATEX-1] The specified ExemptionReasonCode >vatex-eu-ae< shall not be combined with the CategoryCode >AE<.
/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:ApplicableTradeTax

The library currently writes the reason code in lower-case:

return codes.ToString("g").Replace("_","-");

When changing the string to upper-case, both warnings disappear in the "XML.VALITOOL".

In the code list xlsx file from the Factur-X specification, the VATEX reason codes are also upper-case.
Also, the EU publishes the VATEX list with upper-case reason codes (see under "VATEX code list"): https://ec.europa.eu/digital-building-blocks/sites/display/DIGITAL/Registry+of+supporting+artefacts+to+implement+EN16931