Erori e-Factura

CIUS-RO

Data emiterii facturii trebuie scrisă în format YYYY-MM-DD

Codul regulii este BR-RO-DT001.

Mesajul exact din validatorul ANAF

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

Ce înseamnă

Datele din e-Factura se scriu exclusiv în format ISO, adică YYYY-MM-DD (exact 10 caractere), fără puncte, fără bare oblice și fără inversarea zilei cu luna. Validatorul verifică două lucruri: lungimea șirului să fie 10 și valoarea să poată fi convertită în data calendaristică. O dată scrisă în stil românesc, ca 05.06.2024, pică regula deși omului i se pare corectă.

Cum repari

În programul de facturare setează pentru data emiterii (cbc:IssueDate) formatul de ieșire yyyy-MM-dd, nu dd.MM.yyyy. Verifică și exporturile din Excel/ERP care lipesc data ca text, pentru că acolo se schimbă des în zi.lună.an.

Exemplu

Așa pică

<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:IssueDate>05.06.2024</cbc:IssueDate>
</ubl:Invoice>

Așa trece

<ubl:Invoice xmlns:ubl="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:IssueDate>2024-06-05</cbc:IssueDate>
</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-2, BT-27) trebuie sa respecte formatul YYYY-MM-DD

Textul oficial, în engleză

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

Unde se aplică

cbc:IssueDate

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

Textul oficial al regulii și lista de câmpuri menționează BT-2 și BT-27, dar BT-27 este, în EN 16931, numele vânzătorului, nu o dată; contextul XPath primit se aplică doar pe cbc:IssueDate (BT-2). Nu pot confirma din datele primite care este al doilea element de tip dată vizat de regula, așa că am corectat exclusiv data emiterii.