coduri
Codul țării de origine trebuie să fie cod ISO 3166-1 din două litere
Codul regulii este BR-CL-15.
Mesajul exact din validatorul ANAF
Ce înseamnă
BR-CL-15 se uită la elementul cac:OriginCountry/cbc:IdentificationCode din linia facturii, adică la țara de origine a bunului (BT-159), și cere să conțină exclusiv un cod ISO 3166-1 alpha-2, fără spații, fără cratimă, fără punct. Dacă acolo scrie numele țării în clar ("România", "Germania") sau un cod de trei litere, factura este respinsă, chiar dacă restul datelor sunt corecte. În factura de referință acest element nu există deloc, deci regula nu se aplică; se aplică doar în momentul în care îl completați.
Cum repari
În programul de facturare, câmpul "țara de origine" de pe linie trebuie să fie o listă derulantă cu coduri ISO de două litere, nu un câmp liber de text. Dacă îl lăsați necompletat, ștergeți complet grupul cac:OriginCountry din linie; dacă îl completați, puneți doar codul, de exemplu RO, DE, IT.
Exemplu
Așa pică
<ubl:Invoice>
<cac:InvoiceLine>
<cac:Item>
<cbc:Name>Serviciu de consultanta</cbc:Name>
<cac:OriginCountry>
<cbc:IdentificationCode>Romania</cbc:IdentificationCode>
</cac:OriginCountry>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
</cac:InvoiceLine>
</ubl:Invoice>Așa trece
<ubl:Invoice>
<cac:InvoiceLine>
<cac:Item>
<cbc:Name>Serviciu de consultanta</cbc:Name>
<cac:OriginCountry>
<cbc:IdentificationCode>RO</cbc:IdentificationCode>
</cac:OriginCountry>
<cac:ClassifiedTaxCategory>
<cbc:ID>S</cbc:ID>
<cbc:Percent>19.00</cbc:Percent>
<cac:TaxScheme>
<cbc:ID>VAT</cbc:ID>
</cac:TaxScheme>
</cac:ClassifiedTaxCategory>
</cac:Item>
</cac:InvoiceLine>
</ubl:Invoice>ro16931-ubl-1.0.9. Factura cu fragmentul din stânga a fost respinsă cu exact 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ă
Country codes in an invoice MUST be coded using ISO code list 3166-1
Unde se aplică
cac:OriginCountry/cbc:IdentificationCode
Condiția care trebuie să fie adevărată
((not(contains(normalize-space(.), ' ')) and contains(' 1A AD AE AF AG AI AL AM AO AQ AR AS AT AU AW AX AZ BA BB BD BE BF BG BH BI BJ BL BM BN BO BQ BR BS BT BV BW BY BZ CA CC CD CF CG CH CI CK CL CM CN CO CR CU CV CW CX CY CZ DE DJ DK DM DO DZ EC EE EG EH ER ES ET FI FJ FK FM FO FR GA GB GD GE GF GG GH GI GL GM GN GP GQ GR GS GT GU GW GY HK HM HN HR HT HU ID IE IL IM IN IO IQ IR IS IT JE JM JO JP KE KG KH KI KM KN KP KR KW KY KZ LA LB LC LI LK LR LS LT LU LV LY MA MC MD ME MF MG MH MK ML MM MN MO MP MQ MR MS MT MU MV MW MX MY MZ NA NC NE NF NG NI NL NO NP NR NU NZ OM PA PE PF PG PH PK PL PM PN PR PS PT PW PY QA RE RO RS RU RW SA SB SC SD SE SG SH SI SJ SK SL SM SN SO SR SS ST SV SX SY SZ TC TD TF TG TH TJ TK TL TM TN TO TR TT TV TW TZ UA UG UM US UY UZ VA VC VE VG VI VN VU WF WS XI YE YT ZA ZM ZW ', concat(' ', normalize-space(.), ' '))))Ce nu rezultă din textul oficial al regulii
În factura de referință cac:OriginCountry nu apare nicăieri, așa că l-am adăugat în ambele fragmente pe poziția din secvența UBL 2.1 a lui cac:Item, adică după cbc:Name și înainte de cac:ClassifiedTaxCategory (între ele ar mai putea sta cac:StandardItemIdentification, care la noi lipsește). Nu am putut confirma dacă validatorul ANAF verifică și ordinea XSD, nu doar schematronul, deci dacă îl inserați în alt loc vă rog să verificați. De asemenea, nu am informații sigure dacă CIUS-RO impune completarea BT-159 în anumite situații; BR-CL-15 reglementează doar formatul codului, nu obligația de a-l completa.