InvoiceValidator.eu

CII-SR-462

fatalEN 16931syntax binding ruleCII

Only one DueDateTypeCode shall be present

Why it fails

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.

How to fix it

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.

What the validator checks

CII — context /rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement

count(//ram:ApplicableTradeTax/ram:DueDateTypeCode) = 0 or count(distinct-values(//ram:ApplicableTradeTax/ram:DueDateTypeCode)) = 1

Related rules

Part of CII-SR — CII restrictions.

Check your own invoice against CII-SR-462

…or paste the XML instead

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.