Erori e-Factura

CIUS-RO

Prea multe referințe la facturi anterioare (peste 500)

Codul regulii este BR-RO-A500.

Mesajul exact din validatorul ANAF

org.xml.sax.SAXParseException; lineNumber: 26; columnNumber: 146; cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":InvoiceDocumentReference}'. One of '{"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":SelfBilledInvoiceDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":CreditNoteDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":SelfBilledCreditNoteDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":DebitNoteDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":ReminderDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":AdditionalDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":BillingReferenceLine}' is expected.

Ce înseamnă

BG-3 (referința la factura anterioară) se completează când emiți o factură de corecție, de stornare sau o notă de credit și trebuie să arăți factura pe care o corectezi. În XML, fiecare astfel de referință înseamnă un element cac:InvoiceDocumentReference cu numărul facturii vechi în cbc:ID, grupate în cac:BillingReference. CIUS-RO permite cel mult 500 de astfel de elemente în același grup, ceea ce e mult peste nevoile reale; eroarea apare când programul de facturare adaugă automat în factură lista tuturor facturilor emise anterior. Exemplul de mai jos e prescurtat din motive de spațiu: în realitate eroarea se declanșează doar de la a 501-a referință în același cac:BillingReference.

Cum repari

Deschide factura în programul de facturare și șterge referințele care nu au legătură cu corectura, păstrând maximum 500 de elemente cac:InvoiceDocumentReference în fiecare grup cac:BillingReference. Dacă softul generează automat lista facturilor anterioare, dezactivează opțiunea. Verifică și că fiecare cac:InvoiceDocumentReference are cbc:ID completat, altfel primești o altă eroare.

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:OrderReference>
    <cbc:ID>CMD-2024-77</cbc:ID>
  </cac:OrderReference>
  <cac:BillingReference>
    <cac:InvoiceDocumentReference>
      <cbc:ID>FCT-2024-0001</cbc:ID>
    </cac:InvoiceDocumentReference>
    <cac:InvoiceDocumentReference>
      <cbc:ID>FCT-2024-0002</cbc:ID>
    </cac:InvoiceDocumentReference>
    <cac:InvoiceDocumentReference>
      <cbc:ID>FCT-2024-0003</cbc:ID>
    </cac:InvoiceDocumentReference>
    <!-- aici lista continua cu referinte identice pana la a 501-a, ceea ce incalca limita -->
  </cac:BillingReference>
  <cac:ContractDocumentReference>
    <cbc:ID>CTR-2024-12</cbc:ID>
  </cac:ContractDocumentReference>
</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:OrderReference>
    <cbc:ID>CMD-2024-77</cbc:ID>
  </cac:OrderReference>
  <cac:BillingReference>
    <cac:InvoiceDocumentReference>
      <cbc:ID>FCT-2024-0001</cbc:ID>
    </cac:InvoiceDocumentReference>
  </cac:BillingReference>
  <cac:ContractDocumentReference>
    <cbc:ID>CTR-2024-12</cbc:ID>
  </cac:ContractDocumentReference>
</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ă

O factura trebuie sa contina maximum 500 de aparitii ale grupului Referinta la o factura anterioara (BG-3)

Textul oficial, în engleză

The allowed maximum number of occurences of Preceding invoice reference (BG-3) is 500.

Unde se aplică

//cac:BillingReference

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

count(cac:InvoiceDocumentReference) <= 500
Ce nu rezultă din textul oficial al regulii

Nu am putut confirma dacă validatorul ANAF cumulează referințele din toate grupurile cac:BillingReference sau le verifică separat pe fiecare grup; XPath-ul dat le numără separat, în interiorul fiecărui grup, deci teoretic mai multe grupuri ar trece de control. De asemenea, fragmentul de mai sus este prescurtat: pentru a declanșa efectiv eroarea sunt necesare 501 elemente cac:InvoiceDocumentReference identice ca structură în același cac:BillingReference.