SAF-T D406 in Charisma ERP - How to Correctly Generate the Declaration (2026)
Step-by-step guide for generating the SAF-T D406 file from Charisma: validations, chart of accounts, mapping, the tax authority validator, and frequent errors. Plus differences compared to older versions.
Bogdan Minoiu - Founder Azuvio · 2026-05-18 · 9 min · ERP & Operations
What is SAF-T D406
SAF-T (Standard Audit File for Tax) = an XML file structured according to the OECD schema, containing all accounting data of a company for a specific period (month, quarter, year). In Romania, the declaration is called D406 and is mandatory:
Large taxpayers: since January 2022
Medium taxpayers: since January 2023
Small taxpayers: since January 2025 (phased implementation)
Charisma ERP generates D406 natively from the 2021 version. However, the correct configuration of the chart of accounts + mappings is essential.
Prerequisites
1. Updated Charisma version to the latest legislative update (check with your partner)
2. Chart of accounts mapped to the ANAF (the Romanian tax authority) nomenclature (account code OMFP 1802/2014 or OMFP 2861/2009 for banks)
3. Updated nomenclatures: CPV for items, bank IBANs, partners with valid tax IDs (CIF)
4. Full month-end closing before generation (DO NOT generate SAF-T for an open month)
D406 Structure
The SAF-T file contains 5 major sections:
1. Header - company data, period, schema version, software validator
2. MasterFiles - chart of accounts, partners, items, fixed assets, warehouses, bank accounts
3. GeneralLedgerEntries - all accounting entries for the period, with line details
4. SourceDocuments - sales invoices, purchase invoices, payments, receipts, stock movements
5. PhysicalStock - physical stock at the end of the period (quantity + value)
Missing a section or having a wrong structure = automatic rejection upon upload to the SPV (the tax authority's Virtual Private Space).
Steps in Charisma
Step 1: Chart of Accounts Verification
Financial → Chart of Accounts - for each account, verify:
Account code according to OMFP (4 characters)
Name according to OMFP
Account type (Asset / Liability / Bi-functional)
For accounts not in the standard plan, add the ANAF mapping code (link with the closest standard account)
Step 2: Partner Nomenclature Validation
Commercial → Customers + Suppliers - for all partners active in the period:
Complete and valid CIF (Tax ID)
Person type (Legal Entity / Individual / Public Authority)
Country (RO / EU / non-EU)
Full address
Step 3: D406 Generation
Financial → Declarations → SAF-T D406 →
Select period (month / quarter / year)
Declaration type: standard / rectifying
Output file location
Click «Generate»
Charisma runs for 5-30 minutes (depending on volume). Output: XML file named according to ANAF standards: `D406_<CIF>_<period>_<timestamp>.xml`
Step 4: Local Validation with the ANAF Validator (DUKIntegrator)
MANDATORY before SPV upload. Download the ANAF validator (DUKIntegrator) from anaf.ro → run it on the XML file → receive the error report.
Common error types:
Account non-existent in the ANAF plan (missing mapping)
Partner without CIF
Unreconciled amounts (debit ≠ credit on an entry)
Stock movements without quantity or unit price
Invoices without tax residency
Correct in Charisma → regenerate → validate again. Repeat until 0 errors.
Step 5: SPV Upload
Valid file → SPV → Services → SAF-T D406 → Upload XML. ANAF response in 24-72h.
Common Errors and How to Prevent Them
1. «Account X does not exist in the ANAF nomenclature», add mapping in the Charisma chart of accounts (Financial → Chart of Accounts → Account → ANAF Code).
2. «Uncorrelated amounts between MasterFiles and GeneralLedgerEntries», incomplete month-end closing. Run «Month Integrity Check» before SAF-T.
3. «Item without CPV code» - for items where the code is missing, fill it in the nomenclature before generation.
4. «Physical stock = 0 but movements exist», unrecorded physical inventory or warehouse not closed. Check quantitative stock.
5. «File too large (over 200 MB)» - for very large companies, ANAF accepts D406 segmented by months/quarters. DO NOT generate for a full year if you are in this situation.
Differences vs SAGA / WinMentor
Charisma: centralized SAF-T generation per company, native multi-company support (you can generate for each entity separately or consolidated), partially integrated validation.
WinMentor: generation per company, mandatory external validation. See «SAF-T in WinMentor».
Saga: generation per company, chart of accounts with pre-configured ANAF mapping in new versions. See «SAF-T in Saga».
How to Reduce Effort with a Smart Layer
For companies with 5+ entities in the group, generating + validating + reconciling SAF-T monthly consumes 10-30 hours/month. An Azuvio Smart Layer can:
Schedule automatic generation on the night of the 25th each month
Run the DUKIntegrator validator headless
Alert via Discord/email if errors occur
Generate an «SAF-T health» executive report for all companies
Conclusion
SAF-T D406 in Charisma is manageable if accounting discipline is maintained: clean chart of accounts, valid partners, complete month-end closing, and local validation before upload. Invest in a good initial config, save hours every month.
See also «Charisma + e-Factura» for the full ANAF compliance package.