PEPPOL-EN16931-R005: VAT accounting currency (BT-6) equals the invoice currency (BT-5)
Official message
[PEPPOL-EN16931-R005] VAT accounting currency code MUST be different from invoice currency code when provided.
[PEPPOL-EN16931-R005] VAT accounting currency code MUST be different from invoice currency code when provided.
- Severity
- Error The invoice is invalid and may be rejected by the recipient.
- Applies to
- XRechnung (CII), XRechnung (UBL)
What does this mean?
If the VAT accounting currency code (BT-6) is provided, it must be different from the invoice currency code (BT-5). Both codes are the same.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation. BT-6 is only intended for the case that the VAT has to be stated additionally in a different currency.
Typical causes
BT-6 was filled in with the same currency as BT-5 as a precaution.
A template or default value (e.g. EUR) was taken over for BT-6.
How to fix the error
Omit BT-6 if the VAT is only stated in the invoice currency; then also omit the VAT amount in accounting currency (BT-111).
If the VAT has to be stated in a different currency, state that currency there and add BT-111 in that currency.
CII: ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode, UBL: cbc:TaxCurrencyCode.
Generate and validate the invoice again.
In E-Rechnungsfreund
In the invoice form, "Experte" view, section "Rechnungsdetails" (invoice details), choose "– nicht angegeben –" (not specified) in the field "Steuerwährung (BT-6)" or a currency other than "Währung (BT-5)".
Example
Wrong
<ram:ApplicableHeaderTradeSettlement>
<ram:TaxCurrencyCode>EUR</ram:TaxCurrencyCode>
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
...
</ram:ApplicableHeaderTradeSettlement>
Correct
<ram:ApplicableHeaderTradeSettlement>
<ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
...
</ram:ApplicableHeaderTradeSettlement>
For developers: test expression per syntax
XRechnung (CII) (CII)
Context: ram:ApplicableHeaderTradeSettlement
not(ram:TaxCurrencyCode) or normalize-space(ram:TaxCurrencyCode/text()) != normalize-space(ram:InvoiceCurrencyCode/text())
XRechnung (UBL) (UBL)
Context: cbc:TaxCurrencyCode
not(normalize-space(text()) = normalize-space(../cbc:DocumentCurrencyCode/text()))
Related validation rules
- PEPPOL-EN16931-R001: Business process type (BT-23) is missing
- PEPPOL-EN16931-R008: The invoice contains empty elements
- PEPPOL-EN16931-R010: Buyer electronic address (BT-49) is missing
- PEPPOL-EN16931-R020: Seller electronic address (BT-34) is missing
- PEPPOL-EN16931-R040: Allowance or charge amount does not match base amount and percentage
- PEPPOL-EN16931-R041: Base amount missing for allowance or charge with percentage
Last updated:
Explanation of the validation rule, not legal or tax advice.