Erori e-Factura

EN16931

Reducerea pe linia facturii nu poate avea mai mult de 2 zecimale

Codul regulii este BR-DEC-24.

Mesajul exact din validatorul ANAF

textEroare=[BR-DEC-24]-The allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.
textEroare=[UBL-DT-01]-Amounts shall be decimal up to two fraction digits
textEroare= [BR-RO-Z2]-Numarul maxim permis de zecimale pentru Valoarea deducerii la linia facturii (BT-136) este 2. #The allowed maximum number of decimals for the Invoice line allowance amount (BT-136) is 2.

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.

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