[19.0] l10n_nl_reports still produces XAF 3.2, which the Belastingdienst will refuse from 2027-01-01
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 54.5k
- Forks
- 33.8k
- PR merge metrics
- No merged PRs in 30d
Description
Impact
Every Dutch customer who uses Ledger → EXPORT (XAF) will hand the tax
administration a file it refuses, from 1 January 2027.
Steps to reproduce
- Install
l10n_nl+account_reportson 19.0 Enterprise. - Open the General Ledger and click EXPORT (XAF).
- Inspect the generated file.
Current behaviour
The file carries xmlns="http://www.auditfiles.nl/XAF/3.2", produced from
l10n_nl_reports/data/xml_audit_file_3_2.xml.
Verified on 19.0 Enterprise, build 19.0+e-20260602 (re-checked 2026-08-06):
$ grep -rho 'auditfiles.nl/XAF/[0-9.]*' odoo/addons/l10n_nl_reports/
auditfiles.nl/XAF/3.2
$ grep -rl 'odb.belastingdienst.nl' odoo/addons/l10n_nl_reports/
(no match)
Expected behaviour
XAF 4.0.x, namespace
http://www.odb.belastingdienst.nl/Belastingdienst/BCPP/1.1/structures/XmlauditfileXAF_4.0.
Reference
The Belastingdienst's ODB (Overleg Bedrijfssoftware / Klankbordgroep Auditfile
Financieel) announced on 2026-04-22 that only XAF 4.0 will be accepted from
2027-01-01; earlier versions will be refused. The XSD (4.0.3) and a sample file
are published on odb.belastingdienst.nl.
One implementation note, learned the hard way
4.0 is not a cosmetic renaming of the namespace: the field count drops from
roughly 250 to roughly 90, and several elements move. In particular, amnt and
amntTp no longer exist on transaction — they exist only on trLine.
Keeping them on transaction produces a file that looks fine and is invalid
against the official schema; only validation catches it.
We hit exactly this while moving our own margin-scheme audit export from 3.2 to
4.0, which is why we are reporting it rather than assuming it is already
handled.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with l10n_nl_reports/data/xml_audit_file_3_2.xml and trace the Ledger EXPORT (XAF) entry point that produces it. Compare the generated file with the published XAF 4.0.3 XSD and sample, paying attention to the reported transaction and trLine differences. Done means the export uses the required 4.0 namespace and validates against the official schema.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100