Erori e-Factura

CIUS-RO

Data scadenței (BT-9) trebuie scrisă în format YYYY-MM-DD

Codul regulii este BR-RO-DT003.

Mesajul exact din validatorul ANAF

org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 40; cvc-datatype-valid.1.2.1: '05.07.2024' is not a valid value for 'date'.

Ce înseamnă

Data scadenței se scrie exclusiv în format ISO 8601, adică an-luna-zi, cu patru cifre la an și câte două la lună și zi: 2024-07-05. Validatorul verifică două lucruri: lungimea șirului să fie exact 10 caractere și conținutul să poată fi citit ca dată calendaristică. Un format românesc obișnuit, cu puncte, sau o dată fără zerourile de completare (2024-7-5) cade pe ambele verificări.

Cum repari

În programul de facturare, setează formatul de afișare al datei scadenței pe ISO (yyyy-MM-dd), nu pe formatul local dd.MM.yyyy. Dacă data vine dintr-un import sau dintr-un câmp liber completat de operator, adaugă o conversie și zerourile de completare pentru lună și zi înainte de generarea XML-ului.

Exemplu

Așa pică

<ubl:Invoice>
  <cbc:DueDate>05.07.2024</cbc:DueDate>
</ubl:Invoice>

Așa trece

<ubl:Invoice>
  <cbc:DueDate>2024-07-05</cbc:DueDate>
</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-9) trebuie sa respecte formatul YYYY-MM-DD

Textul oficial, în engleză

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

Unde se aplică

cbc:DueDate

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 am putut confirma din datele primite dacă validatorul ANAF acceptă și un format cu oră sau fus orar în BT-9; textul regulii și testul XPath cer doar lungime 10 și o dată ISO simplă, deci nu recomand altceva. De asemenea, BT-9 este opțional în EN 16931, dar nu am verificat dacă CIUS-RO îl impune în vreun scenariu concret.