Erori e-FacturaBR-43

Linia de taxa fara suma (transport, ambalare) e respinsa

Codul regulii este BR-43.

Mesajul exact din validatorul ANAF

org.xml.sax.SAXParseException; lineNumber: 161; columnNumber: 159; cvc-complex-type.2.4.b: The content of element 'cac:AllowanceCharge' is not complete. One of '{"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":AllowanceChargeReason, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":MultiplierFactorNumeric, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":PrepaidIndicator, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":SequenceNumeric, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":Amount}' is expected.

Ce inseamna

Pe langa pret si cantitate, o linie de factura poate avea si o taxa in plus pe linie (BG-28), de exemplu transport, manipulare sau ambalare. Cand indicatorul de taxa are valoarea "true", grupul descrie o majorare, iar EN 16931 cere obligatoriu si suma acestei taxe (BT-141), pentru ca ea intra in netul liniei. Daca suma lipseste, validatorul nu poate reface calculul liniei si respinge factura.

Cum repari

La fiecare linie care are o taxa, completeaza si suma ei, nu doar motivul. Suma se aduna la netul liniei, deci creste si baza de TVA si totalul facturii: in exemplu, 1.000,00 + 50,00 = 1.050,00 lei net, TVA 199,50 lei, total 1.249,50 lei. Daca programul tau emite taxa de linie doar cu motiv, corecteaza sablonul liniei.

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:TaxTotal>
    <cbc:TaxAmount currencyID="RON">199.50</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="RON">1050.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="RON">199.50</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19.00</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="RON">1050.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="RON">1050.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="RON">1249.50</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="RON">1249.50</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="RON">1050.00</cbc:LineExtensionAmount>
    <cac:AllowanceCharge>
      <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
      <cbc:AllowanceChargeReason>Transport</cbc:AllowanceChargeReason>
    </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: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:TaxTotal>
    <cbc:TaxAmount currencyID="RON">199.50</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="RON">1050.00</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="RON">199.50</cbc:TaxAmount>
      <cac:TaxCategory>
        <cbc:ID>S</cbc:ID>
        <cbc:Percent>19.00</cbc:Percent>
        <cac:TaxScheme>
          <cbc:ID>VAT</cbc:ID>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>
  <cac:LegalMonetaryTotal>
    <cbc:LineExtensionAmount currencyID="RON">1050.00</cbc:LineExtensionAmount>
    <cbc:TaxExclusiveAmount currencyID="RON">1050.00</cbc:TaxExclusiveAmount>
    <cbc:TaxInclusiveAmount currencyID="RON">1249.50</cbc:TaxInclusiveAmount>
    <cbc:PayableAmount currencyID="RON">1249.50</cbc:PayableAmount>
  </cac:LegalMonetaryTotal>
  <cac:InvoiceLine>
    <cbc:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="RON">1050.00</cbc:LineExtensionAmount>
    <cac:AllowanceCharge>
      <cbc:ChargeIndicator>true</cbc:ChargeIndicator>
      <cbc:AllowanceChargeReason>Transport</cbc:AllowanceChargeReason>
      <cbc:Amount currencyID="RON">50.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:InvoiceLine>
</ubl:Invoice>

In practica nu ajungi sa vezi codul regulii: valoarea e respinsa mai devreme, de schema XML, iar mesajul arata cum scrie mai sus. Regula exista si ea, dar prinde doar cazurile pe care schema le lasa sa treaca.

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 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 (BG-28) shall have an Invoice line charge amount (BT-141).

Unde se aplica

$Invoice_line_charges

Conditia care trebuie sa fie adevarata

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

Nu am putut confirma daca validatorul CIUS-RO accepta motivul taxei ca text liber (BT-144) sau impune un cod (BT-145); in exemplu am folosit text liber, admis de EN 16931. Valoarea de 50,00 lei pentru taxa de linie este doar exemplul ales de mine.