AEOI Reporting

Free forever · no account · nothing uploaded

DAC7 XML validator

Drop a DAC7 submission file in and get a line-by-line report against the OECD DPI XML Schema v1.0, the schema the EU adopted for platform operator reporting. The parser runs in this tab: the file is never transmitted and never stored.

If your exporter was adapted from a CRS one, start with the amounts. DPI reports consideration in whole units of currency — 1250, not 1250.00 — and that single difference accounts for a great many rejected first submissions.

Drop a DAC7 XML file here

It is parsed in this browser tab. No upload, no account, no size limit beyond what your machine can hold.

What it checks

Schema validity is the easy half. Most DAC7 rejections come from the quarterly breakdown contradicting itself, or from an assumed-reporting claim with nobody on the other end of it — rules an XSD cannot express, so they are checked here, each citing the section of the user guide it comes from.

Schema structure

Every element, its cardinality, its order and its datatype against DPI XML Schema v1.0, including the INType attribute that is required rather than optional.

Whole-unit amounts

DPI reports consideration in whole units of currency, not in cents. An amount with decimals is a schema failure, and one of the most common things an exporter written against CRS gets wrong.

Quarterly arithmetic

ConsQ1–Q4, NumbQ1–Q4, FeesQ1–Q4 and TaxQ1–Q4 against each other: fees and taxes on a quarter with no consideration, a quarter with consideration but no transaction count, and totals that do not add up.

Code lists

MessageTypeIndic, DocTypeIndic, the EU Nexus values RPONEX1–5, PropertyType DPI901–910 and INType, with each code's meaning quoted from the user guide.

Assumed reporting

The AssumedReporting handshake — a platform operator claiming another operator reports on its behalf must name that operator, and the reverse.

References and corrections

DocRefID uniqueness, the country-and-year prefix, CorrDocRefID pointing at something real, and the permitted DocTypeIndic combinations for corrections and deletions.

Source: OECD, Model Rules for Reporting by Digital Platform Operators XML Schema (2022), User Guide for Tax Administrations. Findings quote it; they are not tax advice.

DAC7 code lists

The full enumerations, for when a report names a code you have not seen before.

MessageTypeIndic

DPI401
The message contains new (including additional) information
DPI402
The message contains corrections/deletions for previously sent information
DPI403
The message advises that there is no data to report

Nexus (EU)

RPONEX1
Resident for tax purposes in the EU Member State
RPONEX2
Not tax resident, but incorporated under the laws of the Member State
RPONEX3
Not tax resident, but place of management is in the Member State
RPONEX4
Not tax resident, but has a permanent establishment there and is not a Qualified Non-Union Platform Operator
RPONEX5
None of the above, but facilitates a Relevant Activity there and is not a Qualified Non-Union Platform Operator

PropertyType

DPI901
Office
DPI902
Hotel room
DPI903
Bed & Breakfast room
DPI904
House
DPI905
Apartment
DPI906
Mobile home
DPI907
Campground
DPI908
Boat
DPI909
Parking space
DPI910
Other

INType

IIN
Individual identification number (EU-specific; not a natural person)
LEI
Legal Entity Identifier
EIN
Entity identification number
BRN
Business registration number
Other
Other

Validating is free. Producing the file is what we sell.

The validator will keep telling you what is wrong with a hand-built file. The paid product collects the seller self-certifications, chases the ones who ignore them, aggregates the quarterly consideration from your transaction data, generates the file with stable DocRefIDs and handles the corrections afterwards — from EUR 59 a month, priced on the page.