Erori e-Factura

EN16931

Grupa de TVA (BG-23) trebuie să aibă suma TVA (BT-117)

Codul regulii este BR-46.

Mesajul exact din validatorul ANAF

org.xml.sax.SAXParseException; lineNumber: 142; columnNumber: 24; cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":TaxCategory}'. One of '{"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":TaxAmount}' is expected.

Ce înseamnă

Fiecare detaliere de TVA din factură (BG-23) trebuie să conțină și suma de TVA aferentă cotei respective (BT-117), nu doar baza impozabilă. Din acest element validatorul ANAF adună TVA-ul pe fiecare cotă și îl compară cu TVA-ul total al facturii (BT-110). Dacă lipsește, factura este respinsă chiar dacă totalul general pare corect.

Cum repari

În programul de facturare, verifică fiecare <cac:TaxSubtotal> și scrie în <cbc:TaxAmount> TVA-ul calculat pe grupa respectivă, în aceeași monedă ca factura. Elementul se pune între <cbc:TaxableAmount> și <cac:TaxCategory>.

Exemplu

Așa pică

<ubl:Invoice>
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="RON">190.00</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="RON">1000.00</cbc:TaxableAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19.00</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
</ubl:Invoice>

Așa trece

<ubl:Invoice>
  <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>S</cbc:ID>
        <cbc:Percent>19.00</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
</ubl:Invoice>

În practică nu ajungi să vezi codul regulii: valoarea e respinsă mai devreme, de schema XML, iar mesajul arată cum scrie mai sus. Regula există și ea, dar prinde doar cazurile pe care schema le lasă să treacă.

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

Each VAT breakdown (BG-23) shall have a VAT category tax amount (BT-117).

Unde se aplică

$VAT_breakdown

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

$BR-46