odoo / odoo/odoo

[19.0] l10n_nl_reports still produces XAF 3.2, which the Belastingdienst will refuse from 2027-01-01

Open
#281,069 0 comments 0 reactions 0 assignees View on GitHub

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
  1. Install l10n_nl + account_reports on 19.0 Enterprise.
  2. Open the General Ledger and click EXPORT (XAF).
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.