Codul regulii este BR-21.
Fiecare linie de factură (BG-25) trebuie să conțină un identificator propriu, elementul cbc:ID (BT-126), primul copil al lui cac:InvoiceLine. Fără el, ANAF nu poate identifica linia la care se referă cantitățile, prețul și cota de TVA, iar factura este respinsă. Nu contează că numărul este 1, 2, 10 sau un cod de articol: contează să existe și să fie unic în cadrul facturii.
Verifică generatorul de XML și asigură-te că pentru fiecare cac:InvoiceLine scrie un cbc:ID imediat după deschiderea liniei, înaintea cantității. Dacă în baza ta de date linia nu are un număr propriu, folosește numărul de ordine al liniei (1, 2, 3...), care este unic prin construcție și nu se repetă dacă reordonai liniile manual.
<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:InvoiceLine>
</cac:InvoiceLine>
</ubl:Invoice><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:InvoiceLine>
<cbc:ID>1</cbc:ID>
</cac:InvoiceLine>
</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.
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.Each Invoice line (BG-25) shall have an Invoice line identifier (BT-126).
$Invoice_Line
$BR-21
Nu pot confirma din datele primite dacă validatorul ANAF impune un format anume pentru BT-126 (de exemplu doar cifre sau o lungime maximă); EN 16931 nu restrânge formatul, dar nu exclud o condiție suplimentară în schematronul CIUS-RO. De asemenea, fragmentele sunt scrise cu rădăcina <ubl:Invoice>, conform convenției cerute, în timp ce factura de referință folosește elementul <Invoice> în spațiul de nume implicit.