Last updated: August 2026 · Reading time: 12 minutes
If your company holds a Romanian VAT number but runs its accounting on SAP, NetSuite, Xero, QuickBooks or any other system configured outside Romania, SAF-T is probably the hardest compliance obligation you face here — and the one most likely to be discovered late.
The reason is structural rather than legal. SAF-T is not a tax return you complete from summary figures. It is a structured export of your accounting data, in a schema Romania defines down to the field level. Your accounting system holds the data. It simply cannot produce it in that shape.
This guide explains what the D406 actually requires, who has to file it, why standard ERP exports fail, and what the realistic options are — including the one most foreign subsidiaries end up choosing.

SAF-T in Romania -D406 at a Glance
| Declaration | D406 — Informative declaration (SAF-T) |
|---|---|
| Format | XML, validated against a published XSD schema |
| Based on | OECD Standard Audit File for Tax, adapted by ANAF |
| Filing frequency | Monthly or quarterly — matching your VAT return period |
| Deadline | Last calendar day of the month following the reporting period |
| Non-resident VAT registrants | In scope — verify the applicable start date for your category |
| Validation tool | DUKIntegrator (published by ANAF) |
| Submitted via | SPV — ANAF’s Virtual Private Space |
What This Guide Covers
- What SAF-T actually is
- Who must file, and from when
- What the D406 file contains
- Deadlines, grace periods and penalties
- Why foreign ERP exports fail
- Your three realistic options
- How our mapping process works
- Before your first submission
- Frequently asked questions
What SAF-T in Romania Actually Is
SAF-T in Romania is often described as “another declaration”. It is not, and the distinction matters. Most tax filings ask you to summarise. A VAT return asks for totals: output VAT, input VAT, the net position. You can produce those figures from almost any accounting system, because summarising is something every system does.
SAF-T inverts that. Instead of totals, ANAF asks for the underlying records themselves — your chart of accounts, your customer and supplier master data, your general ledger entries, your individual sales and purchase invoices — delivered in a prescribed XML structure with prescribed field names, prescribed code lists and prescribed relationships between elements.
The practical consequence: SAF-T in Romania does not test whether your tax calculations are right. It tests whether your accounting data is structured the way Romania expects. Those are very different tests, and a company can pass the first while failing the second comprehensively.
Who Must File D406 — and From When
SAF-T in Romania was phased in by taxpayer category rather than introduced all at once, which is why the obligation still catches companies by surprise.
| Category | Obligation commenced |
|---|---|
| Large taxpayers | January 2022 |
| Medium taxpayers | January 2023 |
| Small taxpayers | January 2025 |
| Non-resident companies registered for Romanian VAT | January 2025 (OPANAF 1783/2021) |
The category that causes most confusion is the last one. A foreign company with no Romanian establishment, no local accounting system and perhaps only a handful of transactions per month can still hold a Romanian VAT number — and a Romanian VAT number is what brings the reporting obligation. Low transaction volume reduces the work; it does not remove the requirement.
What the D406 File Contains
The Romanian SAF-T schema is organised in sections. Not all are reported at the same frequency, which is itself a common source of error.
| Section | What it holds | Reported |
|---|---|---|
| Header | Company identification, period, file metadata | Every submission |
| Master Files | Chart of accounts, customers, suppliers, tax table, units of measure, products | Every submission |
| General Ledger Entries | Journal entries with full double-entry detail | Every submission |
| Source Documents | Sales invoices, purchase invoices, payments, movement of goods | Every submission |
| Assets | Fixed asset register and depreciation | Annually |
| Stocks | Inventory detail | On ANAF request |
*Non-resident entities regitered for VAT in Romania will only report the sections marked in Orange above.
Two features of this structure deserve attention before you start.
First, master data is submitted every time. Your customer and supplier records are not a one-off registration — they travel with each filing. Inconsistent or incomplete master data therefore fails repeatedly, not once.
First-time filers often underestimate this. A customer record missing a valid tax identifier is a minor annoyance in your own ERP. In SAF-T it is a validation failure that blocks the entire submission.
Second, the file must be internally coherent. Every invoice references a customer that must exist in Master Files. Every ledger entry references an account that must exist in the chart of accounts. Every tax code must appear in the tax table. Break one of those links anywhere in the file and the whole submission is rejected — not the individual line.
Deadlines, Grace Periods and Penalties
The D406 follows your VAT reporting period: monthly filers submit monthly, quarterly filers quarterly. The deadline is the last calendar day of the month following the reporting period.
Romania granted grace periods when each taxpayer category entered scope, during which late submissions were not penalised provided they were eventually made correctly. Confirm whether any grace period still applies to your category before relying on it — these were transitional, and most have now expired.
| Failure | Consequence |
|---|---|
| Failure to submit, or late submission | Fine — verify current range |
| Incomplete or incorrect submission | Fine — verify current range |
| Persistent inconsistency with other filings | Materially increased inspection risk |
The fines are not, for most companies, the real exposure. The real exposure is that SAF-T gives ANAF transaction-level visibility of your Romanian activity. Discrepancies between your D406 and your VAT return are visible without an inspection being opened — and are among the most common reasons one is.
Not sure whether SAF-T applies to you?
We can assess your obligation and reporting period in a short review, before a deadline turns it into a problem. Request a SAF-T assessment →
Why Foreign ERP Exports Fail
This is where the obligation stops being administrative and becomes technical. Three distinct problems, usually encountered in this order.
1. The mapping problem
Your chart of accounts was designed for your group’s reporting, not for Romanian tax nomenclature. A single account in your ERP may correspond to several Romanian accounts, or to none cleanly. Somebody has to decide, account by account, how the two structures correspond — and document that decision so it can be applied consistently and defended later.
2. The master data problem
SAF-T requires specific identifiers for every counterparty, in specific formats, with country codes and VAT numbers structured correctly. Master data that has accumulated over years in a group ERP is rarely clean enough: missing tax IDs, inconsistent country coding, duplicate records, and names entered differently across records. All of it surfaces at once, on the first validation attempt.
3. The validation problem
ANAF publishes DUKIntegrator, which validates your XML against the schema. It is strict and unambiguous — the file passes or it does not. What it does not do is explain how to fix what it found. A validation error points at a location in the XML; translating that into “this supplier record is missing a country code” is work, and it is work that recurs every month until the underlying data is corrected at source.
Your Three Realistic Options
Every foreign company facing SAF-T in Romania arrives at the same three choices. They differ substantially in cost, timeline and who carries the risk.
| Option | Timeline | Best when | Drawback |
|---|---|---|---|
| Reconfigure the group ERP | Months | Large Romanian operation, high volumes, long-term commitment | Expensive; requires group IT priority you may not command; disproportionate for a small subsidiary |
| Parallel Romanian bookkeeping | Ongoing | You want a local system regardless, for other reasons | Duplicates work; creates two versions of the truth that must be reconciled |
| Structured mapping layer | Weeks | Foreign ERP stays as-is; moderate transaction volumes | Requires disciplined export routine; mapping must be maintained as the business changes |
For a subsidiary processing anywhere from tens to a few thousand transactions a month, the third option is usually the proportionate answer. It leaves your accounting where it is and solves the specific problem — the gap between your data and Romania’s required format — rather than rebuilding everything around it.
How Our Mapping Process Works
We built a structured template that sits between your existing export and the D406 schema. It encodes Romanian account nomenclature, tax codes and the schema’s internal validation rules, so the logic lives in the tool rather than in an individual’s memory.
The engagement runs in two phases.
Setup, once. We review your information and agree the mapping to Romanian nomenclature. We audit your master data and identify what needs correcting at source. We define the export format you will produce each month. We run a test submission through DUKIntegrator and resolve validation issues before any live deadline.
Monthly, thereafter. You export transactional data in the agreed format, once. We load it into the template, which applies the mapping and runs validation checks. We generate the D406 XML, validate it, and submit it — or hand it to you to submit through SPV.
Because the same mapping applies in month twelve as in month one, the process is auditable. When ANAF asks why a particular account was treated a particular way, the answer exists in documented form rather than being reconstructed.

