Erori BR-O-08 si BR-O-09 e-Factura: ghid pentru neplatitori de TVA
Erorile BR-O-08 si BR-O-09 afecteaza PFA si micro-SRL neplatitoare de TVA. Afla ce categorie TVA sa folosesti si cum corectezi XML-ul.
Eroarea BR-O-08 apare cu mesajul: "In a VAT breakdown where the VAT category code (BT-118) is 'Not subject to VAT' the VAT category taxable amount (BT-116) shall equal the sum of Invoice line net amounts minus the sum of Document level allowance amounts plus the sum of Document level charge amounts where the VAT category codes are 'Not subject to VAT'." Eroarea BR-O-09 apare cu mesajul: "The VAT category tax amount (BT-117) in a VAT breakdown where the VAT category code (BT-118) is 'Not subject to VAT' shall be 0 (zero)." Ambele fac parte din standardul EN 16931 si sunt validate prin profilul CIUS-RO de catre ANAF.
Ce inseamna erorile BR-O-08 si BR-O-09
Aceste doua reguli se aplica exclusiv facturilor in care categoria de TVA este "O", adica "Not subject to VAT" (neimpozabil cu TVA). Categoria "O" este folosita de entitatile care nu sunt inregistrate ca platitoare de TVA.
Campurile implicate sunt:
- BT-118 (TaxCategory / ID): codul categoriei de TVA. Trebuie sa fie
Opentru neplatitorii de TVA. - BT-116 (TaxCategory / TaxableAmount): suma impozabila din grupul de TVA pentru categoria "O".
- BT-117 (TaxCategory / TaxAmount): suma TVA din grupul de TVA. Trebuie sa fie exact
0.00pentru categoria "O".
BR-O-08 este o regula de suma: pentru categoria "O", BT-116 trebuie sa egaleze suma neturilor de pe liniile de factura cu categoria "O", minus suma document allowances cu categoria "O", plus suma document charges cu categoria "O". Daca totalurile nu se inchid, factura este respinsa. BR-O-09 verifica ca BT-117 este 0 cand BT-118 este "O".
Cui se aplica: neplatitorii de TVA
Aceste erori afecteaza in principal:
- PFA (persoane fizice autorizate) care nu sunt inregistrate ca platitoare de TVA, adica au o cifra de afaceri sub pragul de inregistrare de 395.000 RON/an (de la 1 septembrie 2025, OG 22/2025) sau au optat sa nu se inregistreze voluntar.
- Micro-SRL-uri care nu sunt platitoare de TVA, indiferent de regimul de impozitare pe venit (impozit micro sau impozit pe profit).
- Alte entitati (intreprinderi individuale, intreprinderi familiale) cu acelasi statut fiscal.
Daca esti platitor de TVA si emiti facturi cu cote standard sau reduse (21%, 11%, 9% tranzitoriu), aceste erori nu te privesc. Ele apar exclusiv in contextul categoriei "O".
Este important sa nu confunzi categoria "O" cu alte categorii de scutire. Categoria "E" (exempt) se foloseste pentru tranzactii scutite de TVA conform legii (de exemplu, servicii medicale). Categoria "O" se foloseste strict pentru entitati care nu sunt inregistrate in scopuri de TVA.
De ce apar aceste erori
Exista trei cauze principale:
- Software-ul seteaza categoria "S" cu cota 0%. Categoria "S" (standard rate) este pentru TVA standard. Unele aplicatii mai vechi folosesc "S" cu procentul 0 pentru a simula lipsa TVA, ceea ce este incorect. Pentru neplatitorii de TVA, codul corect este "O", nu "S" cu 0%.
- BT-117 este setat la o valoare diferita de zero. Daca software-ul calculeaza un procent de TVA si pune rezultatul in BT-117, chiar daca procentul este 0 si rezultatul este 0.00, dar campul nu este explicit 0, pot aparea probleme de interpretare. In practica, orice valoare nenula in BT-117 cu categoria "O" declanseaza eroarea BR-O-09.
- Exportul din ERP nu cunoaste statutul TVA al firmei. Unele sisteme ERP genereaza XML-ul cu setarile implicite pentru platitori de TVA, fara sa verifice daca firma este sau nu inregistrata in scopuri de TVA.
Nota: exista si eroarea BR-O-10, care este diferita. BR-O-10 apare cand lipseste codul sau textul motivului de scutire (BT-121 sau BT-120). BR-O-08 si BR-O-09 se refera la valorile monetare din grupul de TVA, nu la campurile de motivatie.
Exemplu XML
Sectiunea relevanta din XML este TaxTotal, care contine grupul TaxSubtotal cu detaliile categoriei de TVA.
<!-- INCORECT: categorie "S" cu cota 0% in loc de categorie "O" -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="RON">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="RON">500.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="RON">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>0</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal><!-- INCORECT: categorie "O" dar BT-117 (TaxAmount) este nenul -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="RON">95.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="RON">500.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="RON">95.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><!-- CORECT: categorie "O", BT-117 = 0, BT-120 sau BT-121 prezent -->
<cac:TaxTotal>
<cbc:TaxAmount currencyID="RON">0.00</cbc:TaxAmount>
<cac:TaxSubtotal>
<cbc:TaxableAmount currencyID="RON">500.00</cbc:TaxableAmount>
<cbc:TaxAmount currencyID="RON">0.00</cbc:TaxAmount>
<cac:TaxCategory>
<cbc:ID>O</cbc:ID>
<cbc:TaxExemptionReasonCode>vatex-eu-o</cbc:TaxExemptionReasonCode>
<cbc:TaxExemptionReason>Not subject to VAT</cbc:TaxExemptionReason>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:TaxCategory>
</cac:TaxSubtotal>
</cac:TaxTotal>Campurile TaxExemptionReasonCode si TaxExemptionReason sunt necesare pentru a evita si eroarea BR-O-10. Este recomandat sa le incluzi intotdeauna impreuna cu categoria "O".
Cum le rezolvi pas cu pas
- Deschide fisierul XML si localizeaza elementul TaxTotal.
- Verifica codul categoriei de TVA (BT-118, elementul TaxCategory / ID). Daca este "S" cu Percent 0, schimba-l in "O" si elimina elementul Percent (sau lasa-l absent, deoarece categoria "O" nu are procent).
- Seteaza TaxAmount (BT-117) la 0.00 atat in TaxSubtotal cat si in TaxTotal de nivel superior.
- Verifica ca TaxableAmount (BT-116) corespunde sumei liniilor cu categoria "O" (suma neturi linii minus document allowances plus document charges, toate cu categoria "O"). Daca totalul nu se inchide, factura este respinsa pe BR-O-08.
- Adauga TaxExemptionReasonCode si TaxExemptionReason in elementul TaxCategory pentru a evita si eroarea BR-O-10.
- Retransmite factura si verifica raspunsul ANAF.
Daca folosesti un software de facturare, cauta in setari optiunea pentru "regim TVA" sau "statut platitor de TVA". Selecteaza "neplatitor de TVA" sau echivalentul din interfata respectiva. Daca optiunea nu exista, contacteaza furnizorul software sau treci la o solutie care suporta toate regimurile fiscale romanesti.
Previne erorile cu Billyou
Billyou seteaza automat categoria de TVA corecta in functie de statutul de inregistrare al firmei tale. Daca firma ta nu este platitoare de TVA, Billyou foloseste automat categoria "O", seteaza BT-117 la zero si completeaza campurile de motivatie cerute de CIUS-RO. Nu trebuie sa stii ce cod sa pui in XML.
Billyou valideaza automat fiecare factura inainte de trimitere la ANAF. Daca exista o eroare in structura XML, Billyou o corecteaza automat sau te notifica inainte sa fie respinsa. Nu vei mai vedea aceste erori.
Poti incepe gratuit la app.billyou.ro/register.
Daca construiesti o integrare, API-ul Billyou accepta parametrul taxCategory: "O" pentru entitati neplatitoare de TVA si gestioneaza automat toate campurile obligatorii. Sandbox-ul de testare este disponibil pentru validare inainte de productie.
Intrebari frecvente
Care este diferenta intre categoria "O" si categoria "E"?
Categoria "O" (Not subject to VAT) este pentru entitati care nu sunt inregistrate in scopuri de TVA si nu aplica TVA deloc. Categoria "E" (Exempt from VAT) este pentru tranzactii scutite de TVA prin lege, emise de entitati care pot fi sau nu platitoare de TVA. PFA si micro-SRL neplatitoare de TVA trebuie sa foloseasca "O", nu "E".
Pot aparea simultan BR-O-08 si BR-O-09?
Da. Daca XML-ul tau are categoria "O" cu BT-117 nenul si in acelasi timp BT-116 nu egaleaza suma neturilor cu categoria "O", ambele erori apar in acelasi raspuns de la ANAF. Rezolva-le simultan urmand pasii de mai sus.
Daca sunt neplatitor de TVA, pot sa pun Percent 0 in TaxCategory?
Nu este recomandat. Categoria "O" nu are un procent de TVA asociat. Elementul Percent trebuie omis sau lasat absent in TaxCategory pentru categoria "O". Prezenta lui nu cauzeaza neaparat eroarea, dar poate crea confuzie si incompatibilitati cu unele sisteme.
Ce se intampla daca am mai multe linii cu produse diferite pe aceeasi factura?
Daca toata factura este emisa de un neplatitor de TVA, toate liniile vor avea categoria "O". Vei avea un singur TaxSubtotal cu categoria "O" si suma totala a bazei impozabile din toate liniile.
Articole conexe: Eroare BR-O-10: cod motivatie lipsa pentru categoria O, Eroare BR-CO-10: suma liniilor nu coincide cu totalul net.