Erori e-Factura

EN16931

Data exigibilității TVA și codul ei nu pot apărea amândouă

Codul regulii este BR-CO-03.

Mesajul exact din validatorul ANAF

org.xml.sax.SAXParseException; lineNumber: 17; columnNumber: 72; cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":TaxPointDateCode}'. One of '{"urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":DocumentCurrencyCode, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":TaxCurrencyCode, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":PricingCurrencyCode, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":PaymentCurrencyCode, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":PaymentAlternativeCurrencyCode, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":AccountingCostCode, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":AccountingCost, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":LineCountNumeric, "urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2":BuyerReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":InvoicePeriod, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":OrderReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":BillingReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":DespatchDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":ReceiptDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":StatementDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":OriginatorDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":ContractDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":AdditionalDocumentReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":ProjectReference, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":Signature, "urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":AccountingSupplierParty}' is expected.

Ce înseamnă

BT-7 (cbc:TaxPointDate) este data la care devine exigibilă TVA, iar BT-8 (cbc:TaxPointDateCode) exprimă aceeași informație printr-un cod. Sunt două modalități alternative de a spune același lucru, de aceea EN 16931 le consideră mutual exclusive: dacă apar amândouă, nu se știe care dintre ele este cel real. Poți folosi oricare dintre ele, dar numai unul singur pe factură. Factura de referință nu conține niciunul, deci regula trece prin simpla absență.

Cum repari

Dezactivează în programul de facturare una dintre cele două opțiuni: păstrează fie data exigibilității (BT-7), fie codul (BT-8), nu pe amândouă. Dacă ambele sunt generate automat, șterge din șablon elementul cbc:TaxPointDateCode și lasă doar cbc:TaxPointDate (sau invers, după cum lucrează contabilitatea ta).

Exemplu

Așa pică

<ubl:Invoice>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:TaxPointDate>2024-06-05</cbc:TaxPointDate>
  <cbc:TaxPointDateCode>3</cbc:TaxPointDateCode>
  <cbc:DocumentCurrencyCode>RON</cbc:DocumentCurrencyCode>
</ubl:Invoice>

Așa trece

<ubl:Invoice>
  <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode>
  <cbc:TaxPointDate>2024-06-05</cbc:TaxPointDate>
  <cbc:DocumentCurrencyCode>RON</cbc:DocumentCurrencyCode>
</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 engleză

Value added tax point date (BT-7) and Value added tax point date code (BT-8) are mutually exclusive.

Unde se aplică

$Invoice

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

$BR-CO-03
Ce nu rezultă din textul oficial al regulii

Factura de referință nu conține nici BT-7, nici BT-8, deci nu pot confirma din datele primite nici poziția exactă a lui cbc:TaxPointDateCode în secvența UBL (l-am așezat imediat după cbc:TaxPointDate și înainte de cbc:DocumentCurrencyCode), nici lista de coduri admise pentru BT-8. Valoarea 3 din fragmentul greșit este doar ilustrativă și trebuie înlocuită cu codul pe care îl emite programul tău.