PEPPOL-EN16931-R005

VAT accounting currency code MUST be different from invoice currency code when provided.

error: the document is invalid Peppol documentation ↗

Why it fails

  • The VAT accounting currency (cbc:TaxCurrencyCode, BT-6) is the same as the invoice currency.

How to fix it

Leave cbc:TaxCurrencyCode out when VAT is accounted in the invoice currency. It is only for invoices in one currency whose VAT is reported in another, such as an invoice in USD from a seller who accounts VAT in EUR.

What the rule checks

As the rule set's publisher wrote it. The rule runs on every element the context matches, and fails where the test is false; the validator reports the line of that element.

Context
cbc:TaxCurrencyCode
Test
not(normalize-space(text()) = normalize-space(../cbc:DocumentCurrencyCode/text()))

Checked with Peppol BIS Billing 3.0 Invoice, Peppol BIS Billing 3.0 Credit Note

Context
ram:ApplicableHeaderTradeSettlement
Test
not(ram:TaxCurrencyCode) or normalize-space(ram:TaxCurrencyCode/text()) != normalize-space(ram:InvoiceCurrencyCode/text())

Checked with XRechnung 3.0 Invoice (CII)