Cum validezi un XML e-Factura inainte sa-l trimiti la ANAF

Validarea XML e-Factura inainte de trimitere previne respingerile ANAF. Afla metodele disponibile: mediu de test, XSD, Schematron si unelte online.

Cum validezi un XML e-Factura inainte sa-l trimiti la ANAF
Photo by Kelly Sikkema on Unsplash

Un XML e-Factura poate fi respins de ANAF din zeci de motive: campuri lipsa, coduri gresite, erori de calcul, structura invalida. Respingerea nu anuleaza obligatia ta de a trimite factura in termen, asa ca trebuie sa corectezi si sa retrimiti rapid. Validarea prealabila elimina acest risc.

De ce validezi inainte de trimitere

Exista trei motive principale:

  1. ANAF respinge definitiv XML-urile invalide. Nu le pune in asteptare, nu le corecteaza automat. Primesti un mesaj de eroare si trebuie sa retrimiti un fisier nou.
  2. Termenul de trimitere nu se opreste. Daca factura trebuie trimisa in 5 zile lucratoare si o respingere iti ia 2 zile ca sa o depistezi si corectezi, ramai fara timp.
  3. Respingerile acumulate pot semnala probleme sistemice. La un audit, un numar mare de facturi respinse si retrimise poate ridica intrebari despre procesele tale de facturare.

Optiuni de validare disponibile

Ai mai multe metode, in functie de contextul tau tehnic:

1. Validatorul oficial al Ministerului Finantelor

Ministerul Finantelor pune la dispozitie un validator oficial de XML la mfinante.gov.ro/web/efactura/validare-xml-factura. Incarci fisierul si primesti raportul de validare cu eventualele erori. Util pentru validare ad-hoc inainte de transmitere.

2. Mediul de test ANAF

ANAF pune la dispozitie un mediu de test (sandbox) la adresa https://api.anaf.ro/test/FCTEL/rest/. Trimiti XML-ul exact ca in productie, dar facturile nu sunt procesate real, nu ajung la cumparator si nu sunt stocate permanent.

Avantaj: validezi exact ce ar vedea ANAF in productie, cu aceleasi reguli. Dezavantaj: ai nevoie de credentiale SPV valide si de o conexiune configurata pentru mediul de test.

2. Validare XSD locala

ANAF publica fisierele XSD (XML Schema Definition) pe anaf.ro, in sectiunea "e-Factura" la "Specificatii tehnice". Descarcand schema CIUS-RO, poti valida local orice XML cu unelte standard:

xmllint --schema CIUS-RO.xsd factura.xml --noout

Validarea XSD verifica structura documentului: daca elementele exista, daca sunt in locul corect, daca tipurile de date sunt respectate. Nu verifica regulile de business (de exemplu, daca sumele se aduna corect).

3. Validare Schematron

Schematron este un limbaj de validare mai avansat decat XSD. Verifica regulile de business: regulile BR-* din EN 16931 si regulile BR-RO-* specifice CIUS-RO. Fisierele Schematron pentru CIUS-RO sunt publicate de ANAF alaturi de XSD.

Poti rula Schematron cu Saxon sau cu alte procesoare XSLT. Este pasul care prinde cele mai multe erori reale, inclusiv cele de calcul (BR-CO-10) si cele de codificare (coduri TVA invalide, unitati de masura invalide).

4. Unelte online

Exista unelte online construite de comunitatea ANAF care permit incarcarea unui XML si validarea imediata. Cauta "validator e-Factura CIUS-RO" pentru optiunile disponibile la momentul actual. Atentie: nu incarca XML-uri cu date reale de afaceri pe servicii terte necunoscute.

XSD si Schematron: ce verifica fiecare

Este important sa intelegi ce acoperire ofera fiecare tip de validare:

  • XSD verifica schema: structura, prezenta campurilor obligatorii, tipuri de date, atribute. Un XML care trece XSD are forma corecta, dar poate contine totusi erori logice.
  • Schematron verifica regulile de business: sume corecte, coduri valide, consistenta interna a documentului. Un XML care trece Schematron este valid din punct de vedere al regulilor CIUS-RO.
  • Mediul de test ANAF ruleaza ambele tipuri de validare plus orice verificari suplimentare pe care ANAF le aplica intern.

Validarea completa inseamna sa treci prin toate cele trei niveluri, in aceasta ordine: XSD, Schematron, test ANAF.

Erori comune prinse la validare

Iata cele mai frecvente erori pe care validarea le detecteaza inainte ca factura sa ajunga la ANAF:

  • BR-CO-10: suma valorilor nete ale liniilor nu este egala cu totalul net. Cauza: rotunjire inconsistenta. Detalii in articolul Eroare BR-CO-10.
  • BR-RO-020: CUI-ul cumparatorului sau furnizorului nu respecta formatul corect pentru Romania.
  • Unitati de masura invalide: text liber in loc de cod UN/CEFACT (de exemplu, "buc" in loc de "C62").
  • Coduri TVA incorecte: folosirea unui cod de exceptie TVA fara elementul de justificare corespunzator.
  • Campuri obligatorii lipsa: adresa furnizorului incompleta, lipsa BIC-ului bancar cand contul IBAN este prezent.
  • Encoding gresit: caractere speciale necodificate corect in XML (de exemplu, & in loc de &).

Validare automata cu Billyou

Billyou valideaza fiecare factura automat inainte de trimiterea la ANAF. Validarea include schema XSD, regulile Schematron CIUS-RO si verificarile suplimentare specifice Billyou. Daca ceva nu este in regula, primesti un mesaj clar inainte ca factura sa plece, nu un mesaj de respingere de la ANAF.

Nu trebuie sa descarci fisiere XSD, sa instalezi xmllint sau sa cauti validatoare online. Totul se intampla automat.

Poti incepe gratuit la app.billyou.ro/register.

Daca construiesti o integrare, sandbox-ul Billyou repliceaza validarea completa ANAF. Testezi integrarea acolo inainte de a trece in productie. Primesti raspunsuri detaliate pentru fiecare eroare, cu referinte la regulile CIUS-RO incalcate.

Articole conexe: Eroare BR-CO-10: rotunjire incorecta.

Intrebari frecvente

Daca trec validarea XSD, inseamna ca ANAF va accepta factura?

Nu neaparat. XSD verifica numai structura. ANAF ruleaza si validarea Schematron (reguli de business) si poate aplica verificari suplimentare proprii. Treci prin toate nivelurile de validare inainte sa consideri factura gata de trimis.

Mediul de test ANAF este identic cu productia?

In mare parte da, dar poate exista un decalaj temporar intre actualizarile din productie si cele din mediul de test. Daca ai dubii, valideaza si in test, dar nu considera testul ca singura garantie.

Pot valida un XML care contine date reale cu unelte online?

Nu este recomandat. Datele fiscale sunt confidentiale. Foloseste validarea locala (XSD + Schematron) sau sandbox-ul Billyou, unde datele sunt protejate prin aceleasi masuri de securitate ca in productie.

Cat de des se schimba regulile de validare CIUS-RO?

ANAF actualizeaza specificatiile CIUS-RO periodic, de obicei o data pe an sau la schimbari legislative. Urmareste anaf.ro pentru versiunile actualizate ale XSD si Schematron.

Citește mai mult