Erori e-Factura

CIUS-RO

Data de sfârșit de perioadă trebuie scrisă în format YYYY-MM-DD

Codul regulii este BR-RO-DT006.

Mesajul exact din validatorul ANAF

org.xml.sax.SAXParseException; lineNumber: 161; columnNumber: 61; cvc-datatype-valid.1.2.1: '05.06.2024' is not a valid value for 'date'.

Ce înseamnă

Orice dată din factură - perioada de facturare la nivel de factură (BT-74) sau perioada aferentă unei linii (BT-135) - trebuie scrisă în format ISO 8601, adică YYYY-MM-DD. Validatorul ANAF verifică două lucruri: lungimea exactă de 10 caractere și faptul că textul poate fi interpretat ca o dată calendaristică validă. De aceea pică atât formatul românesc 05.06.2024, cât și o dată scrisă fără zerouri, de tipul 2024-6-5.

Cum repari

În programul de facturare, setează formatul de dată pe ISO 8601 (yyyy-MM-dd) pentru câmpul de perioada facturată, atât la nivel de factură, cât și pe fiecare linie. Dacă datele vin din alt sistem (ERP, import Excel) în format DD.MM.YYYY, convertește-le înainte de generarea XML-ului.

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:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cac:InvoicePeriod>
      <cbc:EndDate>05.06.2024</cbc:EndDate>
    </cac:InvoicePeriod>
  </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:ID>1</cbc:ID>
    <cbc:InvoicedQuantity unitCode="H87">10</cbc:InvoicedQuantity>
    <cbc:LineExtensionAmount currencyID="RON">1000.00</cbc:LineExtensionAmount>
    <cac:InvoicePeriod>
      <cbc:EndDate>2024-06-05</cbc:EndDate>
    </cac:InvoicePeriod>
  </cac:InvoiceLine>
</ubl:Invoice>

În practică nu ajungi să vezi codul regulii: valoarea e respinsă mai devreme, de schema XML, iar mesajul arată cum scrie mai sus. Regula există și ea, dar prinde doar cazurile pe care schema le lasă să treacă.

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 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 română

Un element de tip data (BT-74, BT-135) trebuie sa respecte formatul YYYY-MM-DD

Textul oficial, în engleză

A date (BT-74, BT-135) MUST be formatted YYYY-MM-DD. ({element} = '{valoare}')

Unde se aplică

cbc:EndDate

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

string-length(text()) = 10 and (string(.) castable as xs:date)
Ce nu rezultă din textul oficial al regulii

Nu pot confirma din datele primite dacă eroarea vine de pe perioada de la nivel de factură (BT-74, cac:InvoicePeriod în antet) sau de pe cea de linie (BT-135) - ambele folosesc cbc:EndDate și ambele trebuie să respecte același format; exemplul de mai sus folosește perioada de linie. Perioada de facturare este opțională în CIUS-RO: dacă factura nu acoperă o perioadă, elementul poate lipsi cu totul, iar regula nu se aplică.