CARF is the OECD baseline; DAC8 is how the EU implements it. The XML mostly overlaps, but the national envelopes are where filings break.
CARF and DAC8 are often spoken about as one thing, and for data-collection purposes they nearly are. But when you get to the file you actually submit, the differences start to matter, and they matter most at the national level, where a generic build quietly falls short.
CARF is the OECD's global crypto reporting standard. DAC8 is the European Union's implementation of it in EU law. The due diligence and data are largely the same, but DAC8 adds EU-specific structure and each member state can require its own national format.
Not always. A file valid against the OECD CARF baseline can still be rejected by an EU authority that expects DAC8-specific fields or a national envelope. You need the specific format each authority accepts, not just the OECD baseline.
It is a country-specific file format layered on top of the CARF standard, such as Sweden's KU94. A generic build that only emits the OECD baseline can pass schema validation yet be rejected by the national tax authority.
Austrian providers must withhold 27.5% KESt on crypto gains. Here's what triggers it, how the moving-average basis works, and how to automate the filing.
Withhold KESt at source and your users' crypto tax is final, no return needed. Use a foreign provider and they self-declare. Here's why the difference matters.
Austria requires the gleitender Durchschnittspreis for crypto, not FIFO. Here's how the moving-average basis works and why it complicates withholding.
Generate an audit-ready report aligned to your jurisdiction. No credit card required.
CARF is the OECD's global standard. DAC8 is how the European Union writes that standard into its own law, so an EU member state's requirements start from the same CARF logic: the same due diligence, the same idea of a reportable user, largely the same data. If you've built for CARF, you've done most of the work for DAC8.
The divergence is in the envelope. The EU exchanges data among member states through its own systems, so a DAC8 submission can carry EU-specific fields and structural expectations that the OECD baseline doesn't. Report in one member state to cover all of them, which is convenient, but only if your file matches that state's exact expectations.
Individual authorities go further and require their own national envelopes. Sweden's KU94 is the standard example: a file that is valid CARF at the OECD level and still gets rejected because Skatteverket expects its national format. A build that only produces the OECD baseline will pass a schema check and fail at the tax office. This is a big driver of the rejections in the CARF XML errors that get filings rejected.
The answer isn't one file, it's the right file per authority, off one dataset. Our CARF and DAC8 reporting platform generates the OECD baseline, the DAC8 variant, and national envelopes like KU94 from the same reconciled data, and validates each against the schema its authority accepts. For where a user actually falls in scope across these regimes, see nexus under CARF, and the EU tax cooperation pages for the DAC8 baseline.