robin.vision Appointment

SmartFormular

Tools › SmartFormular E-Rechnung lite › Validation rules › PEPPOL-EN16931-R055

PEPPOL-EN16931-R055

The VAT totals in invoice and VAT currency have different signs

Validation rule of XRechnung 3.0.2 (KoSIT, Schematron 2.6.0) · Level: Error

What the message means

The VAT totals in invoice and VAT currency have different signs.

What the issuer needs to change

Give both amounts with the same sign.

This rule is part of XRechnung, even though its name starts with PEPPOL.

Your invoice reports PEPPOL-EN16931-R055? Check it with SmartFormular E-Rechnung lite, free to try until 31 December 2026: the tool shows every finding with an explanation, the invoice in readable form and a GiroCode to pay – in your browser, no upload.

Check an e-invoice

Origin

Rule set
XRechnung 3.0.2 (KoSIT, Schematron 2.6.0)
Syntax
CII, UBL
Level
Error

Original rule text

Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational sign

Source: KoSIT, XRechnung Schematron 2.6.0, Apache License 2.0

Technical details for IT

UBL

Context: ubl-creditnote:CreditNote | ubl-invoice:Invoice
Test: not(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) )

CII

Context: ram:ApplicableHeaderTradeSettlement
Test: not(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))

Related rules

All validation rules

Technical explanation by robin.vision, not tax or legal advice. Rules as of 31 August 2026 (KoSIT validator configuration).