Codul regulii este BR-O-01.
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.
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.
<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><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-18. Le repari pe toate odata cu asta.
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.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".
$Invoice
$BR-O-01
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.