Peppol BIS Billing 3.0.21 · UBL

PEPPOL-EN16931-R051: All currencyID attributes must have the same value as the invoice currency code (BT-5),…

Peppol BIS Billing 3.0.21 · UBL

fatalformat

Original rule text

[PEPPOL-EN16931-R051]-All currencyID attributes must have the same value as the invoice currency code (BT-5), except for the invoice total VAT amount in accounting currency (BT-111).

Stored validation assertion
@currencyID = $documentCurrencyCode

PEPPOL-EN16931-R051 is a fatal rule in the format layer of Peppol BIS Billing 3.0.21 · UBL. An invoice that breaks it is rejected. It refers to BT-5, BT-111.

What this rule requires

In UBL, the test requires each listed amount element (cbc:Amount, cbc:BaseAmount, cbc:PriceAmount, cac:TaxTotal[cac:TaxSubtotal]/cbc:TaxAmount, cac:TaxSubtotal/cbc:TaxAmount, cbc:TaxableAmount, cbc:LineExtensionAmount, cbc:TaxExclusiveAmount, cbc:TaxInclusiveAmount, cbc:AllowanceTotalAmount, cbc:ChargeTotalAmount, cbc:PrepaidAmount, cbc:PayableRoundingAmount, cbc:PayableAmount) to have a @currencyID attribute equal to the invoice currency code (BT-5). The rule message adds an exception for the invoice total VAT amount in accounting currency (BT-111), but the test itself does not exclude that element; as written, the test will also fail if BT-111 has a different currencyID.

How to fix

Ensure every listed amount element has a currencyID attribute matching the invoice currency code (BT-5). If your document contains an invoice total VAT amount in accounting currency (BT-111) with a different currency, note that the message permits it but the test as shown does not; check whether your validator implements the exception, or set the currencyID to match BT-5 to pass this rule.

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-R051.

Validate an invoice against these rules · All release changes