Ghid practic
Cum transformi un XML e-Factura ANAF într-un PDF
Fișierul descărcat din Spațiul Privat Virtual este un document XML structurat pentru schimb automat de date între sisteme. Conține informațiile facturii în format UBL 2.1, conform profilului european EN 16931 și specificației naționale RO_CIUS, însă nu a fost gândit pentru citire sau tipărire. Deschis într-un browser, arată ca o înșiruire de etichete. Convertorul de aici îl redesenează ca pe o factură A4 obișnuită, pe care o puteți citi, verifica și trimite mai departe.
De unde vine fișierul XML
În practică ajunge la dumneavoastră pe trei căi: descărcat din Spațiul Privat Virtual al ANAF, primit direct de la furnizor pe e-mail, sau exportat din programul de contabilitate. Din SPV vine de regulă într-o arhivă ZIP care conține două fișiere: documentul UBL propriu-zis și un fișier de semnătură. Pe acesta din urmă convertorul îl va respinge — este nevoie de documentul cu rădăcina Invoice sau CreditNote.
Conversie locală în trei pași
- Selectați fișierul .xml primit sau descărcat. Dacă aveți o arhivă, dezarhivați-o întâi.
- VeloFile citește documentul și identifică furnizorul, cumpărătorul, numărul facturii, datele, liniile, cotele de TVA și totalurile.
- Descărcați PDF-ul A4. Fișierul original și documentul rezultat există doar în memoria browserului dumneavoastră.
Ce date sunt preluate din XML
Parserul nu se bazează pe prefixe fixe de spațiu de nume, așa că interpretează corect documente emise de programe diferite, care scriu aceleași etichete cu prefixe diferite. Din fiecare factură se citesc:
- Antetul documentului — numărul facturii, data emiterii, data scadenței, moneda și eventuala notă atașată.
- Părțile — denumirea legală a furnizorului și a clientului, codul de TVA, numărul de înregistrare, strada, orașul, codul poștal și țara.
- Liniile — numărul poziției, denumirea articolului sau serviciului, cantitatea împreună cu unitatea de măsură declarată, prețul unitar, valoarea netă și cota de TVA a poziției.
- Defalcarea TVA — baza impozabilă și valoarea taxei pentru fiecare cotă în parte, așa cum apar în TaxSubtotal.
- Totalurile — valoarea totală a liniilor, totalul fără TVA, totalul cu TVA și suma efectivă de plată.
Când o etichetă lipsește din document, convertorul folosește o alternativă rezonabilă în loc să se oprească: denumirea articolului poate veni din descriere, numărul poziției din ordinea ei, iar moneda din suma de plată. O factură incompletă se deschide, dar câmpurile absente apar ca liniuțe — ceea ce vă arată exact ce lipsește din original.
Facturi și note de credit
Sunt acceptate ambele tipuri de document. La o notă de credit se citesc liniile CreditNoteLine și cantitățile CreditedQuantity, iar pagina generată este titrată corespunzător, ca să nu confundați o stornare cu o factură obișnuită atunci când le tipăriți pe amândouă.
Ce nu face acest convertor
PDF-ul nu conține text selectabil. Fiecare pagină este desenată și încorporată ca imagine, deci nu puteți căuta în el cu Ctrl+F și nici copia sumele. Dacă aveți nevoie de datele în formă prelucrabilă, folosiți convertorul XML → CSV, care produce coloane gata de deschis în Excel.
PDF-ul nu înlocuiește originalul. Este o reprezentare vizuală. Documentul electronic care trebuie păstrat rămâne fișierul XML semnat sau validat.
Nu se face validare fiscală. Convertorul verifică dacă XML-ul este bine format și dacă respectă structura UBL, nu dacă factura este corectă din punct de vedere fiscal sau dacă a fost acceptată de ANAF.
Există o limită de 80 de pagini pentru o singură operație. Liniile curg automat pe pagini noi, cu antetul tabelului repetat, dar o factură cu sute de poziții poate depăși pragul.
De ce contează că prelucrarea se face local
O factură nu este un fișier oarecare. Conține denumirea clientului, codul fiscal, adresa, ce ați vândut, la ce preț și cât aveți de încasat. Într-un convertor obișnuit, documentul pleacă prin internet către serverele operatorului, unde rămâne pentru o vreme pe care nu o controlați.
Aici nu se întâmplă asta. Fișierul este citit prin File API, prelucrat în memoria filei și desenat de JavaScript în browserul dumneavoastră. Rețeaua este folosită o singură dată, pentru a descărca biblioteca de generare PDF; conținutul facturii nu face parte din acea cerere. Pentru un contabil care procesează facturile mai multor clienți, diferența nu este teoretică.
Probleme frecvente
„Documentul nu pare a fi o factură UBL 2.1.” Aproape întotdeauna ați încărcat fișierul de semnătură din arhiva SPV, nu factura. Căutați în arhivă fișierul al cărui conținut începe cu Invoice sau CreditNote.
„Fișierul XML nu este valid.” Documentul este trunchiat sau deteriorat, de obicei după o descărcare întreruptă. Descărcați-l din nou din SPV.
Apar liniuțe în loc de date. Câmpurile respective lipsesc din XML-ul original. Convertorul nu inventează valori; dacă emitentul nu a completat adresa sau codul de TVA, acestea nu există nici în document.
Sumele par greșite. Verificați moneda afișată în colțul paginii. O factură în EUR fără DocumentCurrencyCode completat poate fi interpretată după moneda declarată pe suma de plată.
Întrebări frecvente
Pot folosi PDF-ul în contabilitate?
PDF-ul este o reprezentare vizuală, pentru citit, verificat și tipărit. Documentul electronic care trebuie păstrat rămâne fișierul XML semnat sau validat, conform fluxului fiscal aplicabil. Trataţi PDF-ul ca pe o copie de lucru, nu ca pe original.
Se poate selecta textul din PDF-ul generat?
Nu. Fiecare pagină este desenată și încorporată ca imagine, deci PDF-ul nu conține text selectabil și nu poate fi căutat cu Ctrl+F. Dacă aveți nevoie de datele în formă prelucrabilă, folosiți convertorul XML → CSV, care produce coloane pentru Excel.
Funcționează și cu facturi în altă monedă decât RON?
Da. Moneda este citită din DocumentCurrencyCode. Dacă acel câmp lipsește, se folosește moneda declarată pe suma de plată, iar în ultimă instanță RON. Toate sumele de pe pagină sunt afișate în moneda găsită.
Sunt acceptate și notele de credit?
Da. Sunt recunoscute atât documentele cu rădăcina Invoice, cât și cele cu rădăcina CreditNote. Pentru notele de credit se citesc liniile CreditNoteLine și cantitățile CreditedQuantity, iar documentul este titrat „Notă de credit”.
De ce nu se deschide fișierul meu?
Convertorul verifică două lucruri: că XML-ul este bine format și că rădăcina lui este Invoice sau CreditNote în spațiul de nume UBL 2.1. Un fișier de semnătură, o arhivă ZIP descărcată din SPV sau un XML trunchiat vor fi respinse. Dezarhivați și încărcați documentul UBL propriu-zis.
Ce se întâmplă cu factura mea după conversie?
Nimic nu pleacă de pe calculatorul dumneavoastră. Fișierul este citit prin File API, prelucrat în memoria filei și desenat local. Nu există cont, nu există încărcare și nu păstrăm nicio copie — pur și simplu nu primim documentul.
Câte pagini poate avea rezultatul?
Până la 80 de pagini A4 într-o singură operație. Liniile facturii curg automat pe pagini noi, cu antetul tabelului repetat. O factură cu sute de poziții poate depăși această limită.