Erori e-FacturaBR-O-09

Codul de TVA O (neimpozabil): valoarea TVA trebuie sa 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 inseamna

Codul de TVA „O” (Not subject to VAT) marcheaza operatiuni 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 sa fie exact 0.00, fiindca nu exista TVA de calculat. Daca in detaliere ramane o suma de TVA, factura 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 si refa lantul de totaluri: totalul de TVA (BT-110), totalul cu TVA (BT-112) si totalul de plata (BT-115) scad cu suma respectiva. Daca pe factura ai si alte cote de TVA, codul O nu este cel potrivit pentru acea operatiune, asa ca revino la codul real (S, Z, E sau AE) si lasa TVA-ul calculat.

Exemplu

Asa pica

<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>

Asa 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>

Greseala asta strica si alte verificari, deci in acelasi raspuns vei gasi si: BR-CO-17. Le repari pe toate odata cu asta.

Verificat. Am pus fiecare din cele doua fragmente intr-o factura completa si le-am trecut prin validatorul oficial ANAF, versiunea ro16931-ubl-1.0.9. Factura cu fragmentul din stanga a fost respinsa cu exact mesajul de mai sus; cea cu fragmentul din dreapta a trecut fara nicio eroare. Verificarea s-a facut pe 14.09.2026.
Regula asa cum e scrisa in schematronul oficial

Textul oficial, in engleza

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 aplica

$VATO

Conditia care trebuie sa fie adevarata

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

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