Erori e-Factura

coduri

Categoria de TVA trebuie codificată din lista UNCL5305 (S, Z, E)

Codul regulii este BR-CL-18.

Mesajul exact din validatorul ANAF

textEroare=[BR-S-01]-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 Standard rated shall contain in the VAT breakdown (BG-23) at least one VAT category code (BT-118) equal with Standard rated .
textEroare=[BR-S-08]-For each different value of VAT category rate (BT-119) where the VAT category code (BT-118) is Standard rated , the VAT category taxable amount (BT-116) in a VAT breakdown (BG-23) shall equal the sum of Invoice line net amounts (BT-131) plus the sum of document level charge amounts (BT-99) minus the sum of document level allowance amounts (BT-92) where the VAT category code (BT-151, BT-102, BT-95) is Standard rated and the VAT rate (BT-152, BT-103, BT-96) equals the VAT category rate (BT-119).
textEroare=[BR-CL-18]-Invoice tax categories MUST be coded using UNCL5305 code list

Ce înseamnă

Codul din cac:ClassifiedTaxCategory/cbc:ID (BT-151) nu este text liber, ci o literă din lista UNCL5305: S cota standard, Z cota zero, E scutit, AE taxare inversă, K operațiune intracomunitară, G export, O în afara sferei de aplicare (lista mai conține L, M, B). Validatorul compară valoarea exact, literă cu literă: spații, minuscule sau denumiri precum "19" ori "STANDARD" sunt respinse, chiar dacă TVA-ul calculat e corect. Codul trebuie să fie identic în antetul liniilor și în detalierea de TVA din cac:TaxTotal, altfel apar erori în lanț.

Cum repari

În programul de facturare, câmpul de TVA al articolului trebuie să genereze doar codul din lista, cu literă mare și fără spații, nu procentul sau denumirea cotei: pentru 19%, 9% sau 5% codul este S; pentru cota 0% este Z; pentru scutit este E; pentru taxare inversă este AE. Verifică apoi că același cod să apară și în cac:TaxSubtotal/cac:TaxCategory/cbc:ID, nu doar pe linie.

Exemplu

Așa pică

<ubl:Invoice xmlns:ubl="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:InvoiceLine>
    <cac:Item>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>19</cbc:ID>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
  </cac:InvoiceLine>
</ubl:Invoice>

Așa trece

<ubl:Invoice xmlns:ubl="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:InvoiceLine>
    <cac:Item>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
  </cac:InvoiceLine>
</ubl:Invoice>

Greșeala asta strică și alte verificări, deci în același răspuns vei găsi și: BR-S-01, BR-S-08. 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ă

Invoice tax categories MUST be coded using UNCL5305 code list

Unde se aplică

cac:ClassifiedTaxCategory/cbc:ID

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

( ( not(contains(normalize-space(.),' ')) and contains( ' AE L M E S Z G O K B ',concat(' ',normalize-space(.),' ') ) ) )
Ce nu rezultă din textul oficial al regulii

Nu am putut confirma din datele primite dacă CIUS-RO folosește efectiv codurile L, M și B (în practică românească nu apar) și nici dacă pentru cota 0% se cere Z sau E în toate situațiile; textul regulii enumera doar lista UNCL5305, fără corespondență cu cotele românești.