Erori e-Factura

EN16931

Suma de plată nu poate avea mai mult de 2 zecimale

Codul regulii este BR-DEC-18.

Mesajul exact din validatorul ANAF

textEroare=[BR-DEC-18]-The allowed maximum number of decimals for the Amount due for payment (BT-115) 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 Suma de plata (BT-115) este 2. #The allowed maximum number of decimals for the Amount due for payment (BT-115) is 2.

Ce înseamnă

Câmpul BT-115 (PayableAmount, suma de plată din BG-22 LegalMonetaryTotal) acceptă maximum două zecimale. Regula se uită la textul scris în XML, așa că 1190.000 are trei zecimale și este respins, chiar dacă valoarea numerică este identică cu 1190.00. Nu e vorba de o sumă greșită, ci de felul în care a fost scrisă la export. Aceeași limită de 2 zecimale se aplică, prin reguli surori, tuturor sumelor în RON din factură (linii, detalieri de TVA, totaluri).

Cum repari

Formatează suma de plată cu exact două zecimale la exportul UBL (1190.00), nu cu trei sau cu numărul brut rezultat din calcul. Nu modifica valoarea, doar reprezentarea: dacă rotunjirea chiar schimbă suma, corectează întâi totalurile din care provine, ca BT-115 să rămână egal cu suma de plată reală.

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:LegalMonetaryTotal>
    <cbc:TaxInclusiveAmount currencyID="RON">1190.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="RON">1190.000</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
</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:LegalMonetaryTotal>
    <cbc:TaxInclusiveAmount currencyID="RON">1190.00</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="RON">1190.00</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
</ubl:Invoice>

Greșeala asta strică și alte verificări, deci în același răspuns vei găsi și: BR-DEC-RO-18, 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 Amount due for payment (BT-115) is 2.

Unde se aplică

$Document_totals

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

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

Nu am testat în validatorul ANAF dacă zeroul final suplimentar (1190.000) chiar declanșează regula: schematronul oficial numără zecimalele pe textul literal, deci ar trebui să pice, dar un validator care normalizează numeric valoarea înainte de verificare ar putea trece. În schimb, un caz cu trei zecimale semnificative, de exemplu 1190.125, încalcă regula în orice interpretare — dar acolo ar trebui ajustate și celelalte totaluri, ca să nu cadă alte reguli.