Erori e-Factura

EN16931

Prețul brut al articolului (BT-148) nu poate fi negativ

Codul regulii este BR-28.

Mesajul exact din validatorul ANAF

textEroare=[BR-28]-The Item gross price (BT-148) shall NOT be negative.

Ce înseamnă

Prețul brut (de listă) al unui articol este prețul dinainte de discountul de linie. El nu are voie să aibă valoare negativă, indiferent cât de mare este reducerea acordată. În UBL, prețul brut se scrie în cac:Price/cac:AllowanceCharge/cbc:BaseAmount, iar discountul de linie (BT-147) în cbc:Amount din același grup. Reducerile se exprimă prin ChargeIndicator=false și un Amount pozitiv, niciodată printr-un preț brut cu minus.

Cum repari

Verifică de unde vine valoarea negativă: de obicei din import de stocuri, din conversii valutare sau din formule de tip «preț net minus discount» scrise greșit la generarea XML-ului. Scrie prețul brut ca sumă pozitivă (preț net + discount) și pune discountul, tot pozitiv, în cbc:Amount.

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:Price>
      <cbc:PriceAmount currencyID="RON">100.00</cbc:PriceAmount>
      <cac:AllowanceCharge>
        <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
        <cbc:Amount currencyID="RON">20.00</cbc:Amount>
        <cbc:BaseAmount currencyID="RON">-120.00</cbc:BaseAmount>
      </cac:AllowanceCharge>
    </cac:Price>
  </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:Price>
      <cbc:PriceAmount currencyID="RON">100.00</cbc:PriceAmount>
      <cac:AllowanceCharge>
        <cbc:ChargeIndicator>false</cbc:ChargeIndicator>
        <cbc:Amount currencyID="RON">20.00</cbc:Amount>
        <cbc:BaseAmount currencyID="RON">120.00</cbc:BaseAmount>
      </cac:AllowanceCharge>
    </cac:Price>
  </cac:InvoiceLine>
</ubl:Invoice>
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ă

The Item gross price (BT-148) shall NOT be negative.

Unde se aplică

$Invoice_Line

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

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

Nu am putut confirma din datele primite dacă validatorul CIUS-RO verifică suplimentar coerența dintre prețul net (BT-146), discount (BT-147) și prețul brut (BT-148) — regula BR-29 din EN 16931; exemplul corect de mai sus respectă ambele reguli. De asemenea, nu am confirmat dacă ordinea exactă a elementelor din cac:AllowanceCharge la nivel de preț este validată strict de schema UBL folosită de ANAF.