PEPPOL-EN16931-R055: VAT amount in invoice and accounting currency with different signs
Official message
[PEPPOL-EN16931-R055] Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign
[PEPPOL-EN16931-R055] Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign
- Severity
- Error The invoice is invalid and may be rejected by the recipient.
- Applies to
- XRechnung (CII), XRechnung (UBL)
What does this mean?
Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign: if a VAT accounting currency (BT-6) is given, BT-110 and BT-111 must both be positive or both be negative. The amounts have different signs.
The rule originates from Peppol BIS Billing 3.0 and is applied in the XRechnung validation. In CII an amount of 0 counts as positive, in UBL 0 matches both signs.
Typical causes
For a credit note or corrected invoice only one of the two amounts was stated negative.
How to fix the error
Calculate BT-111 from BT-110 with the exchange rate so that both amounts have the same sign.
CII: two ram:TaxTotalAmount with currencyID BT-5 and BT-6, UBL: cac:TaxTotal/cbc:TaxAmount in both currencies.
Generate and validate the invoice again.
In E-Rechnungsfreund
In the invoice form, "Experte" view, section "Belegsummen (BG-22)" (document totals), fill in the field "Steuer in Buchungswährung (BT-111)" (VAT in accounting currency) with the same sign as "Steuer gesamt (BT-110)" (total VAT).
Example
Wrong
<ram:TaxTotalAmount currencyID="EUR">-63.75</ram:TaxTotalAmount>
<ram:TaxTotalAmount currencyID="CHF">59.90</ram:TaxTotalAmount>
Correct
<ram:TaxTotalAmount currencyID="EUR">-63.75</ram:TaxTotalAmount>
<ram:TaxTotalAmount currencyID="CHF">-59.90</ram:TaxTotalAmount>
For developers: test expression per syntax
XRechnung (CII) (CII)
Context: ram:ApplicableHeaderTradeSettlement
not(/rsm:CrossIndustryInvoice/rsm:SupplyChainTradeTransaction/ram:ApplicableHeaderTradeSettlement/ram:TaxCurrencyCode and ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $documentCurrencyCode]) or (ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $taxCurrencyCode] < 0 and ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $documentCurrencyCode] < 0) or (ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $taxCurrencyCode] >= 0 and ram:SpecifiedTradeSettlementHeaderMonetarySummation/ram:TaxTotalAmount[@currencyID = $documentCurrencyCode] >= 0)
XRechnung (UBL) (UBL)
Context: ubl-creditnote:CreditNote | ubl-invoice:Invoice
not(cbc:TaxCurrencyCode) or (cac:TaxTotal/cbc:TaxAmount[@currencyID=normalize-space(../../cbc:TaxCurrencyCode)] <= 0 and cac:TaxTotal/cbc:TaxAmount[@currencyID=normalize-space(../../cbc:DocumentCurrencyCode)] <= 0) or (cac:TaxTotal/cbc:TaxAmount[@currencyID=normalize-space(../../cbc:TaxCurrencyCode)] >= 0 and cac:TaxTotal/cbc:TaxAmount[@currencyID=normalize-space(../../cbc:DocumentCurrencyCode)] >= 0)
Related validation rules
- PEPPOL-EN16931-R001: Business process type (BT-23) is missing
- PEPPOL-EN16931-R005: VAT accounting currency (BT-6) equals the invoice currency (BT-5)
- 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
Last updated:
Explanation of the validation rule, not legal or tax advice.