CARF / DAC8 reporting requirements
The framework page: who reports, what is submitted and to whom.
Read the requirements →The reporting unit is not a trade. It is an aggregate, per user, per asset, per transaction category, per reporting period — which is why ledger data almost never maps to the schema without restructuring.
The Crypto-Asset Reporting Framework attaches the obligation to a reporting crypto-asset service provider — broadly, an entity or individual that as a business effects exchange transactions in relevant crypto-assets for or on behalf of customers. Custody is not the test. The OECD has been explicit that non-custodial providers can fall inside the definition where they exercise sufficient control over the arrangement through which transactions are effected, which pulls in service models that assume they are outside a reporting perimeter.
Nexus rules then decide which jurisdiction a provider reports to, based on residence, incorporation, management, place of business or the jurisdiction from which transactions are effected. A provider with a presence in several jurisdictions resolves nexus first; everything else depends on it.
Relevant transactions fall into three groups, and the schema keeps them separate throughout.
| Category | What it covers | Reported as |
|---|---|---|
| Crypto to fiat | Exchanges between relevant crypto-assets and fiat currencies, in both directions. | Gross amounts paid and received, in fiat, with unit counts and transaction counts. |
| Crypto to crypto | Exchanges between one or more forms of relevant crypto-assets. | Fair market value of the amounts acquired and disposed of, with units and transaction counts. |
| Transfers | Transfers of relevant crypto-assets in and out, including retail payment transactions. | Value and units, split by direction and by transfer type. |
A single user action can produce entries in more than one category — a purchase funded from a deposit that arrived on-chain produces a transfer in and an exchange. Source systems that record one event per user action have to be decomposed before mapping.
This is the step that breaks most implementations. Exchange systems store transactions; the schema stores aggregates. The reported unit is the combination of user, reporting period, crypto-asset type and transaction category, with an amount, a number of units and a number of transactions attached to each.
Building that aggregate reliably needs four things settled in advance:
Crypto-to-crypto exchanges are reported at value, which means every leg needs a valuation at the time of the transaction rather than at period end. Three rules keep this defensible: use one valuation source per asset and record it; apply the same method to acquisitions and disposals; and retain the rate used against each aggregate so a figure can be reproduced later. Unit counts are reported alongside the values, so precision and rounding policy for fractional units matter as much as the fiat figure.
Transfers are reported by direction and by type, and the framework treats retail payment transactions over a defined value as a distinct case. Two situations recur:
Council Directive (EU) 2023/2226 implements the framework inside the Union and does three further things that matter operationally. It plugs crypto-asset reporting into the existing administrative cooperation machinery, so exchange runs through the same channels as other automatic exchange. It aligns the reporting perimeter with the Union’s own crypto-asset regime, so a provider authorised there is inside the reporting population by construction. And it carries the amendments to the Common Reporting Standard, which extend that standard to electronic money products and central bank digital currencies.
The XML schema follows the pattern used across automatic exchange. A message header identifies the transmitting and receiving jurisdictions with two-character country codes, carries a unique message reference beginning with the sending country code, states the message type — new information, corrections and deletions, or no data to report — and gives the reporting period end date. Each record then carries a document specification block whose type indicator marks it as new data, a correction, a deletion or a resent record, with the references of the record being changed where applicable.
The same discipline applies as elsewhere: message and document references must be unique and permanent, corrections point at the original record rather than replacing the file, and a no-data message is used where the receiving jurisdiction expects one.
Primary instruments only. Each is named in full so the reference remains traceable even if a link moves.
REGREP is an independent software provider. This record explains a reporting framework in plain language and is not legal, tax or regulatory advice. Confirm scope, thresholds and submission dates with your competent authority before you file.
More on this framework, and the module that produces the filing.
The framework page: who reports, what is submitted and to whom.
Read the requirements →The supervisory obligation that sits alongside the tax one.
Read the questions →Aggregate, validate and export the exchange file from your own transaction data.
See the module →Bring your user and transaction data in the shape your systems hold it. The module handles categorisation, aggregation and schema validation.