cvc-complex-type.2.4.a: element neașteptat (ordine greșită sau element lipsă)
Mesajul din SPV
cvc-complex-type.2.4.a: Invalid content was found starting with element 'cbc:DueDate'. One of '{"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":IssueDate}' is expected.Numele elementelor și listele din mesaj diferă de la factură la factură; codul de la început (cvc-complex-type.2.4.a) e același.
Ce înseamnă
Schema UBL 2.1 cere elementele într-o ordine fixă. Validatorul ANAF a ajuns la elementul din primul set de ghilimele, dar în acel loc aștepta unul dintre elementele din lista „One of '…' is expected”. Două cauze posibile: elementul așteptat lipsește (cel mai des) sau elementele sunt în altă ordine decât în schemă.
Cauze frecvente în e-Factura
cbc:IssueDatelipsă sau pus dupăcbc:DueDate;cbc:Notepus dupăcbc:DocumentCurrencyCode(trebuie înainte);cac:PaymentMeanspus dupăcac:TaxTotal;- în
cac:Party:cac:PartyTaxSchemeînaintea luicac:PostalAddress; - în
cac:InvoiceLine:cac:Priceînaintea luicac:Item; - un element scris greșit (
cbc:IssueData) sau cu prefixul greșit (cac:IssueDate) – atunci schema nu-l recunoaște și raportează locul unde a ajuns.
Exemplu
Greșit:
<cbc:ID>F2026-101</cbc:ID> <cbc:DueDate>2026-11-30</cbc:DueDate> <cbc:IssueDate>2026-10-31</cbc:IssueDate>
Corect:
<cbc:ID>F2026-101</cbc:ID> <cbc:IssueDate>2026-10-31</cbc:IssueDate> <cbc:DueDate>2026-11-30</cbc:DueDate>
Cum o repari
- Caută în XML elementul numit în mesaj (
Invalid content … starting with element 'X'). - Uită-te la lista „One of … is expected”: acela e elementul care trebuia să fie înaintea lui X.
- Dacă elementul așteptat există mai jos în fișier, mută-l; dacă nu există și e obligatoriu, adaugă-l.
- Ordinea elementelor de la începutul facturii, după schemă: cbc:UBLVersionID? · cbc:CustomizationID · cbc:ProfileID? · cbc:ID · cbc:IssueDate · cbc:DueDate? · cbc:InvoiceTypeCode · cbc:Note* · cbc:TaxPointDate? · cbc:DocumentCurrencyCode · cbc:TaxCurrencyCode? · cbc:BuyerReference? · cac:InvoicePeriod? · cac:OrderReference? · cac:BillingReference* · … · cac:AccountingSupplierParty · cac:AccountingCustomerParty · cac:PayeeParty? · cac:Delivery? · cac:PaymentMeans* · cac:PaymentTerms? · cac:AllowanceCharge* · cac:TaxTotal · cac:LegalMonetaryTotal · cac:InvoiceLine+
Verifică XML-ul înainte să-l încarci din nou
Lipește XML-ul facturii: vezi toate erorile odată (schemă UBL, CIUS-RO, EN 16931), cu corectura pentru fiecare. Gratuit, 3 verificări pe zi; fișierul nu e păstrat.
Întrebări frecvente
De ce contează ordinea elementelor în e-Factura?
UBL 2.1 definește elementele ca secvență (xs:sequence), iar validatorul ANAF verifică XML-ul strict după schemă. Același conținut într-o altă ordine este respins.
Mesajul numește un element care există. De ce zice că lipsește?
Pentru că e în altă poziție: validatorul îl caută doar în locul din schemă, nu oriunde în fișier.
Alte erori din SPV
- cvc-complex-type.2.4.b la e-Factura: „The content of element … is not complete”
- cvc-complex-type.2.4.d la e-Factura: „No child element is expected at this point”
- cvc-complex-type.4 la e-Factura: „Attribute 'currencyID' must appear on element”
- cvc-complex-type.3.2.2 la e-Factura: „Attribute … is not allowed to appear in element”
- cvc-datatype-valid.1.2.1 la e-Factura: „is not a valid value for 'date'” / „'decimal'”
- cvc-elt.1.a la e-Factura: „Cannot find the declaration of element 'Invoice'”
- „Content is not allowed in prolog” la e-Factura: cauza și soluția
- „Invalid byte 1 of 1-byte UTF-8 sequence” la e-Factura: diacriticele
- „The element type … must be terminated by the matching end-tag” la e-Factura
- Factură respinsă în SPV (nok): cum citești eroarea și ce faci