Erori e-Factura

EN16931

Fiecare linie de factură are nevoie de valoarea netă a liniei

Codul regulii este BR-24.

Mesajul exact din validatorul ANAF

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

Ce înseamnă

BR-24 spune că orice linie de factură (BG-25) trebuie să conțină valoarea netă a liniei (BT-131), adică baza impozabilă a liniei, fără TVA. Fără acest element, programul de validare nu poate verifica aritmetica facturii: nu știe dacă suma liniilor dă totalul fără TVA și nici din ce bază s-a calculat TVA-ul. În UBL, BT-131 se scrie în cbc:LineExtensionAmount, copil direct al lui cac:InvoiceLine.

Cum repari

În programul de facturare, verifică fiecare linie și asigură-te că are completată valoarea netă (cantitate x preț unitar net, fără TVA). Nu lăsa linii cu acest câmp gol; dacă ai linii cu valoare zero (de exemplu discount sau linii informative), scoate-le din factură sau mută-le în antet.

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>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>
    <cac:Item>
      <cbc:Name>Serviciu de consultanta</cbc:Name>
    </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>
    <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:Item>
  </cac:InvoiceLine>
</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 Invoice line (BG-25) shall have an Invoice line net amount (BT-131).

Unde se aplică

$Invoice_Line

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

$BR-24
Ce nu rezultă din textul oficial al regulii

Nu am putut confirma dacă validatorul ANAF tratează separat cazul în care cbc:LineExtensionAmount există dar are valoarea 0.00 (unele validatoare îl acceptă formal, deși economic linia nu are sens). De asemenea, nu am verificat dacă o linie cu valoare 0 este respinsă de altă regulă din schematronul CIUS-RO.