Peppol error codes

PEPPOL-EN16931-R051: currency of an amount differs

Error code PEPPOL-EN16931-R051 means: an amount is in another currency than the invoice currency.

Rule set: Peppol BIS Billing 3.0 · Severity: error (fatal): an Access Point rejects the invoice · Checked against the official rules of May 2026

What does PEPPOL-EN16931-R051 mean?

The validator shows this message (as worded in the official rules):

[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).

Every amount in the invoice has a currencyID attribute. On Peppol it must equal the invoice currency everywhere (BT-5, cbc:DocumentCurrencyCode). The only exception is the VAT total in accounting currency (BT-111): if you invoice in dollars, you may also state the VAT amount in euros.

Common causes

  • The invoice is in a foreign currency, but some amounts stayed in euros.
  • A template hard-codes currencyID to EUR.
  • During a conversion, the currency of some amounts was not updated.

How to fix it as the sender

  1. Use the same currency as cbc:DocumentCurrencyCode for all amounts.
  2. To also show the VAT amount in euros, use cbc:TaxCurrencyCode and a second cac:TaxTotal without subtotals.
  3. Validate again.

Received an invoice with this error?

An invoice with this error is not compliant. Ask the supplier for a corrected invoice and do not change the XML yourself.

Example in the XML

❌ Wrong

<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
...
<cbc:PayableAmount currencyID="USD">363.00</cbc:PayableAmount>

✅ Correct

<cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode>
...
<cbc:PayableAmount currencyID="EUR">363.00</cbc:PayableAmount>

Both snippets come from a complete test invoice that we checked with our validator: the wrong version gives exactly this message, the correct version no errors at all.

Good to know

If you invoice in a foreign currency, Belgian rules require the VAT amount in euros as well. That is exactly what the exception in this rule is for.

Check your invoice

Drop your XML into the free validator. You see right away whether this error still occurs, with a link to the explanation for every message.

Official rule

The full rule with its technical test (Schematron) is in the official Peppol documentation:

Related error codes

  • BR-CO-15: The total with VAT is not equal to the total without VAT plus the VAT amount.
  • PEPPOL-EN16931-CL008: The scheme (schemeID) of the seller or buyer electronic address is not from the official Peppol code list.

Frequently asked questions about PEPPOL-EN16931-R051

May I invoice in a foreign currency?

Yes. The VAT amount must then also be on the invoice in euros, through the VAT total in accounting currency.

Where is the invoice currency in the XML?

In cbc:DocumentCurrencyCode, at the top of the invoice.

← All Peppol error codes