EN16931
Reducerea pe linia facturii nu poate avea mai mult de 2 zecimale
Codul regulii este BR-DEC-24.
Mesajul exact din validatorul ANAF
Ce înseamnă
BT-136 este suma reducerii acordate pe o singură linie de factură (grupul BG-27, când ChargeIndicator este false). Regula spune că în acest element nu ai voie mai mult de 2 zecimale, la fel ca la toate sumele în bani din factura. Cu 3 zecimale factura este respinsă la validare, chiar dacă suma și TVA-ul sunt calculate corect. Orice altă valoare cu zecimale în plus pe linie (inclusiv majorările, adică ChargeIndicator true, care folosesc același element Amount) produce aceeași eroare.
Cum repari
Rotunjește suma reducerii de pe linie la 2 zecimale înainte s-o scrii în XML, în exemplu 10.005 devine 10.00. Verifică toate reducerile și majorările de pe linii, nu doar prima. Dacă rotunjirea schimbă valoarea netă a liniei, actualizează în același timp BT-131 (LineExtensionAmount) și toate totalurile care depind de ea.
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:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Reducere comerciala</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="RON">10.005</cbc:Amount>
</cac:AllowanceCharge>
<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:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
<cac:AllowanceCharge>
<cbc:ChargeIndicator>false</cbc:ChargeIndicator>
<cbc:AllowanceChargeReason>Reducere comerciala</cbc:AllowanceChargeReason>
<cbc:Amount currencyID="RON">10.00</cbc:Amount>
</cac:AllowanceCharge>
<cac:Item>
<cbc:Name>Serviciu de consultanta</cbc:Name>
</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-DEC-RO-24, UBL-DT-01. Le repari pe toate odată cu asta.
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 allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.
Unde se aplică
$Invoice_line_allowances
Condiția care trebuie să fie adevărată
$BR-DEC-24
Ce nu rezultă din textul oficial al regulii
Factura de referință nu are nicio reducere la nivel de linie, așa că grupul cac:AllowanceCharge a fost adăugat întreg în ambele fragmente, pe poziția lui din secvența UBL (după LineExtensionAmount, înainte de cac:Item). Nu am putut confirma din datele primite dacă validatorul ANAF verifică suplimentar aritmetică pe linie (BT-131 = cantitate x preț - BT-136); de aceea am lăsat LineExtensionAmount neschimbat în ambele variante, ca să nu stric totalurile facturii de referință. În factura ta reală, dacă reducerea schimbă valoarea netă a liniei, ajustează și BT-131, detalierea de TVA și totalurile.