Erori e-FacturaBR-44

Taxa pe linia facturii trebuie sa aiba motiv sau cod de motiv

Codul regulii este BR-44.

Mesajul exact din validatorul ANAF

textEroare=[BR-44]-Each Invoice line charge shall have an Invoice line charge reason or an invoice line allowance reason code.
textEroare=[BR-CO-24]-Each Invoice line charge (BG-28) shall contain an Invoice line charge reason (BT-144) or an Invoice line charge reason code (BT-145), or both.

Ce inseamna

Cand pui o taxa suplimentara pe o linie de factura (grup AllowanceCharge cu ChargeIndicator egal cu "true"), EN 16931 cere sa spui de ce o percepi: ori textul motivului, ori codul de motiv. Fara niciunul dintre ele, factura este respinsa, chiar daca suma si TVA-ul sunt corecte. In factura de referinta nu exista nicio taxa pe linie, asa ca regula se aplica abia dupa ce adaugi una.

Cum repari

In programul de facturare, la fiecare linie care are o taxa suplimentara completeaza fie campul de motiv (text liber, ex. "Taxa de manipulare"), fie codul de motiv din lista EN 16931 (ex. ZZ pentru motiv nespecificat). Nu lasa taxa fara explicatie doar pentru ca ai completat suma.

Exemplu

Asa pica

<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:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cac:AllowanceCharge>
      <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
      <cbc:Amount currencyID="RON">0.00</cbc:Amount>
    </cac:AllowanceCharge>
    <cac:Item>
      <cbc:Name>Serviciu de consultanta</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19.00</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="RON">100.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</ubl:Invoice>

Asa 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:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cac:AllowanceCharge>
      <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
      <cbc:AllowanceChargeReason>Taxa de manipulare</cbc:AllowanceChargeReason>
      <cbc:Amount currencyID="RON">0.00</cbc:Amount>
    </cac:AllowanceCharge>
    <cac:Item>
      <cbc:Name>Serviciu de consultanta</cbc:Name>
      <cac:ClassifiedTaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19.00</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:ClassifiedTaxCategory>
    </cac:Item>
    <cac:Price>
      <cbc:PriceAmount currencyID="RON">100.00</cbc:PriceAmount>
    </cac:Price>
  </cac:InvoiceLine>
</ubl:Invoice>

Greseala asta strica si alte verificari, deci in acelasi raspuns vei gasi si: BR-CO-24. Le repari pe toate odata cu asta.

Verificat. Am pus fiecare din cele doua fragmente intr-o factura completa si le-am trecut prin validatorul oficial ANAF, versiunea 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.
Regula asa cum e scrisa in schematronul oficial

Textul oficial, in engleza

Each Invoice line charge shall have an Invoice line charge reason or an invoice line allowance reason code.

Unde se aplica

$Invoice_line_charges

Conditia care trebuie sa fie adevarata

$BR-44
Ce nu rezulta din textul oficial al regulii

Am folosit o taxa cu valoarea 0.00 ca sa nu ating sumele facturii de referinta; daca taxa are o suma reala, in xml_corect trebuie recalculate si LineExtensionAmount pe linie, si TaxableAmount/TaxAmount din TaxTotal, si TaxExclusiveAmount/TaxInclusiveAmount/PayableAmount din LegalMonetaryTotal. Nu am putut confirma din datele primite daca validatorul accepta o taxa de 0.00. Nu am putut confirma 100% nici numele exact al elementului de motiv (cbc:AllowanceChargeReason) si al codului (cbc:AllowanceChargeReasonCode) pentru AllowanceCharge de pe linie.