Erori e-Factura

EN16931

Perioada liniei: data de sfârșit nu poate fi înainte de start

Codul regulii este BR-30.

Mesajul exact din validatorul ANAF

textEroare=[BR-30]-If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).
textEroare=[BR-29]-If both Invoicing period start date (BT-73) and Invoicing period end date (BT-74) are given then the Invoicing period end date (BT-74) shall be later or equal to the Invoicing period start date (BT-73).

Ce înseamnă

Dacă pe linia facturii completezi o perioadă de prestare (BT-134 data de început și BT-135 data de sfârșit), data de sfârșit trebuie să fie cel puțin egală cu cea de început. Regula se uită exclusiv la perioada de pe linie (cac:InvoicePeriod din cac:InvoiceLine), nu la una la nivel de factura. O perioadă inversată este tratată ca eroare de conținut, nu ca problemă de format.

Cum repari

În programul de facturare, la perioada de pe linie, validează că data de sfârșit să fie mai mare sau egală cu data de început și blochează salvarea/emiterea dacă nu e. Verifică liniile la care perioada a fost preluată invers dintr-un contract sau dintr-un import și corectează datele.

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:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cac:InvoicePeriod>
      <cbc:StartDate>2024-06-01</cbc:StartDate>
      <cbc:EndDate>2024-05-15</cbc:EndDate>
    </cac:InvoicePeriod>
    <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:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cac:InvoicePeriod>
      <cbc:StartDate>2024-06-01</cbc:StartDate>
      <cbc:EndDate>2024-06-30</cbc:EndDate>
    </cac:InvoicePeriod>
    <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-29. 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ă

If both Invoice line period start date (BT-134) and Invoice line period end date (BT-135) are given then the Invoice line period end date (BT-135) shall be later or equal to the Invoice line period start date (BT-134).

Unde se aplică

$Invoice_Line_Period

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

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

Factura de referință nu conține deloc cac:InvoicePeriod pe linie, așa că grupul l-am adăugat integral în ambele fragmente, după cbc:LineExtensionAmount și înainte de cac:Item, conform ordinii UBL 2.1 pentru InvoiceLine. Datele 2024-06-01 / 2024-06-30 sunt alese de mine ca exemplu de perioadă validă, nu provin din factura de referință.