Erori e-Factura

EN16931

Codul de TVA O (neimpozabil): valoarea TVA trebuie să fie 0

Codul regulii este BR-O-09.

Mesajul exact din validatorul ANAF

textEroare=[BR-CO-17]-VAT category tax amount (BT-117) = VAT category taxable amount (BT-116) x (VAT category rate (BT-119) / 100), rounded to two decimals.
textEroare=[BR-O-09]-The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is Not subject to VAT shall be 0 (zero).

Ce înseamnă

Codul de TVA „O” (Not subject to VAT) marcheaza operațiuni care nu intra in sfera de aplicare a TVA-ului, adica acolo unde nu se colecteaza TVA. In detalierea pe cote (BG-23), la acest cod valoarea TVA (BT-117) trebuie să fie exact 0.00, fiindca nu exista TVA de calculat. Daca in detaliere ramane o suma de TVA, factură este respinsa la BR-O-09 chiar daca totalurile se inchid aritmetic.

Cum repari

Pentru orice detaliere de TVA cu codul O, pune 0.00 la valoarea TVA și refa lantul de totaluri: totalul de TVA (BT-110), totalul cu TVA (BT-112) și totalul de plata (BT-115) scad cu suma respectiva. Daca pe factură ai și alte cote de TVA, codul O nu este cel potrivit pentru acea operațiune, asa ca revino la codul real (S, Z, E sau AE) și lasa TVA-ul calculat.

Exemplu

Așa pică

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="RON">190.00</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="RON">1000.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="RON">190.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>O</cbc:ID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="RON">1000.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="RON">1190.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="RON">1190.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cac:Item>
      <cbc:Name>Serviciu de consultanta</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>O</cbc:ID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="RON">100.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</Invoice>

Așa trece

<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="RON">0.00</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="RON">1000.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="RON">0.00</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>O</cbc:ID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="RON">1000.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="RON">1000.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="RON">1000.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cac:Item>
      <cbc:Name>Serviciu de consultanta</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>O</cbc:ID>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="RON">100.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</Invoice>

Greșeala asta strică și alte verificări, deci în același răspuns vei găsi și: BR-CO-17. Le repari pe toate odată cu asta.

Verificat. Am pus fiecare din cele două fragmente într-o factură completă și le-am trecut prin validatorul oficial ANAF, versiunea ro16931-ubl-1.0.9. Factura cu fragmentul din stânga a fost respinsă cu exact mesajul de mai sus; cea cu fragmentul din dreapta a trecut fără nicio eroare. Verificarea s-a făcut pe 14.09.2026.
Regula așa cum e scrisă în schematronul oficial

Textul oficial, în engleză

The VAT category tax amount (BT-117) in a VAT breakdown (BG-23) where the VAT category code (BT-118) is "Not subject to VAT" shall be 0 (zero).

Unde se aplică

$VATO

Condiția care trebuie să fie adevărată

$BR-O-09
Ce nu rezultă din textul oficial al regulii

Factură de referinta nu are nicio detaliere cu codul O, asa ca exemplul e construit pornind de la detalierea cu S (aceleasi cantitati și sume), doar codul de TVA și cota fiind schimbate. Nu am putut confirma din datele primite daca pentru codul O mai exista și alte conditii in CIUS-RO (de exemplu interzicerea cotei de TVA BT-119 la detaliere și BT-152 la linie, obligatia unui motiv de scutire, sau regula ca o factură cu O să nu contina și alte cote de TVA); BR-O-09 se refera strict la valoarea TVA din detalierea pe cote.