AEOI Reporting

Free forever · no account · nothing uploaded

CRS XML validator

Drop a CRS submission file in and get a line-by-line report against the amended CRS XML Schema v3.0. The parser runs in this tab: the file is never transmitted and never stored.

This is the amended standard, not v2.0. It asks for a good deal that the previous version did not — whether a valid self-certification was obtained, what kind of account it is, whether due diligence treated it as new or pre-existing — and supplies a “not reported” code for each so older data can still be corrected. Those codes are flagged rather than accepted quietly.

Drop a CRS 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. The rules that actually reject CRS files are about consistency between fields — a passive NFE with no controlling persons, a closed account still holding money — so those are checked too, each citing the section of the user guide it comes from.

Amended schema structure

Every element, its cardinality and its datatype against CRS XML Schema v3.0 — the October 2024 amended standard, with SelfCert, AccountType, DDProcedure and EquityInterestType.

Transitional codes

The 'not reported' placeholders CRS800, CRS900, CRS1000, CRS1100 and CRS1200 exist so v2.0 data can round-trip. A new report using them is withholding information the amended standard asks for, and each one is flagged.

Controlling persons

The passive-NFE handshake: an account holder typed CRS101 must report its Controlling Persons, and Controlling Persons reported against any other holder type are questioned.

Account holder shape

An account holder is an Individual, or an Organisation with an AcctHolderType — never both and never neither. Files that carry both are accepted by a lax parser and rejected by the receiving administration.

Balances and payments

Closed accounts reporting a non-zero balance, two payments sharing a type where one aggregate is expected, and NANUM used as though it meant 'no number to hand' rather than 'no numbering system'.

References and corrections

DocRefID uniqueness, the country-and-year prefix, CorrDocRefID integrity, and new data appearing inside a correction message.

Source: OECD, Amended Common Reporting Standard XML Schema (October 2024), User Guide for Tax Administrations. Findings quote it; they are not tax advice.

CRS code lists

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

MessageTypeIndic

CRS701
The message contains new information
CRS702
The message contains corrections/deletions for previously sent information
CRS703
The message advises there is no data to report

AcctHolderType

CRS101
Passive Non-Financial Entity with one or more Controlling Persons that are Reportable Persons
CRS102
CRS Reportable Person
CRS103
Passive Non-Financial Entity that is a CRS Reportable Person

CtrlgPersonType

CRS801
CP of legal person — ownership
CRS802
CP of legal person — other means
CRS803
CP of legal person — senior managing official
CRS804
CP of legal arrangement — trust — settlor
CRS805
CP of legal arrangement — trust — trustee
CRS806
CP of legal arrangement — trust — protector
CRS807
CP of legal arrangement — trust — beneficiary
CRS808
CP of legal arrangement — trust — other
CRS809
CP of legal arrangement — other — settlor-equivalent
CRS810
CP of legal arrangement — other — trustee-equivalent
CRS811
CP of legal arrangement — other — protector-equivalent
CRS812
CP of legal arrangement — other — beneficiary-equivalent
CRS813
CP of legal arrangement — other — other-equivalent
CRS800
Not reported (transitional)

EquityInterestType

CRS401
EIH of legal arrangement — trust — settlor
CRS402
EIH of legal arrangement — trust — trustee
CRS403
EIH of legal arrangement — trust — protector
CRS404
EIH of legal arrangement — trust — beneficiary
CRS405
EIH of legal arrangement — trust — other
CRS406
EIH of legal arrangement — other — settlor-equivalent
CRS407
EIH of legal arrangement — other — trustee-equivalent
CRS408
EIH of legal arrangement — other — protector-equivalent
CRS409
EIH of legal arrangement — other — beneficiary-equivalent
CRS410
EIH of legal arrangement — other — other-equivalent

Payment Type

CRS501
Dividends
CRS502
Interest
CRS503
Gross Proceeds/Redemptions
CRS504
Other — CRS

AccountType

CRS1101
Depository Account
CRS1102
Custodial Account
CRS1103
Cash Value Insurance Contract or Annuity Contract
CRS1104
Debt or Equity Interest in an Investment Entity
CRS1100
Not reported (transitional)

DDProcedure

CRS1201
New Account
CRS1202
Preexisting Account
CRS1200
Not reported (transitional)

SelfCert (account holder)

CRS901
A valid self-certification was provided
CRS902
No valid self-certification was provided
CRS900
Not reported (transitional)

SelfCert (controlling person)

CRS1001
A valid self-certification was provided
CRS1002
No valid self-certification was provided
CRS1000
Not reported (transitional)

AcctNumberType

OECD601
IBAN — International Bank Account Number
OECD602
OBAN — Other Bank Account Number
OECD603
ISIN — International Securities Information Number
OECD604
OSIN — Other Securities Information Number
OECD605
Other — any other account number, e.g. an insurance contract
OECD606
Specified Electronic Money Product

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 self-certifications the amended standard now asks you to record, chases the account holders who ignore them, generates the file with stable DocRefIDs and handles the corrections afterwards — from EUR 59 a month, priced on the page.