Back to the error catalogue
PEPPOL-EN16931-R055BT-111
blocked

The two VAT totals do not have the same operational sign

The total VAT amount (BT-110) and its counterpart in the accounting currency (BT-111) must carry the same operational sign.

A financial field: the expected value is computed and offered, never written into the document — the correction is the issuer's to make. Test your invoice to find out whether it is affected.

The message your validator prints

Copied verbatim from the sealed artefact: this is the exact sentence the check prints when this rule fails.

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

Quoted from schematron-xrechnung 3.0.2, licensed under Apache-2.0.

Common searches around this code

These phrases mirror what an integrator searches for: code, syntax, rule, business field and correction.

PEPPOL-EN16931-R055 The two VAT totals do not have the same operational signPEPPOL-EN16931-R055 XRechnung Schematron package (KoSIT)PEPPOL-EN16931-R055 BT-111Invoice total VAT amount and Invoice total VAT amount in accounting currency MUST have the same operational signPEPPOL-EN16931-R055 correction

Test your file with this error in mind

Upload the invoice involved: the report will say whether this code appears, where it appears in the document, and whether Factlint can only report it or also fix it.

To automate this check in an ERP flow, call the validation API and link every returned code to its public page.

Why this error happens

Two opposite signs describe an invoice that owes VAT in one currency and reclaims it in the other: impossible for a single taxable event. It is the signature of a credit note converted into a currency without the sign following.

How to fix it

Fix the conversion in the system producing the invoice. Factlint computes the expected value and returns it in `suggested_value`, but never writes a VAT amount.

Reason it is blocked:

financial_field_policy

XML correction example

BEFORE (invalid)
<ram:TaxTotalAmount currencyID="EUR">240.00</ram:TaxTotalAmount> … currencyID="SEK">-2400.00
AFTER (compliant)
<ram:TaxTotalAmount currencyID="SEK">2400.00</ram:TaxTotalAmount>