EN16931
Linie cu categoria O, dar fără grupul de TVA neimpozabil
Codul regulii este BR-O-01.
Mesajul exact din validatorul ANAF
Ce înseamnă
Regula se aplică în momentul în care o linie de factură, un discount sau o taxă la nivel de factură are codul categoriei de TVA „O" (neimpozabil / nu face obiectul TVA). Atunci factura trebuie să conțină exact un grup de detalii TVA (BG-23) cu codul O, având ca bază suma liniilor neimpozabile și TVA 0,00. Dacă grupul lipsește sau are alt cod (de exemplu S), validarea ANAF respinge factura, chiar dacă pe linie codul e corect.
Cum repari
Setează pe linie categoria O și lasă programul să genereze grupurile de detalii TVA după categoriile existente efectiv pe linii, nu după un șablon fix rămas din alte facturi. Dacă toată factura este neimpozabilă, totalul de TVA (BT-110) devine 0,00, iar totalul cu TVA (BT-112) rămâne egal cu totalul fără TVA (1.000,00); șterge orice alt grup de TVA rămas în șablon.
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">0.00</cbc:TaxAmount>
</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>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-18. Le repari pe toate odată cu asta.
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ă
An Invoice that contains an Invoice line (BG-25), a Document level allowance (BG-20) or a Document level charge (BG-21) where the VAT category code (BT-151, BT-95 or BT-102) is "Not subject to VAT" shall contain exactly one VAT breakdown group (BG-23) with the VAT category code (BT-118) equal to "Not subject to VAT".
Unde se aplică
$Invoice
Condiția care trebuie să fie adevărată
$BR-O-01
Ce nu rezultă din textul oficial al regulii
Nu am putut confirma dacă pentru categoria O elementul cbc:Percent (BT-119, respectiv BT-152 pe linie) trebuie să lipsească sau poate fi prezent cu 0.00; în exemplu l-am omis în ambele locuri. Nu am putut confirma nici dacă pentru categoria O codurile de TVA ale părților (BT-31, BT-48) trebuie să lipsească — în decupaj le-am lăsat pe cele din factura de referință. Verifică aceste două puncte înainte de a reutiliza exemplul.