Peppol BIS Billing 3.0.21 · UBL

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

fatalformat

Original rule text

[PEPPOL-EN16931-R054]-Only one tax total without tax subtotals MUST be provided when tax currency code is provided.

Stored validation assertion
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