Rules / PEPPOL-EN16931-R051 · Markdown
PEPPOL-EN16931-R051
PEPPOL BIS Billing 3.0 layer: peppol
Checked against Peppol BIS Billing 3.0 2026.5
What does PEPPOL-EN16931-R051 mean? 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).
Why did my invoice fail PEPPOL-EN16931-R051?
Every currencyID attribute in the document must match the invoice currency code (BT-5, DocumentCurrencyCode), with the single exception of the invoice total VAT amount expressed in the VAT accounting currency (BT-111). This guarantees all monetary amounts are stated in one currency, avoiding ambiguity except for the deliberately dual-currency VAT total.
Official rule text
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).
Common causes
- A monetary amount carries a stale or default currencyID (e.g. USD) different from DocumentCurrencyCode.
- Mixed currencies across line amounts, tax amounts, or allowances.
- The BT-111 exception amount was given a currencyID equal to the document currency, or a non-BT-111 amount was tagged with the accounting currency.
How do I fix it?
Set every currencyID to BT-5 (e.g. EUR): if <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>, then all amounts use currencyID="EUR"; only cac:TaxTotal/cbc:TaxAmount for BT-111 may use the accounting currency.
Related rules
PEPPOL-EN16931-R001 · PEPPOL-EN16931-R002 · PEPPOL-EN16931-R003 · PEPPOL-EN16931-R004 · PEPPOL-EN16931-R005 · PEPPOL-EN16931-R007 · PEPPOL-EN16931-R008 · PEPPOL-EN16931-R010
Paste it into the live demo, or call POST /v1/validate. See the quickstart.