coduri
Codul monedei trebuie să fie ISO 4217 din 3 litere: RON, nu LEI
Codul regulii este BR-CL-04.
Mesajul exact din validatorul ANAF
Ce înseamnă
BT-5 (DocumentCurrencyCode) acceptă doar coduri din lista închisă ISO 4217 alpha-3, exact așa cum sunt scrise în listă. ANAF respinge abrevierile locale (LEI), literele mici (ron) sau orice cod care nu apare în listă, chiar dacă factura e corectă din punct de vedere aritmetic. Regula se aplică o singură dată, pe elementul de la nivel de factură, nu pe atributele currencyID de pe sume.
Cum repari
În programul de facturare, câmpul de monedă trebuie să conțină codul ISO, nu denumirea populară: scrie RON, nu LEI și nu ron. Verifică și că nu ai spații înainte sau după cod și că lista de monede din aplicație folosește ISO 4217 (EUR, USD, RON etc.).
Exemplu
Așa pică
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:DocumentCurrencyCode>LEI</cbc:DocumentCurrencyCode>
</Invoice>Așa trece
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
<cbc:DocumentCurrencyCode>RON</cbc:DocumentCurrencyCode>
</Invoice>Greșeala asta strică și alte verificări, deci în același răspuns vei găsi și: BR-CO-15, BR-RO-030. Le repari pe toate odată cu asta.
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ă
Invoice currency code MUST be coded using ISO code list 4217 alpha-3
Unde se aplică
cbc:DocumentCurrencyCode
Condiția care trebuie să fie adevărată
((not(contains(normalize-space(.), ' ')) and contains(' AED AFN ALL AMD ANG AOA ARS AUD AWG AZN BAM BBD BDT BGN BHD BIF BMD BND BOB BOV BRL BSD BTN BWP BYN BZD CAD CDF CHE CHF CHW CLF CLP CNY COP COU CRC CUC CUP CVE CZK DJF DKK DOP DZD EGP ERN ETB EUR FJD FKP GBP GEL GHS GIP GMD GNF GTQ GYD HKD HNL HRK HTG HUF IDR ILS INR IQD IRR ISK JMD JOD JPY KES KGS KHR KMF KPW KRW KWD KYD KZT LAK LBP LKR LRD LSL LYD MAD MDL MGA MKD MMK MNT MOP MRO MUR MVR MWK MXN MXV MYR MZN NAD NGN NIO NOK NPR NZD OMR PAB PEN PGK PHP PKR PLN PYG QAR RON RSD RUB RWF SAR SBD SCR SDG SEK SGD SHP SLL SOS SRD SSP STD SVC SYP SZL THB TJS TMT TND TOP TRY TTD TWD TZS UAH UGX USD USN UYI UYU UZS VEF VND VUV WST XAF XAG XAU XBA XBB XBC XBD XCD XDR XOF XPD XPF XPT XSU XTS XUA XXX YER ZAR ZMW ZWL ', concat(' ', normalize-space(.), ' '))))Ce nu rezultă din textul oficial al regulii
Nu am putut confirma din datele primite dacă validatorul ANAF tratează identic spațiile: testul folosește normalize-space(), deci un cod scris „RON ” (cu spațiu la final) ar trece de această regulă — nu conta pe spații ca motiv de respingere. De asemenea, fragmentele respectă forma din factura de referință, unde elementul rădăcină este <Invoice> cu namespace implicit, nu <ubl:Invoice> cu prefix.