fatalEN 16931syntax binding ruleCII
Only one DueDateTypeCode shall be present
The VAT point date code (BT-8) is given more than once with different values. BT-8 describes the whole invoice — it says which event fixes the tax point — but CII carries it on each ApplicableTradeTax group, so every group has to repeat the same code.
Set ram:DueDateTypeCode to the same value in every ApplicableTradeTax group, or leave it out of all of them. Differing codes are a serialiser writing per-category values for something the standard defines once. Note BT-7 and BT-8 are also mutually exclusive with each other — see BR-CO-03.
CII — context /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement
count(//ram:ApplicableTradeTax/ram:DueDateTypeCode) = 0 or count(distinct-values(//ram:ApplicableTradeTax/ram:DueDateTypeCode)) = 1
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.