Eroare BR-RO-210a e-Factura: codul judetului lipseste din adresa de livrare
Eroarea BR-RO-210a apare cand adresa de livrare exista in factura dar lipseste CountrySubentityCode (codul judetului). Cauze, coduri ISO si solutii.
Daca ai primit eroarea BR-RO-210a, factura ta contine un bloc de adresa de livrare (<cac:Delivery>) dar acestui bloc ii lipseste elementul CountrySubentityCode, adica codul judetului sau al sectorului pentru Bucuresti. Regula se aplica doar adreselor romanesti: daca IdentificationCode al tarii este "RO", atunci CountrySubentityCode este obligatoriu.
Ce inseamna eroarea BR-RO-210a
In standardul european EN 16931, adresa de livrare (grupul BG-15) este optionala. Daca o incluzi in factura, CIUS-RO impune reguli suplimentare pentru adresele din Romania. Una dintre acestea este BR-RO-210a: cand adresa de livrare este prezenta si tara este Romania, elementul CountrySubentityCode (BT-79) trebuie sa fie completat cu codul ISO 3166-2 al judetului.
In UBL 2.1, structura se gaseste in <cac:Delivery><cac:DeliveryLocation><cac:Address>. Elementul obligatoriu este <cbc:CountrySubentityCode> si trebuie sa contina un cod de forma "RO-XX", unde XX este abrevierea judetului conform ISO 3166-2:RO.
Exemple de coduri: "RO-B" pentru Bucuresti, "RO-CJ" pentru Cluj, "RO-TM" pentru Timis, "RO-IS" pentru Iasi, "RO-BV" pentru Brasov. Lista completa a celor 41 de judete plus Bucuresti este in standardul ISO 3166-2:RO.
De ce apare aceasta eroare
Exista mai multe cauze care duc la BR-RO-210a.
1. Blocul de livrare este generat automat fara toate campurile. Unele sisteme ERP adauga blocul <cac:Delivery> implicit la fiecare factura, dar nu completeaza CountrySubentityCode deoarece acesta nu era obligatoriu in versiunile anterioare ale specificatiei.
2. Adresa de livrare copiata dintr-o alta sursa. Daca adresa de livrare vine dintr-un CRM sau dintr-un formular de comanda, este posibil ca sistemul sa nu aiba un camp dedicat pentru judet in formatul cod ISO. Rezultatul in XML este o adresa incompleta.
3. Judetul este completat ca text liber, nu ca cod ISO. Unele sisteme scriu "Cluj" sau "Timisoara" in campul de judet in loc de "RO-CJ" sau "RO-TM". Validatorul ANAF asteapta formatul ISO 3166-2, nu text liber.
4. Adresa de livrare adaugata manual in XML fara CountrySubentityCode. La editarea manuala, este usor de omis un element mai putin cunoscut. Daca ai adaugat blocul de livrare recent intr-un template, verifica daca include si codul judetului.
5. Adresa de livrare inclusa unnecessary. Uneori blocul de livrare este inclus fara sa fie nevoie, copiind adresa cumparatorului. Daca livrarea se face la adresa normala a cumparatorului, nu este nevoie de un bloc separat de livrare in factura.
Exemplu XML
Mai jos este structura incorecta urmata de varianta corecta si de alternativa de a omite complet blocul.
XML incorect (CountrySubentityCode lipseste):
<!-- INCORECT: adresa de livrare fara CountrySubentityCode -->
<cac:Delivery>
<cac:DeliveryLocation>
<cac:Address>
<cbc:StreetName>Str. Florilor nr. 3</cbc:StreetName>
<cbc:CityName>Brasov</cbc:CityName>
<cac:Country>
<cbc:IdentificationCode>RO</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
</cac:Delivery>XML corect (cu codul judetului Brasov):
<!-- CORECT: adresa de livrare cu CountrySubentityCode -->
<cac:Delivery>
<cac:DeliveryLocation>
<cac:Address>
<cbc:StreetName>Str. Florilor nr. 3</cbc:StreetName>
<cbc:CityName>Brasov</cbc:CityName>
<cbc:CountrySubentityCode>RO-BV</cbc:CountrySubentityCode>
<cac:Country>
<cbc:IdentificationCode>RO</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
</cac:Delivery>Alternativa: omite blocul de livrare daca nu este necesar:
<!-- ALTERNATIVA: omite complet blocul de livrare daca livrarea
se face la adresa cumparatorului -->
<!-- Nu include deloc elementul <cac:Delivery> in XML -->Coduri ISO 3166-2 pentru cele mai frecvente judete din Romania:
| Cod ISO | Judet / Localitate |
|---|---|
RO-B | Bucuresti |
RO-AB | Alba |
RO-AR | Arad |
RO-BC | Bacau |
RO-BH | Bihor |
RO-BN | Bistrita-Nasaud |
RO-BT | Botosani |
RO-BV | Brasov |
RO-BR | Braila |
RO-BZ | Buzau |
RO-CL | Calarasi |
RO-CS | Caras-Severin |
RO-CJ | Cluj |
RO-CT | Constanta |
RO-CV | Covasna |
RO-DB | Dambovita |
RO-DJ | Dolj |
RO-GL | Galati |
RO-GR | Giurgiu |
RO-GJ | Gorj |
RO-HR | Harghita |
RO-HD | Hunedoara |
RO-IL | Ialomita |
RO-IS | Iasi |
RO-IF | Ilfov |
RO-MM | Maramures |
RO-MH | Mehedinti |
RO-MS | Mures |
RO-NT | Neamt |
RO-OT | Olt |
RO-PH | Prahova |
RO-SM | Satu Mare |
RO-SJ | Salaj |
RO-SB | Sibiu |
RO-SV | Suceava |
RO-TR | Teleorman |
RO-TM | Timis |
RO-TL | Tulcea |
RO-VS | Vaslui |
RO-VL | Valcea |
RO-VN | Vrancea |
Cum o rezolvi pas cu pas
- Decide daca ai nevoie de blocul de livrare. Daca livrarea se face la adresa normala a cumparatorului, elimina complet elementul
<cac:Delivery>din XML. Aceasta este solutia cea mai simpla si elimina nevoia de a gestiona campurile obligatorii din blocul de livrare. - Daca ai nevoie de o adresa de livrare specifica, asigura-te ca blocul contine
CountrySubentityCode. Valoarea trebuie sa fie in format ISO 3166-2, de exemplu "RO-TM" pentru Timis. - Gaseste codul judetului din tabelul de mai sus sau din lista ISO 3166-2:RO. Formatul este intotdeauna "RO-" urmat de doua litere.
- Adauga elementul in XML:
<cbc:CountrySubentityCode>RO-CJ</cbc:CountrySubentityCode>, plasat in sectiunea<cac:Address>din blocul de livrare. - Verifica si campul CityName din adresa de livrare. Daca este prezent, regulile pentru orase din Bucuresti (scriere ca sector) se aplica si aici.
- Retrimite factura si verifica raspunsul din SPV.
Previne eroarea cu Billyou
Billyou gestioneaza blocul de adresa de livrare in mod inteligent. Daca nu specifici o adresa de livrare distincta, blocul este omis complet din XML. Daca specifici o adresa, Billyou verifica automat prezenta CountrySubentityCode si formatul corect al codului de judet.
Nu trebuie sa cunosti codurile ISO ale judetelor. Billyou are o lista integrata si le mapeaza automat din selectia facuta in interfata.
Citeste si articolul despre eroarea BR-RO-090 pentru probleme legate de adresa vanzatorului, si cel despre eroarea BR-RO-100 pentru cazuri specifice Bucurestiului.
Intrebari frecvente
Eroarea apare chiar daca adresa de livrare este la aceeasi adresa cu cumparatorul?
Da. Daca incluzi blocul <cac:Delivery> in XML, validatorul aplica regulile pentru adresa de livrare indiferent daca valorile sunt identice cu ale cumparatorului. Daca nu ai o adresa de livrare diferita, cea mai simpla solutie este sa omiti complet blocul de livrare.
Ce format trebuie sa aiba CountrySubentityCode?
Formatul este ISO 3166-2, adica "RO-" urmat de doua litere mari. De exemplu "RO-B" pentru Bucuresti, "RO-CJ" pentru Cluj, "RO-TM" pentru Timis. Nu scrie doar "CJ" sau "Cluj" fara prefixul "RO-".
BR-RO-210a se aplica si adreselor de livrare din afara Romaniei?
Nu. Regula BR-RO-210a se aplica doar cand IdentificationCode al tarii din adresa de livrare este "RO". Daca livrezi in alta tara, aceasta regula nu se aplica, dar pot exista alte reguli din CIUS-RO sau EN 16931 care sa se aplice.
Pot specifica adresa de livrare ca text liber in loc de cod ISO?
Nu pentru CountrySubentityCode. Acesta trebuie sa fie un cod ISO 3166-2 valid. Pentru campul CountrySubentity (diferit de CountrySubentityCode) poti folosi text liber, dar acest camp nu inlocuieste codul ISO obligatoriu.