Newsletter: monthly mandate & ERP support changes

Home › Guides

Produce and reconcile a SAF-T or tax audit file from your ERP

A tax audit file is a structured export of your accounting data: the chart of accounts, customers and suppliers, journal entries and, in some countries, invoices, stock or fixed assets. Some countries require it on a fixed schedule. Others ask for it only during a tax audit. In both cases the authority expects the file to agree with your books. A file that validates against the schema but does not reconcile to the trial balance is not finished.

Part 1 of 3 in the series Audit files and audits. Next: Respond to a tax audit data request: runbook and evidence index.

This guide covers the work that sits around the export button. You confirm which file applies, prepare the master data, generate a test file, tie it out to the ledger and log every validation error until it is closed. It does not tell you which country requires what. Use SAF-T and audit files for that, and open the country row for the official source.

Confirm which file applies

Start from the requirement, not from the ERP menu. The table below is built from this site's audit-file data. It separates files that are submitted periodically from files that are produced on request. That distinction drives everything else: a periodic file needs a monthly or annual production routine; an on-request file needs a tested capability you can run quickly when an auditor asks.

Audit files listed on this site (24), from the SAF-T section data
CountryAudit fileTypeStatus on this site
AustriaAustrian SAF-T (optional accepted format)audit file – on requestverified
BelgiumBelgian SAF-T (recommended format, not yet mandatory)audit file – on requestverified
BrazilDigital accounting books (SPED)audit file – periodic submissionverified
BrazilFiscal accounting bookkeeping for IRPJ and CSLL (SPED)audit file – periodic submissionverified
BulgariaBulgarian SAF-T (phased from 2026)audit file – periodic submissionverified
DenmarkBookkeeping-system SAF-T exportaudit file – on requestverified
FranceAccounting entries file (audit file)audit file – on requestverified
GermanyTax-audit data accessaudit file – on requestverified
IrelandElectronic accounting data on request (no national audit-file schema)audit file – on requestverified
IsraelOpen Format uniform accounting-data filesaudit file – on requestunverified
KazakhstanStandard audit file (voluntary, during tax audits)audit file – on requestverified
LithuaniaLithuanian SAF-T via i.SAF-Taudit file – on requestverified
LuxembourgAudit file (Fichier d'Audit Informatisé AED)audit file – on requestverified
MexicoElectronic accounting (chart of accounts, trial balance)audit file – periodic submissionverified
NetherlandsFinancial audit fileaudit file – on requestverified
NorwayNorwegian SAF-T Financial (accounting export)audit file – on requestverified
PolandSAF-T accounting books for income taxaudit file – periodic submissionverified
PolandOn-request SAF-T structuresaudit file – on requestverified
PortugalPortuguese SAF-T (accounting and invoicing export)audit file – on requestverified
RomaniaStandard audit file for taxaudit file – periodic submissionverified
SingaporeIRAS audit fileaudit file – on requestverified
SwedenAccounting-data exchange standardrelated accounting-data format (not a filing obligation)verified
UkraineUkrainian SAF-T (large taxpayers, on audit request)audit file – on requestverified
United Arab EmiratesTax audit fileaudit file – on requestverified

For each legal entity, record:

Where the site marks a row as unverified, treat the frequency and scope as a lead and confirm them in the authority's current notice before you plan the work.

Check what your ERP can produce

Open the ERP comparison on the SAF-T page for your country and product. A documented export is a starting point, not proof that your configuration will produce a valid file. Ask three questions:

  1. Does the export come from the standard product, a country localization, an add-on or a partner tool?
  2. Which schema version does it produce, and who updates it when the authority publishes a new one?
  3. Which sections does it cover? Some exports cover the general ledger but not stock or assets.

If you use a separate tool, decide where the data is extracted, who owns the mapping and how a change in the ERP reaches that tool. See verify ERP localization support for the evidence to collect.

Prepare the master data

Most validation errors come from master data, not from the export logic. Before the first test file, check:

The master data readiness guide gives a wider checklist.

Generate a test file and tie it out

Produce a file for a closed period first. Then reconcile it at three levels. All three must agree before you trust the file.

  1. Opening balances. The opening balance of each account in the file equals the closing trial balance of the previous period.
  2. Movements. Total debits and credits in the file equal the period's debits and credits in the ledger, per account and in total. Check the entry count too.
  3. Closing balances. Opening balance plus movements equals the closing balance in the file and in the trial balance.

Also compare the customer and supplier sections to the receivables and payables subledgers, and any invoice section to the sales and purchase journals. A difference at this level usually points to entries posted outside the subledger, such as manual journals to a control account.

Worked example: one month tied out

A company produces its first test file for March. The amounts are illustrative round numbers for the example. During March it books one sale and one supplier payment.

Example entries in the test month (illustrative)
StepAccountDebitCreditNote
Sale on creditTrade receivables1,250.00
Sales revenue1,000.00
Output VAT250.00example rate
Supplier paymentTrade payables600.00
Bank600.00

The tie-out sheet compares the file to the trial balance:

AccountOpening (ledger)Opening (file)Movements (file)Closing (file)Closing (ledger)Difference
Trade receivables4,000 Dr4,000 Dr+1,2505,250 Dr5,250 Dr0
Sales revenue00+1,000 Cr1,000 Cr1,000 Cr0
Output VAT00+250 Cr250 Cr250 Cr0
Trade payables2,500 Cr2,500 Cr−6001,900 Cr1,900 Cr0
Bank3,000 Dr3,000 Dr−6002,400 Dr2,400 Dr0
Total debits / credits in file1,850 / 1,8500

Now suppose the first file showed bank closing at 3,000 Dr. The movement total in the file was 1,250, not 1,850. The supplier payment had been posted in a journal that was not mapped to a schema journal type, so the export skipped it. The fix is in the mapping, not in the file. You correct the journal mapping, regenerate, and record the error in the log below.

Keep a validation-error log

Log every error from the schema validator, the authority's checker or your own tie-out. Close an error only when a regenerated file passes.

#SourceMessage or differenceRoot causeFix (where)OwnerRetest fileClosed
1Tie-outMovements 600 shortPayment journal not mappedJournal mappingERP teamMarch v2Yes
2ValidatorMissing tax ID on supplierSupplier master incompleteSupplier masterAP leadMarch v2Yes
3ValidatorUnknown tax codeRetired code not mappedTax-code mappingTax ownerMarch v3Open

Patterns in this log tell you which controls to add. Repeated master-data errors mean the creation workflow needs required fields, not that someone should fix the file by hand.

Run it as a routine

For a periodic file, add production, tie-out and sign-off to the close calendar. For an on-request file, regenerate a test file after every ERP upgrade, new legal entity or change to the chart of accounts, and keep the last good file with its tie-out. Keep the submitted file, the tie-out, the validator result and any receipt together. Never edit an exported file by hand; fix the source and regenerate.

If an auditor asks for the file, the tax audit data request runbook covers the response.

Worksheet

Use the audit file readiness and tie-out worksheet for each entity and file.

Worksheet: Audit file readiness and tie-out worksheet

Copy this worksheet for each case. It records decisions and evidence; it does not determine the tax or legal treatment.

Show the worksheet

Use with the SAF-T and audit file guide. One copy per legal entity and file.

Requirement

Readiness

Tie-out (per test period)

CheckLedgerFileDifferenceExplained by
Opening balances (total and per account)
Total debits
Total credits
Entry count
Closing balances
Receivables subledger vs customer section
Payables subledger vs supplier section

Validation-error log

#SourceMessage or differenceRoot causeFix (where)OwnerRetest fileClosed

Sign-off

Sources checked: 27 October 2026. Country scope, frequency and format come from the linked rows on this site, each with its official source. This guide does not restate any national schema; use the authority's current technical documentation.

Part 1 of 3 in the series Audit files and audits. Next: Respond to a tax audit data request: runbook and evidence index.

Data on this site: SAF-T and audit files by country · ERP profiles and country support

In VAT and tax: previous How to reconcile European e-commerce sales across OSS, IOSS and marketplaces · next Map ERP tax codes to VAT return boxes and file the periodic return · Guides by task · All guides

Vendor documentation is cited only as an example of the level of evidence to ask for; it is not a recommendation or a ranking. This guide is general information, not tax or legal advice. Checked 2026-10-27.

Related: Glossary – abbreviations and terms used in these guides (SAF-T, Peppol, CTC, EN 16931, IFRS and more).

Page last updated: · Markdown version · Suggest a correction

Newsletter – monthly digest of mandate and ERP support changes. Subscribe on the home page.