Codul regulii este BR-DEC-10.
BT-107 este suma tuturor reducerilor acordate la nivel de document (nu pe linie) și se scrie în UBL în cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount. Regula BR-DEC-10 spune că această sumă poate avea cel mult 2 zecimale. Dacă programul scrie 0.000 sau 12.345, factura este respinsă de validator chiar dacă suma totală de plată este corectă. Atenție: regula se referă la zecimale, nu la mărimea sumei - un discout corect rotunjit la 2 zecimale trece fără probleme.
În programul de facturare, formatează numeric câmpul pentru total reduceri de document cu două zecimale fix (0.00, 12.34, 100.00), nu cu zecimalele rezultate din calculul procentual. Rotunjește la 2 zecimale înainte de a-l scrie în XML, exact cum faci la celelalte sume din LegalMonetaryTotal.
<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:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="RON">1000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="RON">1190.00</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="RON">0.000</cbc:AllowanceTotalAmount>
<cbc:PayableAmount currencyID="RON">1190.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
</ubl:Invoice><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:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
<cbc:TaxExclusiveAmount currencyID="RON">1000.00</cbc:TaxExclusiveAmount>
<cbc:TaxInclusiveAmount currencyID="RON">1190.00</cbc:TaxInclusiveAmount>
<cbc:AllowanceTotalAmount currencyID="RON">0.00</cbc:AllowanceTotalAmount>
<cbc:PayableAmount currencyID="RON">1190.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
</ubl:Invoice>Greseala asta strica si alte verificari, deci in acelasi raspuns vei gasi si: BR-DEC-RO-10, UBL-DT-01. Le repari pe toate odata cu asta.
ro16931-ubl-1.0.9. Factura cu fragmentul din stanga a fost respinsa cu exact mesajul de mai sus; cea cu fragmentul din dreapta a trecut fara nicio eroare. Verificarea s-a facut pe 14.09.2026.The allowed maximum number of decimals for the Sum of allowanced on document level (BT-107) is 2.
$Document_totals
$BR-DEC-10
Elementul BT-107 (cac:AllowanceTotalAmount) nu există în factura de referință, așa că l-am adăugat în ambele variante, între TaxInclusiveAmount și PayableAmount, poziția lui din secvența UBL a lui LegalMonetaryTotal. Am folosit valoarea 0.00 ca să nu modific nicio altă sumă din factura (BR-CO-12 rămâne valabil: 1000.00 - 0.00 = 1000.00). Nu pot confirma din datele primite dacă validatorul ANAF acceptă fără obiecții BT-107 prezent cu valoare zero atunci când nu există nicio linie de reducere de document (BG-20); dacă ai reduceri reale, scrie acolo suma lor rotunjită la 2 zecimale și ajustează în consecință TaxExclusiveAmount (BT-109), TaxInclusiveAmount (BT-112) și PayableAmount (BT-115).