EN16931
Prețul brut al articolului (BT-148) nu poate fi negativ
Codul regulii este BR-28.
Mesajul exact din validatorul ANAF
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>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.