Articles and news · SAF-T

Why SAF-T (D406) does not match the VAT return (D300) in Romania

On 26 August 2026 ANAF released two free tools: one checks the D406 SAF-T file before filing, the other rebuilds a VAT return from the SAF-T file so you can set it next to the D300 you filed. Both are in testing until November 2026 and run on your own computer without sending data to ANAF. Some differences are normal and the Tax Code allows them: delayed deduction, corrections of earlier periods, cash accounting, pro rata. Others are errors in the file and need a corrected return. Below: how to tell them apart, a worked example, the deadlines for autumn 2026 and what changes for foreign companies registered for VAT in Romania.

  • S Silvia · Chartered Accountant · CECCAR
  • Published:
  • 10 min read

What ANAF released in August 2026

On 26 August 2026, in press release 782, ANAF published two free tools on its SAF-T page:

  1. The D406 checker (tool 6 on the SAF-T page: AppVerifXML, as TestSaftW with a window or TestSaftT from the command line). It runs the consistency tests on the XML files in a folder and writes a CSV file listing the errors found and the test behind each one.
  2. The D406-to-D300 template (tool 7: D300_2026, version 2.0 updated on 18 September 2026). It reads the SAF-T file and builds a 300 VAT return, which you can export as PDF, XML or JSON.

ANAF says the checks run on the user’s computer and that no data is sent to ANAF at this stage. Both tools are in testing from September to November 2026, and feedback goes to saft@anaf.ro.

The press release also gives the reason. Of about 870,000 companies filing SAF-T, about 580,000 also file a VAT return. ANAF built the tools after a pilot phase in which it found files with errors and mismatches. In practice, ANAF already compares the two returns, and you can now run the same comparison before you file.

Why the two returns do not match

D406 and D300 do not measure the same thing. SAF-T reports what was booked in the month. The VAT return reports VAT that became chargeable in the period and the deduction exercised in the period (article 323(2) of the Tax Code). Most months the figures agree. When they do not, the cause is usually one of these:

Cause What the comparison shows Legal basis Error?
Purchase invoice received after the VAT return was filed, booked in the month of the service Higher input VAT in SAF-T than in D300 art. 301(2) Tax Code: deduction in a later return No, if deducted in a later return
Error from another month corrected in the current return D300 has amounts on the adjustment rows that the month’s SAF-T does not art. 323(3) Tax Code No
VAT cash accounting (yours or your supplier’s) VAT booked to account 4428, chargeable or deductible only on collection or payment art. 282(3), art. 297(2)–(3) Tax Code No, if 4428 is reported correctly
Pro rata The annual adjustment appears in the December return art. 300(14) Tax Code No
Wrong or missing tax code on a line with VAT The transaction lands on another row or is missing from the D300 template tests 1, 3, 7–11 of the second series Yes, in SAF-T
Rate that does not match the base SAF-T VAT differs from base × rate tests 20–22 (first series), test 2 (second series) Yes
Invoice missing from one of the returns Base and VAT gap with no explanation art. 337^1 Tax Procedure Code, if missing from SAF-T Yes

The first four rows are timing or mechanism differences that the Tax Code allows. You explain them; you do not correct them. The last three are errors. Errors in SAF-T are fixed with a corrective D406; errors in the VAT return are fixed through the adjustment rows of a later return.

What ANAF’s tests check

ANAF has published two series of D406 consistency tests. The first, on 9 March 2023, has 22 tests: mandatory fields in the header and master files, equal debit and credit balances, closing balances matching the next month’s opening balances, equal debit and credit turnover, and VAT on each invoice line. The second, on 19 August 2024, has 11 tests on journal entries with VAT (the General Ledger Entries section). These explain most gaps with the D300:

  • a line has non-zero VAT but tax code 000000 (tests 1 and 3);
  • the VAT on a line does not equal the base multiplied by the rate of its tax code (test 2);
  • a line on an account starting with 4426, 4427 or 4428 has no tax information (tests 4–6);
  • codes for exempt, non-taxable or reverse-charge supplies, which the VAT return reports on rows 1, 2, 3, 3.1, 4, 13, 14 and 15, carry non-zero VAT (test 8);
  • reverse-charge purchases show zero VAT on lines outside accounts 4426 and 4427 (test 9);
  • self-assessment journal entries do not carry codes 380001–380005, or carry zero VAT (test 11).

The D300 template maps SAF-T tax codes onto VAT return rows. A wrong code moves the transaction to another row or drops it from the calculation, even when the total payable comes out right.

Worked example: September 2026

A Romanian subsidiary of an Austrian group, filing VAT monthly, submitted its D300 for September 2026 on 26 October (25 October was a Sunday). Before the D406 deadline for September, 2 November 2026 (31 October is a Saturday), the finance team loads the file into D300_2026.

D300 template from SAF-T D300 filed Difference
Output VAT RON 42,000 RON 45,150 +RON 3,150
Input VAT RON 32,100 RON 30,000 −RON 2,100
VAT payable RON 9,900 RON 15,150 +RON 5,250

