← Back to glossary
Category: Financiar · Acronym: SAF-T
SAF-T D406 (Standard Audit File for Tax)
Quick answer: Monthly granular Romanian tax filing: every invoice, stock movement and ledger entry — mandatory for VAT payers.
Key takeaways
- Master files: customers, suppliers, products, chart of accounts (4xx/5xx/6xx/7xx)
- General ledger: all accounting movements with debit/credit accounts
- Sales and purchase invoices: detailed lines, VAT per line, CPV code
- Stock movements: receipts, transfers, consumption, picking, shipments — per warehouse
- Payments and collections: per partner, per method
What SAF-T is
SAF-T (Standard Audit File for Tax) is the OECD standard for granular tax reporting. Romania implemented D406 starting 2022 for large taxpayers, expanded from January 2025 to all VAT payers (monthly for standard, quarterly for micro).
What a D406 file contains
A single monthly XML contains:
Master files: customers, suppliers, products, chart of accounts (4xx/5xx/6xx/7xx)
General ledger: all accounting movements with debit/credit accounts
Sales and purchase invoices: detailed lines, VAT per line, CPV code
Stock movements: receipts, transfers, consumption, picking, shipments — per warehouse
Payments and collections: per partner, per method
Why it's painful for SMBs
Unlike D394 (aggregated), SAF-T requires each line with a unique product code, standardised unit of measure, mapped accounting account and stock location. Accounting tools (Saga, WinMentor) ship the export function, but XML quality depends on upstream operational data quality.
Typical errors causing ANAF rejection
1. Non-unique product code — same SKU has different codes across invoices vs receipts.
2. Non-standard UoM — «buc» vs «BUC» vs «pcs» = validation error.
3. Missing accounting account per line — item without a mapped 707/704 account.
4. Missing warehouse — stock movement without warehouse ID (multi-warehouse companies).
5. Unbalanced VAT — invoice VAT total ≠ sum of line VATs.
How a modern operations layer helps
A system like Azuvio running PIM + WMS + OMS over Saga ensures the granular data SAF-T requires is complete from day 1 — unique codes, standard UoM, accounting accounts mapped per product category, warehouses auto-assigned on every movement.
Frequently asked
- What is SAF-T (D406)?
- SAF-T (Standard Audit File for Tax) is the OECD standard file for granular tax reporting, implemented in Romania as the D406 return. A single monthly XML contains all invoices, stock movements, ledgers, payments and master data (customers, suppliers, products, chart of accounts).
- Who files SAF-T D406?
- All Romanian VAT payers from January 2025: monthly for standard regime, quarterly for micro. Large taxpayers file since 2022, medium ones since 2023.
- What is the SAF-T filing deadline?
- The standard deadline is the 31st of the month following the reporting period (last day of the next month). For quarterly filing, it is the last day of the month following the quarter.
- Does Saga generate SAF-T?
- Yes, it has a native function. XML quality, however, depends on input data quality — if accounting accounts are missing per line or product codes are inconsistent, the XML comes out with errors or gets rejected by ANAF.
- What does Azuvio do for SAF-T?
- It keeps product codes unitary in the PIM, auto-assigns the warehouse on each WMS movement, maps the accounting account per product category and exports the movement file to Saga with every granular field already complete.
Last updated: