Folio v0.9 — CEX + On-chain Consolidation is liveSee what's new →

DAC8 Reporting Templates and the XML Schema: What CASPs Submit in 2026

Regulation·

DAC8 Reporting Templates and the XML Schema: What CASPs Submit in 2026

DAC8 data is exchanged in an XML format aligned with the OECD CARF/CRS schemas, over the EU Common Communication Network. What the report structure looks like, why the schema is the easy part, and how to avoid schema-valid but wrong filings.
Author avatar Wag3s TeamEditorial team specializing in Web3 finance, crypto tax, and DAO operations. Based in Zurich, Switzerland.

Reviewed by Wag3s Editorial Team — verified against Council Directive (EU) 2023/2226, OECD CARF XML schema/guidance (published October 2024), and European Commission DAC8 guidance · Last reviewed May 2026

DAC8 Reporting Templates and the XML Schema

"What does the DAC8 report look like?" is usually the first question a compliance team asks and the least important one to answer first. The format is a schema-defined XML document aligned with the OECD's CARF/CRS schemas, exchanged over the EU Common Communication Network. It is deterministic once the data is right. This article describes the structure and explains why getting the schema right is necessary but nowhere near sufficient.

TL;DR

  • DAC8 data is exchanged as XML over the EU Common Communication Network.
  • The EU schema aligns with the OECD CARF/CRS XML schemas (published with guidance October 2024).
  • It is schema-defined, not a fillable form: reporting-entity block, per-user identity/residency block, per-asset annual-aggregate block.
  • National transposition can add/vary fields — the practical template is the EU/OECD schema plus home-authority extensions.
  • The schema is the easy part: schema-valid + incomplete data = a well-formatted wrong filing.

The structure, conceptually

A DAC8 submission is an XML document. Without reproducing the formal schema, its logical blocks are:

BlockContents
Message header / reporting entityThe CASP's identification, reporting period, message metadata
Per reportable userLegal name, date of birth (individuals) or entity identifier, address, jurisdiction(s) of tax residence, TIN per jurisdiction
Per user × per reportable crypto-assetAnnual aggregate acquired and disposed against fiat; against other crypto-assets; transfers (units + fair-market value); retail-payment amounts where applicable

This mirrors the OECD CARF data model by design — the EU built DAC8 as its implementation of CARF, so the schemas align to let authorities exchange consistently and to let globally active CASPs avoid two incompatible data models (see DAC8 vs CARF).

Why the schema is the easy part

Emitting schema-valid XML is a solved engineering problem once two conditions hold: the target schema is fixed, and the input data is complete and correctly classified. Both conditions are upstream of the formatting step.

The recurring failure: a team treats DAC8 as "generate the XML," automates that, and ships a file that validates against the schema, files on time, and is substantively wrong because the transaction data feeding it was incomplete or mis-aggregated. Schema validity is not data correctness. A validator checks shape, not truth. This is the highest-frequency DAC8 penalty exposure (see DAC8 penalties) and the reason the data-collected and automation work matters more than the template.

National variation

The EU/OECD-aligned schema is the baseline. Because DAC8 is a Directive transposed nationally, a Member State's transposition can add or vary fields, and the home-authority submission mechanics differ (portal upload, format particulars, deadlines within the exchange window). The practical "template" for a given CASP is therefore the EU/OECD schema plus its home Member State's specifics — not a single pan-EU form (see DAC8 transposition by country).

A submission pipeline hard-coded to one Member State's variant breaks when the CASP onboards users elsewhere. Build to the EU/OECD baseline, parameterize the national extensions.

What to check before building submission tooling

  1. Confirm your home Member State's transposed schema/extensions and submission mechanics with the authority.
  2. Build to the OECD CARF/CRS-aligned baseline, parameterize national variants.
  3. Validate shape and reconcile substance — schema validation is necessary, not sufficient; reconcile aggregates to the underlying ledger.
  4. Retain lineage so any element in the XML traces back to specific transactions for audit reconstruction.
  5. Treat output as downstream of complete Layer 2 data — do not start at the template.

Where vendors fit

  • TaxBit — generates DAC8/CARF-shaped output aligned with the published schemas.
  • Cryptio — supplies the normalized, lineage-retained data the output is built from.
  • Sumsub — supplies the verified per-user identity/residency block.

The output tool is the cheapest, least differentiated part of the stack; its quality is bounded by the data fed to it.

How Wag3s helps

Wag3s Ledger produces the substance the schema carries:

  • Per-user, per-asset annual aggregates structured to the DAC8 reportable categories
  • Instrument-level tagging (EMT vs CBDC vs tokenized security) so the right activity lands in the right element
  • Retained lineage so every reported figure is reconstructable for audit (see multi-chain reconciliation)
  • Clean handoff to a Layer 3 reporting/output tool or in-house XML generation

See the Wag3s Ledger product page for module details.


Further reading

Sources

Editorial disclaimer
This article is informational and does not constitute legal or technical-compliance advice. The exact XML schema and any Member State variations are defined by the EU and national transposition; confirm the current technical specification with the relevant authority before building submission tooling.