PEPPOL-EN16931-R054: Only one tax total without tax subtotals MUST be provided when tax currency code is…
Peppol BIS Billing 3.0.21 · UBL
Original rule text
[PEPPOL-EN16931-R054]-Only one tax total without tax subtotals MUST be provided when tax currency code is provided.
count(cac:TaxTotal[not(cac:TaxSubtotal)]) = (if (cbc:TaxCurrencyCode) then 1 else 0)PEPPOL-EN16931-R054 is a fatal rule in the format layer of Peppol BIS Billing 3.0.21 · UBL. An invoice that breaks it is rejected.
What this rule requires
The rule requires that the number of cac:TaxTotal elements that have no cac:TaxSubtotal child equals 1 when cbc:TaxCurrencyCode is present, and equals 0 when cbc:TaxCurrencyCode is absent. The message focuses on the case with a tax currency code, but the UBL test also covers the case without one. A fatal severity means an invoice or credit note that does not satisfy this condition fails validation.
How to fix
In the UBL invoice or credit note, if cbc:TaxCurrencyCode is present, make exactly one cac:TaxTotal contain no cac:TaxSubtotal; all other cac:TaxTotal elements must have at least one cac:TaxSubtotal. If cbc:TaxCurrencyCode is absent, every cac:TaxTotal must contain at least one cac:TaxSubtotal.
Guidance on this rule. The original text above is authoritative.
Where to go next
No published Peppol BIS Billing UBL release comparison lists a change to PEPPOL-EN16931-R054.
Validate an invoice against these rules · All release changes