Erori e-FacturaBR-RO-A500

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 inseamna

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

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

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

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

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

Textul oficial, in engleza

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

Unde se aplica

//cac:BillingReference

Conditia care trebuie sa fie adevarata

count(cac:InvoiceDocumentReference) <= 500
Ce nu rezulta 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.