DORA RoI ValidatorCheck your Register of Information before you file it
Drop in the xBRL-CSV report package you are about to submit to your competent authority. More than 200 validation rules run against it, in your browser. The file is never uploaded.
| Template | Content | Checks |
|---|---|---|
| B_01.02 | Entities in scope | No errors |
| B_02.02 | Contractual arrangements | 18 errors |
| B_03.01 | Entities signing | 1 error |
| B_05.01 | ICT third-party providers | 6 errors |
| B_06.01 | Functions | No errors |
200+
Validation rules applied
15
EBA templates read, B_01.01 to B_99.01
0
Bytes of your register sent to us
Free
No account, no licence, no install
Validate your report package
Select the zip your reporting tool produced. It is opened and checked here, on your own machine, against the fifteen EBA templates and the country-specific variants.
Validation rules last updated 19 October 2026
Personal mailboxes are not accepted.
Templates read
- B_01.01
- B_01.02
- B_01.03
- B_02.01
- B_02.02
- B_02.03
- B_03.01
- B_03.02
- B_03.03
- B_04.01
- B_05.01
- B_05.02
- B_06.01
- B_07.01
- B_99.01
Your register is opened and validated on your own machine. None of its contents reach Fund XP: no provider names, no contract references, no figures. Three things are sent to us when you run a check — your email address, the name of the file you selected, and the number of problems found. File names in this submission format normally start with your LEI, so treat the name as identifying your entity. Checking LEIs against the public GLEIF database sends those LEIs to gleif.org; they are public identifiers.
What the validator checks
More than 200 validation rules, across the fifteen EBA templates. The figure you get back is far higher, because every rule runs once per row: a register with a few hundred contracts executes several thousand individual checks.
Package structure
Both JSON manifests, the reporting parameters, the filing indicators, and whether every template declared as reported is actually present in the zip.
Column layout per country
Each template against its expected columns, including the extra column Italy, Luxembourg and Romania require on B_02.03, B_03.01 and B_03.03.
EBA closed lists
Every coded value against the taxonomy: entity types, countries, currencies, types of ICT service, criticality, substitutability, levels of reliance.
Identifiers
LEI check digits under ISO 17442, and EUID patterns for each national business register, with the code matched against the type of code declared beside it.
References between templates
Contract reference numbers, provider identification codes, function identifiers and branch codes, each traced to the template that is meant to define it.
Supply chains
Whether each rank in B_05.02 connects to the rank above it for the same contract and service, and whether direct providers are reported as rank 1.
Conditional fields
Notice periods, governing law, data storage and level of reliance, which are required when the ICT service supports a critical or important function and must be empty otherwise.
Live GLEIF status
Whether each LEI exists, is still issued rather than lapsed, sits in the country you declared, and reports the ultimate parent you reported.
How the check runs
-
Select the zip
The package stays on your machine. Nothing is uploaded, at any point.
-
The templates are read
The fifteen CSV files and both JSON manifests are parsed in the browser.
-
The rules run
Structure, codes, identifiers, cross-references and supply chains, row by row.
-
You get a count
The number of problems found, and the number of checks that produced it.
Why RoI filings get rejected
These are the faults we see most often in real packages, including ones produced by other reporting tools. Most are invisible in a spreadsheet and fatal to an xBRL parser.
| Where | What goes wrong | Why it fails |
|---|---|---|
| FilingIndicators.csv | A boolean written as true, with a leading space |
The taxonomy accepts true and false only. A space makes the value invalid. |
| parameters.csv | entityID carrying a different LEI from the one in B_01.01 |
Two identities in one submission. The authority cannot tell who is filing. |
| B_02.03, B_03.01, B_03.03 | The country-specific extra column missing | Italy, Luxembourg and Romania expect one more column than the base layout. |
| Any coded field | An English label instead of the EBA code, for example the label of a LEI rather than eba_qCO:qx2000 |
The value is not a member of the code domain, so the parser rejects the cell outright. |
| B_05.01 | An ultimate parent that has no row of its own in the table | The parent must be reported as a provider in its own right. |
| B_05.01 | An annual expense reported for a sub-contractor rather than a direct provider | The expense belongs to rank 1 of the supply chain only. |
| B_05.02 | A rank 2 row whose recipient does not match the provider at rank 1 | The subcontracting chain is broken and cannot be reconstructed. |
| Provider and entity names | Trailing spaces left by a copy and paste | Flagged as a warning by the ESAs, and it breaks the matching between templates. |
| Any LEI | A LEI that passes its check digits but is lapsed or absent from GLEIF | Format alone proves nothing. The register has to reflect the live GLEIF record. |
The validator reports how many of these your package contains. Our DORA Register of Information solution shows you the template, the row and the field, and stops them occurring in the first place.
Frequently asked questions
What is the DORA Register of Information?
Under the Digital Operational Resilience Act, every financial entity in the EU maintains a Register of Information — the RoI — listing its contractual arrangements for ICT services, and reports it to its competent authority each year. It spans fifteen templates, B_01.01 through B_99.01, covering the entities in scope, the contracts, the ICT third-party service providers, the supply chains, and the functions those services support.
What file does the validator accept?
The xBRL-CSV report package you submit to your regulator: a zip holding META-INF/reportPackage.json, reports/report.json, parameters.csv, FilingIndicators.csv and one CSV per template. This is the format produced by reporting tools built for the EBA DORA taxonomy.
Is my register uploaded to Fund XP?
No. The zip is opened and validated inside your browser. No provider names, contract references or figures reach Fund XP. Only the email address you enter, the name of the file you select and the number of problems found are sent to us, with your consent.
Why does the validator only give a number?
The free validator tells you whether your RoI is clean, and how much work it needs if it is not. Locating each problem, explaining it, and stopping it recurring next year is what our solution does, for under EUR 1,000 a year.
Does a clean result mean my filing will be accepted?
It means your package passes the validation rules we run, which are the ones our own clients' registers pass. Your competent authority may apply further rules of its own, and national variations exist.
Does it work for a group filing?
Yes. The consolidation scope is read from parameters.csv, and the references between entities in B_01.02, B_03.01 and B_04.01 are checked the same way for an individual and a consolidated submission.
Official sources
The rules this validator applies come from the European Supervisory Authorities and the EBA reporting framework.
Identifiers
Format
Our solution
Other reporting solutions
Stop finding them. Stop having them.
Our DORA register solution is a single Excel workbook. It validates every field as you type, checks LEIs against GLEIF, enforces the references between templates, and exports a submission-ready package. Under EUR 1,000 a year.
