Getting your Trinity Audio player ready... |
În cazul în care apar erori de validare SAF-T, prezentăm mai jos câteva exemple de rezolvare a acestora:
- în care se primește mesajul de eroare „F: Header (1) secțiune Company (1) secțiune Address (1) secțiune PostalCode (1) eroare structură: elementul ‘City’ ar fi trebuit să apară de minimum 1 ori, dar apare efectiv de 0 ori”, înseamnă că statusul unui câmp este obligatoriu, dar acesta lipsește din fișierul XML generat. Pentru corectarea acestei erori, în programul sistemului de contabilitate sau ERP de extragere a fișierului XML se va configura ca elementul ”City” să fie obligatoriu completat cu informația necesară. Valoarea ”(1)” din cadrul parantezelor specifică numărul repetării nodului în fișierul XML unde a apărut eroarea.
- în care se primește mesajul de eroare „E: Header (1) secțiune DefaultCurrencyCode (1) eroare atribut: valoarea ‘LEU’ nu se află în listă”, înseamnă că valoarea înregistrată în câmpul precizat nu este o valoare acceptată, nu există în nomenclatoarele predefinite. Pentru corectarea acestei erori, în programul sistemului de contabilitate sau ERP de extragere a fișierului XML se va configura să se utilizeze doar elementele din cadrul nomenclatoarelor comunicate.
- în care se primește mesajul de eroare „F: MasterFiles (1) secțiune Products (1) secțiune Product (1) secțiune ProductCode (1) eroare: Eroare fatală de parsare: ‘org.xml.sax.SAXParseException; systemId: file:///C:/SAF-T/SAFT.xml; lineNumber: 118; columnNumber: 5; The end-tag for element type „n1:ProductCode” must end with a ‘>’ delimiter.'”, înseamnă că unul din tagurile din cadrul fișierului XML nu este închis. Pentru corectarea acestei erori, în programul sistemului de contabilitate sau ERP de extragere a fișierului XML se va corecta cu elementele care lipsesc.
Erori de validare SAF-T – cu exemple
Pentru a evita astfel de erori de validare, puteți să faceți câteva teste pe care le puteți aplica asupra datelor raportate prin xml, după cum urmează:
1. În secțiunea Header, subsecțiunea Header Structure – Company – Company Header Structure – Adress – verificarea completării câmpurilor City și Country;
2. În secțiunea Header, subsecțiunea Header Structure – Company – Company Header Structure – Contact verificarea completării câmpurilor First Name și Last Name;
3. În secțiunea Header, subsecțiunea Header Structure – Company – Company Header Structure verificarea completării câmpului Telephone;
4. În secțiunea Header, subsecțiunea Header Structure – Company – Company Header Structure – Bank Account verificarea completării câmpurilor IBAN Number sau Bank Account Number și Bank Account Name și Sort Code;
5. În secțiunea Master File, subsecțiunea General Ledger Accounts verificarea completării câmpurilor: Account ID, Account description, Account Type, Opening Debit/Credit Balance, Closing Debit/Credit Balance;
6. În secțiunea Master File, subsecțiunea Customers – Company Structure verificarea completării câmpurilor: Registration number, Name, Adress – City, Country cât și a: CustomerID, Account ID, Opening Debit/Credit Balance, Closing Debit/Credit Balance. Verificarea Registration number versus CustomerID, care ar trebui să fie identice;
7. În secțiunea Master File, subsecțiunea Suppliers – Company Structure verificarea completării câmpurilor: Registration number, Name, Adress – City, Country cât și a: SupplierID, Account ID, Opening Debit Balance, Opening Credit Balance, Closing Debit Balance, Closing Credit Balance. Verificarea Registration number versus SupplierID, care ar trebui să fie identice.
8. În secțiunea Master File, subsecțiunea Tax Table – Tax Table Entry verificarea completării câmpurilor: Tax Type, Description, Tax Code Details – Tax Code, Tax percentage sau FlatTaxRate – Amount Structure (Amount, Currency Code, Currency Amount), Base Rate, Country.
Erori de validare SAF-T. Exemplu de eroare
O companie devine plătitoare de TVA în luna ianuarie și înregistrează o intrare în tabelul de taxe fără să completeze toate câmpurile obligatorii. Intrarea include un Tax Type pentru TVA, dar lipsesc Tax Code, Tax Percentage, și detaliile legate de rata fixă și structura valutară (Amount, Currency Code, Currency Amount), Base Rate, și Country.
Tax Code – codul taxei;
Tax Percentage – procentul aplicat pentru această taxă (de exemplu, 19% pentru TVA);
Amount, Currency Code, și Currency Amount în structura FlatTaxRate pentru a specifica valoarea exactă în valută (dacă este aplicabilă);
Base Rate – baza de calcul;
Country – țara de aplicare a taxei.
Posibile cauze pentru erori de validare SAFT-T:
- omiterea completării câmpurilor obligatorii: Lipsa de atenție sau lipsa completării tuturor câmpurilor necesare la adăugarea informațiilor despre taxe;
- neactualizarea taxelor conform codurilor naționale: Dacă taxele nu sunt codificate și structurate conform cerințelor ANAF, pot apărea neconformități;
- date incomplete în sistemul de contabilitate: Dacă informațiile despre procentul de taxă, rata fixă sau monedă nu sunt definite complet în sistemul intern, acestea pot fi omise în raportare.
9. În secțiunea Master File, subsecțiunea UOM Table verificarea completării câmpurilor: Unit of Measure, Description;
10. În secțiunea Master File, subsecțiunea Analysis Type Table- Analysis Type Table Entry verificarea completării câmpurilor: Analysis Type, Analysis Type Description, Analysis ID, Analysis Description;
11. În secțiunea Master File, subsecțiunea Products – Product verificarea completării câmpurilor: Product Code, Description, Product Commodity Code, UOM Base, UOM Standard, UOM To UOM Base Conversion Factor
Erori de validare SAF-T. Exemplu de eroare
O companie înregistrează un produs nou în programul de gestiune fără să completeze toate câmpurile obligatorii. Produsul are un cod unic product Code de 12345 și o descriere, dar lipsesc Product Commodity Code (codul de produs conform nomenclatorului ANAF) și informațiile legate de unitatea de măsură (UOM Base, UOM Standard, și UOM To UOM Base Conversion Factor).
Product Commodity Code – codul de clasificare a produsului conform nomenclatorului;
UOM Base – unitatea de măsură de bază (de exemplu, kilogram, litru, etc.);
UOM Standard – unitatea de măsură standard utilizată în raportare;
UOM To UOM Base Conversion Factor – factorul de conversie între unitatea standard și unitatea de bază.
Posibile cauze pentru erori de validare SAFT-T:
- omiterea completării câmpurilor obligatorii: Lipsa de atenție în completarea tuturor câmpurilor necesare la adăugarea produselor;
- lipsa codului de nomenclator: Dacă produsul nu este codificat conform nomenclatorului ANAF, pot apărea erori în validarea fișierului;
- informații incomplete în sistemul de gestiune: Dacă unitățile de măsură și factorii de conversie nu sunt definite în sistemul intern, aceste informații pot fi omise.
12. În secțiunea Master File verificarea egalității între totalul soldurilor inițiale ale conturilor debitoare (Opening Debit Balance) și totalul soldurilor inițiale creditoare (Opening Credit Balance) (mai puțin conturile din clasele 8 și 9);
13. În secțiunea Master File verificarea egalității între totalul sodurilor finale ale conturilor debitoare (Closing Debit Balance) și totalul soldurilor finale creditoare (Closing Credit Balance) (mai puțin conturile din clasele 8 și 9);
14. În secțiunea Master File verificarea soldurilor finale (Closing Debit Balance și Closing Credit Balance) ale lunii să coincidă cu soldurile inițiale (Opening Debit Balance si Opening Credit Balance) ale lunii următoare;
Exemplu de eroare
La finalul lunii ianuarie, un cont de activ (de exemplu, contul 411 – Clienți) are un sold final debitor (Closing Debit Balance) de 10,000 RON. În luna februarie, soldul inițial debitor (Opening Debit Balance) al aceluiași cont ar trebui să fie 10,000 RON, dar este înregistrat în mod eronat ca 9,500 RON in D406.
Posibile cauze pentru erori de validare SAFT-T:
- omisiune sau ajustare nereportată: Dacă au fost făcute ajustări la soldurile finale în ianuarie și acestea nu au fost transferate în luna următoare, apare o diferență;
- eroare de raportare: Soldul inițial poate fi introdus manual, iar o eroare de transcriere sau de calcul poate afecta continuitatea balanței;
- lipsa de reconciliere: Dacă soldurile nu sunt verificate între perioade consecutive, pot apărea astfel de neconcordanțe.
15. În secțiunea Master File se verifică soldurile finale ale conturilor lunii (Closing Debit Balance și Closing Credit Balance) ținând cont de următoarele formule:
- pentru conturile de Activ: Sold inițial (Opening Balance din secțiunea Master File) + Rulaj debitor (Debit Amount – General Ledger Entries – Entries) – Rulaj creditor (Credit Amount – General Ledger Entries – Entries) = Sold final (Closing Balance din secțiunea Master File);
- pentru conturile de Pasiv: Sold inițial (Opening Balance din secțiunea Master File) + Rulaj creditor (Credit Amount – General Ledger Entries – Entries) – Rulaj debitor (Debit Amount – General Ledger Entries – Entries) = Sold final (Closing Balance din secțiunea Master File);
- pentru conturile Bifuncționale se vor urma aceleași reguli de mai sus, în funcție de soldul inițial al contului;
Exemplu de eroare
O companie are un cont de pasiv (ex. contul 401 – Furnizori) cu un sold inițial de 20.000 RON. În perioada de raportare, au fost înregistrate rulaje creditoare de 15.000 RON și rulaje debitoare de 5.000 RON.
Conform formulei, soldul final ar trebui să fie 30.000 RON.
Sold final = 20.000 + 15.000 − 5.000 = 30.000
În schimb, soldul final raportat în ClosingBalance în D406 este de 32.000 RON, ceea ce indică o eroare.
Posibile cauze pentru erori de validare SAFT-T:
- eroare de înregistrare: O tranzacție poate fi omisă, înregistrată incorect sau dublată, generând un sold final greșit;
- calcul manual greșit: Dacă soldul final este introdus manual, ar putea exista o eroare de calcul sau o omisiune;
- erori de raportare: Valoarea ClosingBalance ar putea fi introdusă greșit din cauza unei neconcordanțe între registrul contabil și fișierul SAF-T.
16. În secțiunea General Ledger Entries subsecțiunea Entries se verifică dacă totalul rulajelor debitoare (Debit Amount – General Ledger Entries – Entries) este egal cu totalul rulajelor creditoare (Credit Amount – General Ledger Entries – Entries);
Exemplu de eroare
O companie înregistrează tranzacții contabile pentru luna în curs. La finalul perioadei, totalul rulajelor debitoare ar trebui să fie egal cu totalul rulajelor creditoare, respectând principiul dublei înregistrări contabile. Totuși, în declarația D406, s-a raportat în secțiunea General Ledger totalul rulajelor debitoare de 150.000 RON, iar totalul rulajelor creditoare de 148.000 RON.
Posibile cauze pentru erori de validare SAFT-T:
- înregistrare incompletă: O tranzacție poate fi înregistrată doar pe debit sau doar pe credit, fără contrapartea corespunzătoare;
- omisiune la înregistrarea unei tranzacții: O înregistrare debit-credit nu este completă, lăsând o discrepanță între cele două rulaje;
- eroare de calcul sau de rotunjire: Pot apărea mici diferențe din cauza rotunjirilor incorecte sau calculelor eronate.
17. În toate structurile care se referă la Amount/Amount Structure, se verifică ipoteza ca Amount să fie egal cu Currency Amount doar în situația în care Currency code este RON;
18. În toate structurile care se referă la Amount/Amount Structure se verifică ipoteza ca Amount să fie diferit de Currency Amount în situația în care Currency code este diferit de RON;
19. În toate structurile care se referă la Amount/Amount Structure, tranzacțiile în monedă străină trebuie raportate corespunzător prin indicarea Currency Code relevant, astfel încât la Amount să se completeze valoarea denominată în RON a tranzacției, iar la CurrencyAmount să se completeze valoarea în moneda străină a tranzacției.
Exemplu de eroare
O companie realizează o achiziție în euro (EUR) pentru suma de 2.000 EUR, echivalentă cu 9.800 RON. Raportarea corectă ar trebui să includă valoarea în moneda de raportare (RON) în câmpul Amount și valoarea în moneda tranzacției (EUR) în câmpul CurrencyAmount, împreună cu codul valutar corespunzător (CurrencyCode).
În declarația D406 câmpul Amount a fost raportat cu valoarea tranzacției în moneda EUR, adică 2.000 EUR, ceea ce contravine cerințelor de raportare.
Posibile cauze pentru erori de validare SAFT-T:
- lipsa conversiei: Sistemul nu a convertit automat valoarea din valută (EUR) în RON pentru câmpul Amount;
- utilizarea valorii în valută în locul valorii convertite: În loc să fie introdusă valoarea în RON, a fost raportată valoarea în valută străină atât în Amount, cât și în CurrencyAmount;
- configurare incorectă a structurii XML: Configurația XML permite raportarea valorii în moneda străină în câmpul Amount în loc de conversia în RON.
20. În secțiunea GeneralLedgerEntries, Tax percentage aferent Tax code de TVA aplicat asupra bazei (Debit Amount/Credit Amount) dă ca rezultat valoarea TVA înscrisă la nivelul DebitAmount/Credit Amount în structura TaxInformation la nivelul liniei respective din tranzacție.
21. În secțiunea Source Documents Tax percentage aferentă Tax code de TVA aplicată asupra bazei (Amount din secțiunea Source Documents subsecțiunea Sales Invoices – Invoice – Invoice Line – Invoice Line Amount) dă ca rezultat valoarea TVA înscrisă în secțiunea Source Documents subsecțiunea Sales Invoices – Invoice – Invoice Line – Tax information – Tax Amount.
Exemplu de eroare
O companie emite o factură de vânzare cu o valoare a bazei de calcul (Amount) de 2.000 RON și o cotă de TVA de 19%. Valoarea corectă a TVA-ului ar trebui să fie 380 RON dar TVA-ul declarat în D406 este 400 RON.
Această eroare de calcul a TVA-ului ar putea să aibă drept cauze:
- calcul manual greșit: Valoarea TVA-ului a fost introdusă incorect în sistem, fie din cauza unei erori umane, fie prin calcul greșit;
- rotunjirea eronată a valorii TVA: Dacă sistemul contabil aplică rotunjiri necorespunzătoare sau diferite pentru baza de calcul și TVA, se pot genera discrepanțe;
- cota TVA greșit introdusă: Dacă rata de TVA asociată a fost introdusă greșit în sistem, valoarea TVA va fi calculată incorect.
22. În secțiunea Source Documents Tax percentage aferentă Tax code de TVA aplicată asupra bazei (Amount din secțiunea Source Documents subsecțiunea Purchase Invoices – Invoice – Invoice Line – Invoice Line Amount) dă ca rezultat valoarea TVA înscrisă în secțiunea Source Documents subsecțiunea Purchase Invoices – Invoice – Invoice Line – Tax information – Tax Amount.
Exemplu de eroare
O companie înregistrează o factură de achiziție cu valoarea bazei de calcul (Amount) de 1.000 RON, iar codul de TVA aplicabil are o cotă de 19%. În mod corect, TVA-ul ar trebui să fie de 190 RON dar în D406 TVA raportată este de 180 RON.
Această eroare de calcul a TVA-ului ar putea să aibă drept cauze:
- calcul manual incorect: Dacă valoarea TVA a fost introdusă manual și nu calculată automat, poate apărea o eroare umană;
- rotunjirea greșită: Dacă softul de contabilitate aplică rotunjiri diferite pentru baza de calcul și pentru valoarea TVA, aceasta poate duce la diferențe minore;
- cod de TVA greșit: Dacă codul aplicat nu este cel corect, poate fi asociată o rată greșită de TVA, care va genera valori eronate.
Alte informații despre Declarația SAF-T
Pentru mai multe informații despre SAF-T 2025 – click aici
Pentru termenele de depunere a declarației – click aici
Cine are obligația depunerii SAF-T în 2025 – click aici
Un material complet cu exemple practice și instrucțiuni privind completarea Declarației 406, astfel încât să evitați erori de validare SAF-T, regăsiți în secțiunea „Produs Cadou” după achiziția cărții „Cazuri Practice privind inventarierea„.