The RON 5,250 gap in VAT payable comes from three transactions:

  1. A sales invoice dated 31 August, with RON 1,050 VAT, was in the August books and the August SAF-T but missing from the August VAT return. The company declared it in the September return, on the adjustment rows (article 323(3)). The September SAF-T has no reason to contain it. The RON 1,050 difference in output VAT is justified.
  2. An invoice for September maintenance, with RON 2,100 VAT, arrived on 28 October, after the return was filed. The accountant booked it in September, on the service date, so it shows as input VAT in SAF-T but not in D300. The company deducts it in the October return (article 301(2)). The RON 2,100 difference in input VAT is justified and closes in October.
  3. Consulting services from the parent company in Austria, under the reverse charge: RON 10,000 base and RON 2,100 VAT, declared as output and input VAT in the same return. The D300 is right. In SAF-T, the output VAT line of the self-assessment entry carries tax code 000000 (the case in tests 1 and 3) and the input line carries a domestic purchase code at 21%. The template misses RON 2,100 of output VAT and treats the deduction as a domestic purchase. This is an error in SAF-T: the real VAT payable does not change, but the file is incorrect.

The first two transactions need no correction, only a reconciliation note kept in the month’s file. The third needs a corrective D406 for September with the right self-assessment code. Article 337^1(3)(a) of the Tax Procedure Code does not fine a file corrected before the legal deadline of the next file, the D406 for October: 30 November 2026, moved to 2 December because 30 November and 1 December are public holidays. After that date, the fine for an incorrect file is RON 500 to 1,500.

To check late-payment interest on VAT declared late, use the ANAF interest and penalty calculator. It does not apply in this example: the VAT was declared and paid on time, and the differences are only in the reporting.

Calendar for autumn 2026

Date What happens Legal basis
26 August 2026 ANAF publishes the D406 checker and the D300 template ANAF press release 782
18 September 2026 Version 2.0 of D300_2026 ANAF SAF-T page, tool 7
26 October 2026 D300 for September (25 October is a Sunday) art. 323(1) Tax Code, art. 75 Tax Procedure Code
2 November 2026 D406 for September (31 October is a Saturday) annex 4 to ANAF Order 1783/2021, art. 75 Tax Procedure Code
25 November 2026 D300 for October art. 323(1) Tax Code
November 2026 The testing period of the tools ends ANAF press release 782
2 December 2026 D406 for October (30 November and 1 December are public holidays); last day to correct the September D406 without a fine annex 4, art. 337^1(3)(a) Tax Procedure Code

The exact deadlines for your company, by VAT period and by the returns you file, are in the Romanian tax deadlines calendar.

Checklist before filing

This is the order we follow each month, after closing the books and before the D406 deadline:

  1. Run the D406 checker on the XML file and open the error CSV, if one was created.
  2. Generate the D300 template from the same file and compare it with the filed return row by row, not just on totals.
  3. For each difference, look for the cause in the table above: delayed deduction, adjustment, cash accounting, pro rata.
  4. Trace any difference without a cause back to the invoice and to its SAF-T tax code.
  5. Correct SAF-T with a corrective D406 before the next file is due, and the VAT return through adjustments in the next return.
  6. Keep a short reconciliation note for each month: amount, cause, the return in which it closes. It is the first document you will need if ANAF sends a non-compliance notice.

The comparison is most useful before the 25th, on a provisional SAF-T file for the month: an error found then is corrected directly in the VAT return before filing, without an adjustment.

Foreign companies registered for VAT in Romania

A company established abroad that only holds a Romanian VAT number files a reduced SAF-T: the header, the master tables and the sales and purchase invoices, with no accounts and no journal entries. We explain the structure in the article on SAF-T for non-resident companies. For reconciliation, this means the second series of tests concerns the General Ledger Entries section, which the reduced file does not contain, and the D300_2026 guide does not describe separate handling for this type of file.

For non-residents, the gaps come from other sources than for a Romanian company. Cash accounting is not one of them: article 282(3^1) of the Tax Code reserves it for taxable persons with their place of business in Romania. These are common instead:

  • stock transfers from a warehouse in another member state, declared in D300 as intra-Community acquisitions but missing from SAF-T when the ERP issues no document for the transfer;
  • invoices issued in euro and converted at one exchange rate in D406 and at another in the VAT return;
  • purchase invoices from Romanian suppliers booked in the foreign ERP in a different month from the one in which the deduction is exercised.

For foreign companies, compare invoice by invoice: the SalesInvoices and PurchaseInvoices lists on one side, the D300 and D394 rows on the other. We build the D406 export from the client’s ERP and run this reconciliation every month as part of our Romanian VAT compliance service.

How we can help

We prepare and file the D406 and the VAT return in the same month, from the same records, with the reconciliation between them done before the deadline. The details are on our SAF-T (D406) and VAT return (D300) pages. If you have already received a SAF-T non-compliance notice, send us the file and the VAT return for the month in the notice and we will tell you what can be explained and what needs correcting.

