Eroare BR-RO-L050 e-Factura: localitatea de livrare depaseste 50 de caractere
Eroarea BR-RO-L050 apare cand elementul CityName din adresa de livrare are mai mult de 50 de caractere. Cauze frecvente si solutii rapide.
Daca ai primit eroarea BR-RO-L050, campul de localitate din adresa de livrare a facturii tale contine mai mult de 50 de caractere. Aceasta este o constrangere de lungime impusa de specificatia CIUS-RO pentru elementul CityName (BT-77) din adresa de livrare. Valoarea exacta permisa este de maximum 50 de caractere, spatiile incluse.
Ce inseamna eroarea BR-RO-L050
CIUS-RO defineste limite de lungime pentru mai multe campuri text din factura electronica. Aceste limite sunt numite reguli "L" (de la "length"). BR-RO-L050 priveste specific elementul cbc:CityName din blocul de adresa de livrare, corespunzator campului BT-77 in EN 16931.
Regula spune simplu: valoarea din CityName al adresei de livrare nu poate depasi 50 de caractere. Daca sirul de caractere din acel element este mai lung, factura este respinsa.
Reguli similare exista si pentru alte campuri de adresa in CIUS-RO. De exemplu, BR-RO-L040 limiteaza strada la un anumit numar de caractere, iar BR-RO-L060 poate limita alte campuri. Daca ai primit mai multe erori L simultan, verifica fiecare camp de adresa din factura.
Este important de inteles ca aceasta regula se aplica doar adresei de livrare (blocul <cac:Delivery>). Adresa vanzatorului si adresa cumparatorului au propriile reguli de lungime, diferite.
De ce apare aceasta eroare
Eroarea BR-RO-L050 este rara, dar apare in cateva situatii specifice.
1. Adresa completa pusa in campul de localitate. Aceasta este cea mai frecventa cauza. In loc sa completeze doar numele localitatii in CityName, sistemul sau utilizatorul pune intreaga adresa: "Sat Fundatura, Comuna Marginea, Judetul Suceava, cod 727315". Aceasta depaseste cu siguranta 50 de caractere.
2. Localitati cu nume compuse lungi. Romania are localitati cu nume oficiale lungi, in special sate si comune din Transilvania sau Bucovina. Un exemplu: "Sangeorgiu de Padure" are 21 de caractere si este in limita, dar combinat cu alte informatii poate depasi limita. Totusi, chiar si cele mai lungi nume de localitati din Romania se incadreaza in 50 de caractere daca sunt scrise corect.
3. Date importate dintr-un sistem care combina mai multe campuri. Daca adresa de livrare vine dintr-un sistem extern care stocheaza intreaga adresa intr-un singur camp, exportul poate trimite toate datele in CityName.
4. Includere accidentala a codului postal in localitate. Unele sisteme adauga codul postal la sfarsitul numelui localitatii: "Cluj-Napoca 400117". Desi aceasta varianta este sub 50 de caractere, codul postal trebuie sa fie in elementul PostalZone, nu in CityName.
Exemplu XML
Mai jos este structura incorecta urmata de doua variante corecte.
XML incorect (adresa completa in CityName, depaseste 50 de caractere):
<!-- INCORECT: CityName depaseste 50 de caractere (adresa completa pusa gresit) -->
<cac:Delivery>
<cac:DeliveryLocation>
<cac:Address>
<cbc:CityName>Sat Fundatura, Comuna Marginea, Judetul Suceava, 727315</cbc:CityName>
<cbc:CountrySubentityCode>RO-SV</cbc:CountrySubentityCode>
<cac:Country>
<cbc:IdentificationCode>RO</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
</cac:Delivery>XML corect (doar numele localitatii in CityName, detalii in StreetName):
<!-- CORECT: CityName contine doar localitatea, adresa completa in StreetName -->
<cac:Delivery>
<cac:DeliveryLocation>
<cac:Address>
<cbc:StreetName>Sat Fundatura, Comuna Marginea</cbc:StreetName>
<cbc:CityName>Marginea</cbc:CityName>
<cbc:PostalZone>727315</cbc:PostalZone>
<cbc:CountrySubentityCode>RO-SV</cbc:CountrySubentityCode>
<cac:Country>
<cbc:IdentificationCode>RO</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
</cac:Delivery>XML corect pentru o localitate cu nume compus:
<!-- CORECT: localitate cu nume lung, prescurtat la sub 50 caractere -->
<cac:Delivery>
<cac:DeliveryLocation>
<cac:Address>
<cbc:StreetName>Str. Principala nr. 1, Sat Sancraiu de Mures</cbc:StreetName>
<cbc:CityName>Sancraiu de Mures</cbc:CityName>
<cbc:CountrySubentityCode>RO-MS</cbc:CountrySubentityCode>
<cac:Country>
<cbc:IdentificationCode>RO</cbc:IdentificationCode>
</cac:Country>
</cac:Address>
</cac:DeliveryLocation>
</cac:Delivery>Regula generala: CityName trebuie sa contina doar denumirea localitatii. Strada, numarul, satul, codul postal si alte detalii merg in elementele dedicate: StreetName, PostalZone, AdditionalStreetName.
Cum o rezolvi pas cu pas
- Numara caracterele din CityName. Deschide fisierul XML si gaseste elementul
<cbc:CityName>din adresa de livrare. Numara sau copiaza valoarea intr-un editor de text si verifica daca are mai mult de 50 de caractere. - Extrage doar numele localitatii. Retine in
CityNamedoar denumirea localitatii, de exemplu "Marginea" sau "Cluj-Napoca". Elimina orice altceva din acel camp. - Muta detaliile suplimentare in campurile corecte. Strada si numarul merg in
StreetName. Codul postal merge inPostalZone. Daca ai informatii suplimentare despre adresa, poti folosiAdditionalStreetName. - Daca numele localitatii singur depaseste 50 de caractere (ceea ce este foarte rar), prescurteaza-l. Foloseste forma prescurtata recunoscuta, de exemplu "Sf. Gheorghe" in loc de "Sfantu Gheorghe" daca versiunea prescurtata este sub limita.
- Verifica si celelalte campuri de adresa din acelasi bloc de livrare. Daca ai primit BR-RO-L050, este posibil ca si alte campuri sa depaseasca limitele lor specifice (BR-RO-L040 pentru strada, etc.).
- Retrimite factura si verifica raspunsul ANAF.
Previne eroarea cu Billyou
Billyou valideaza lungimea tuturor campurilor de adresa inainte de a trimite factura catre ANAF. Daca un camp depaseste limita CIUS-RO, primesti o notificare clara in interfata sau prin API inainte ca factura sa fie trimisa.
Campurile din Billyou sunt structurate corect: exista campuri separate pentru localitate, strada, cod postal si judet. Nu poti introduce intreaga adresa intr-un singur camp, ceea ce elimina cauza principala a erorii BR-RO-L050.
Citeste si articolul despre eroarea BR-RO-090 pentru adresa vanzatorului, si cel despre eroarea BR-RO-210a pentru codul de judet din adresa de livrare.
Intrebari frecvente
Exact cate caractere sunt permise in CityName?
Maximum 50 de caractere, spatiile incluse. Aceasta limita este definita explicit in specificatia CIUS-RO prin regula BR-RO-L050. Un sir cu exact 50 de caractere este acceptat. Un sir cu 51 de caractere declanseaza eroarea.
Limita de 50 de caractere se aplica si adresei vanzatorului sau cumparatorului?
Nu direct. BR-RO-L050 priveste specific campul CityName din adresa de livrare (BT-77). Adresa vanzatorului si a cumparatorului au propriile reguli de lungime in CIUS-RO, cu numere de regula diferite. Verifica specificatia CIUS-RO pentru limitele exacte ale celorlalte campuri.
Ce fac daca numele oficial al localitatii are mai mult de 50 de caractere?
In practica, nicio localitate din Romania nu are un nume oficial de peste 50 de caractere. Daca primesti eroarea, cauza este aproape sigur ca ai pus mai multe informatii in campul de localitate, nu ca localitatea in sine are un nume prea lung. Verifica si elimina orice text in afara denumirii localitatii.
BR-RO-L050 poate aparea si daca CityName contine diacritice?
Da, dar nu diacriticele in sine cauzeaza problema. Fiecare caracter, inclusiv literele cu diacritice, se numara ca un singur caracter. Diacriticele nu maresc artificial lungimea sirului. Cauza este intotdeauna lungimea totala a textului, indiferent de caracterele folosite.