warningEN 16931syntax binding ruleUBL
A UBL invoice should not include a Price Allowance Reason
A price-level allowance carries a reason text, which EN 16931 is present, but EN 16931 does not map it to anything, so the receiver has no defined way to interpret it.
Remove AllowanceChargeReason from Price/AllowanceCharge.
UBL — context /ubl:Invoice | /cn:CreditNote
not(//cac:Price/cac:AllowanceCharge/cbc:AllowanceChargeReason)
Nothing is stored, and the whole invoice is checked, not just this rule. A PDF only works if it is Factur-X / ZUGFeRD — a PDF with the invoice XML inside it.