Sources and legal basis

  1. ANAF press release 782 of 26 August 2026 on the free tools for checking D406 SAF-T — The two tools (D406 checker and D406-to-D300 template), checks run on the user's computer without transmitting data, testing from September to November 2026, feedback to saft@anaf.ro; about 870,000 companies file SAF-T, of which about 580,000 also file a VAT return.
  2. ANAF SAF-T page: tools 4, 6 and 7 — Tool 4: the consistency tests (22 tests published on 9 March 2023, 11 more on 19 August 2024); tool 6: AppVerifXML, TestSaftW and TestSaftT; tool 7: the D300_2026 application (version 2.0 updated on 18 September 2026) and its user guides.
  3. ANAF, second series of SAF-T (D406) consistency tests — The 11 tests on the General Ledger Entries section: tax code 000000 with non-zero VAT (tests 1 and 3), rate applied to the base (test 2), accounts 4426, 4427 and 4428 without tax information (tests 4–6), codes for exempt and reverse-charge transactions mapped to VAT return rows (tests 8–10), self-assessment entries with codes 380001–380005 (test 11).
  4. ANAF, D300_2026 user guide (v1.0.5) and D300 Java 17 guide (v2) — The application generates the 300 VAT return from the SAF-T file and exports it as PDF, XML or JSON; for split (modal) SAF-T files, load the file holding the General Ledger Entries section; results depend on the accuracy of the XML data.
  5. Romanian Tax Code (Law 227/2015), articles 282, 297, 300, 301 and 323 — Article 282(3) and (3^1): VAT cash accounting, available only to taxable persons with their place of business in Romania; 297(2)–(3): deduction deferred until payment; 300(14): pro rata adjustment in the return for the last period of the year; 301(2): deduction in a later return; 323(1) and (3): the 25th-day deadline and corrections through the adjustment rows.
  6. Tax Procedure Code (Law 207/2015), articles 59^1, 105 and 337^1 — Article 59^1: the obligation to file the standard audit file for tax; 105(2) and (4): an informative return can be corrected for any period, VAT return errors are corrected under the Tax Code; 337^1: fines of RON 1,000–5,000 and RON 500–1,500 and no fine for a file corrected before the deadline of the next file.
  7. ANAF Order 1783/2021 on the standard audit file for tax, annexes 3 and 4 — Annex 3: filing the initial and the corrective return; annex 4: the D406 deadline, the last calendar day of the month after the reporting period.

The information above is general and reflects the legislation in force at the date of the last update. It does not replace an analysis of your company’s specific situation.

Frequently asked questions

01Why doesn't my Romanian SAF-T match the VAT return?

Because the two returns follow different timing rules. D406 reports what is booked in the month, while D300 reports VAT by chargeability and by the deduction exercised in the period. The Tax Code allows deduction in a later return (article 301(2)), corrections of errors through the adjustment rows of another return (article 323(3)) and the pro rata adjustment in December (article 300(14)). Each of these produces a difference you can explain.

02What does ANAF's D300_2026 application do?

It reads the SAF-T XML file and builds a 300 VAT return from it, which you can export as PDF, XML or JSON and compare with the return you filed. According to ANAF press release 782 of 26 August 2026, the check runs on the user's computer and no data is sent to ANAF. The tool is in testing from September to November 2026; feedback goes to saft@anaf.ro.

03Will I be fined if D406 and D300 do not match?

Not for the difference itself. Article 337^1 of the Tax Procedure Code fines an incorrect or incomplete SAF-T file with RON 500 to 1,500. A justified difference, such as an invoice deducted the following month, does not make the file incorrect. A wrong tax code or a missing invoice does, and no fine applies if you correct the file before the legal deadline of the next SAF-T file.

04Should I correct the D406 or the D300?

Correct the return that holds the error. If the SAF-T file has wrong tax codes, rates or invoices, file a corrective D406 for that month; article 105(2) of the Tax Procedure Code allows an informative return to be corrected for any period. If the error is in the VAT return, it is corrected through the adjustment rows of a later return, under article 323(3) of the Tax Code.

05What are ANAF's SAF-T consistency tests?

They are the checks ANAF applies to D406 data, published so you can run them before filing: 22 tests in March 2023 (balances, turnover, mandatory fields, VAT on invoice lines) and 11 more in August 2024 on journal entries with VAT. The second series links SAF-T tax codes directly to the rows of the Romanian VAT return, which is why it explains most D406 versus D300 gaps.

06How do foreign companies reconcile SAF-T with the Romanian VAT return?

A company established abroad and registered only for VAT in Romania files a reduced SAF-T: sales and purchase invoices, no journal entries. The second series of tests concerns the General Ledger Entries section, which the reduced file does not contain, and the D300_2026 guide does not describe separate handling for it. An invoice-by-invoice reconciliation between D406, D300 and D394 remains the safest check.

Tell us what you do in Romania. You get a written, fixed-fee quote.

The initial consultation is free and without obligation. Reply within one business day, in English or Italian. No call required, no travel, nothing to prepare — three sentences are enough.

WhatsApp