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.