Erori e-FacturaBR-RO-DT006

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 inseamna

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

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: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>

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: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>

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 romana

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

Textul oficial, in engleza

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

Unde se aplica

cbc:EndDate

Conditia care trebuie sa fie adevarata

string-length(text()) = 10 and (string(.) castable as xs:date)
Ce nu rezulta 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ă.