Erori e-Factura

EN16931

O factură poate avea cel mult un mandat de plată

Codul regulii este BR-67.

Mesajul exact din validatorul ANAF

org.xml.sax.SAXParseException; lineNumber: 133; columnNumber: 96; cvc-complex-type.2.4.a: Invalid content was found starting with element '{"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":PaymentMandate}'. One of '{"urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2":TradeFinancing}' is expected.

Ce înseamnă

Grupul BG-19 (mandatul de plată) descrie debitarea directă: referința mandatului, identificatorul creditorului atribuit de bancă și contul debitat. EN 16931 îl admite o singură dată pe factură, pentru că altfel nu se poate ști care mandat se aplică la plată. Regula nu obligă să ai mandat, doar limitează numărul la unul. Dacă nu încasezi prin debit direct, poți să nu ai deloc acest grup.

Cum repari

Verifică în programul de facturare că blocul de mandat se generează o singură dată la nivel de factură, nu o dată pentru fiecare modalitate de plată sau pentru fiecare linie. Dacă ai mai multe mandate, păstrează unul singur, cel valabil, și șterge restul. Dacă factura nu se încasează prin debit direct, elimină complet elementul de mandat.

Exemplu

Așa pică

<ubl:Invoice>
  <cac:PaymentMeans>
    <cbc:PaymentMeansCode>31</cbc:PaymentMeansCode>
    <cac:PayeeFinancialAccount>
      <cbc:ID>RO49AAAA1B31007593840000</cbc:ID>
    </cac:PayeeFinancialAccount>
    <cac:PaymentMandate>
      <cbc:ID>MANDAT-2024-001</cbc:ID>
    </cac:PaymentMandate>
    <cac:PaymentMandate>
      <cbc:ID>MANDAT-2024-002</cbc:ID>
    </cac:PaymentMandate>
  </cac:PaymentMeans>
</ubl:Invoice>

Așa trece

<ubl:Invoice>
  <cac:PaymentMeans>
    <cbc:PaymentMeansCode>31</cbc:PaymentMeansCode>
    <cac:PayeeFinancialAccount>
      <cbc:ID>RO49AAAA1B31007593840000</cbc:ID>
    </cac:PayeeFinancialAccount>
    <cac:PaymentMandate>
      <cbc:ID>MANDAT-2024-001</cbc:ID>
    </cac:PaymentMandate>
  </cac:PaymentMeans>
</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ă

An Invoice shall contain maximum one Payment Mandate (BG-19).

Unde se aplică

$Invoice

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

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

Testul XPath a fost dat doar ca "$BR-67", fără expresia completă, așa că am presupus că se numără aparițiile elementului de mandat de plată la nivel de factură. Nu am putut confirma din datele primite poziția exactă a lui cac:PaymentMandate în secvența UBL 2.1 a lui cac:PaymentMeans (l-am așezat după cac:PayeeFinancialAccount) și nici maparea exactă a câmpurilor BT-89, BT-90, BT-91 pe elementele copil; conținutul folosit în exemplu este strict ilustrativ și trebuie înlocuit cu datele reale ale mandatului.