Before Your First Submission
- ✓ Confirm your obligation start date and reporting period
- ✓ Register for SPV access, if you do not already have it
- ✓ Extract a full chart of accounts from your ERP
- ✓ Extract customer and supplier master data, including tax identifiers
- ✓ Identify records missing valid identifiers or country codes
- ✓ Agree the mapping between your accounts and Romanian nomenclature
- ✓ Define and document your monthly export routine
- ✓ Run a test file through DUKIntegrator well before the deadline
- ✓ Reconcile the test file against your VAT return for the same period
The last item is the one most often skipped, and the one that prevents the most trouble. If your D406 and your VAT return disagree, it is better to discover it yourself than to have ANAF’s systems discover it for you.
Facing your first D406 — or struggling with rejections?
We handle SAF-T for foreign companies whose accounting lives outside Romania, from mapping through to monthly submission. Talk to us about your SAF-T obligation →
Frequently Asked Questions
Do non-resident companies have to file SAF-T in Romania?
A Romanian VAT registration is what triggers the reporting obligation, and non-resident registrants fall within scope. Confirm the applicable start date for your registration type, since Romania phased the requirement in by taxpayer category.
Can I produce a D406 file without a Romanian accounting system?
Yes. A structured mapping process converts data from most standard ERP or accounting exports into a compliant D406 XML, without changing your accounting software or maintaining parallel Romanian books.
How often do I have to submit SAF-T?
The D406 follows your VAT reporting period — monthly filers submit monthly, quarterly filers quarterly. Asset data is reported annually, and inventory data on request.
What is the SAF-T deadline in Romania?
The last calendar day of the month following the reporting period. Confirm the current position for your category, since transitional grace periods applied when each group entered scope.
What happens if my SAF-T file fails validation?
DUKIntegrator rejects the file entirely rather than accepting it partially. The submission is not made until a valid file is produced, so validation failures close to a deadline become deadline failures.
What are the penalties for not filing SAF-T?
Fines apply both for non-submission and for incorrect or incomplete submission. For most companies the greater exposure is the inspection risk created by inconsistencies between the D406 and other filings.
Does SAF-T replace the VAT return?
No. Both continue to be required, and they must reconcile. SAF-T provides transaction-level detail; the VAT return reports the summary position for the same period.
Do I need to file SAF-T for a period with no transactions?
Reporting obligations generally continue while the VAT registration is active. Confirm the treatment of nil periods for your specific registration type rather than assuming a filing can be skipped.
Can my group’s SAP or NetSuite system generate the D406 directly?
Not without Romania-specific configuration. Standard exports do not match the required schema, field names or code lists. Some groups build this configuration; for most subsidiaries a mapping layer is the proportionate alternative.
How long does it take to set up SAF-T reporting for the first time?
Setup is typically measured in weeks, driven mainly by chart of accounts mapping and master data cleanup. Subsequent monthly submissions take a fraction of that once the mapping is established.
What is DUKIntegrator?
ANAF’s validation tool. It checks your XML against the published schema and confirms whether the file is structurally valid before submission through SPV.
We already have a Romanian VAT number but have never filed SAF-T. What now?
Establish when the obligation began for your category, quantify the outstanding periods, and regularise them deliberately. Voluntary correction is consistently a better position than waiting for the gap to be identified.



