Every check the validator runs
The EBA codes are the ones that appear in the ESAs' feedback files (detailed-feedback.csv). The RF codes are Roifile's own and never appear in regulator feedback; they catch what caused questions and resubmissions in 2025 and 2026.
Reception and technical checks (reject the file)
| 101 | Report file must be a .zip | blocking |
| 103 | Zip must unpack cleanly and contain only the package files | blocking |
| 104 | Filename may only use letters, digits, hyphen, underscore and dot | blocking |
| 105 | Filename structure ReportSubject_Country_FrameworkModuleVersion_Module_ReferenceDate_Timestamp | blocking |
| 106 | Filename module must be DORA | blocking |
| 109 | Reference date in filename must be a valid yyyy-mm-dd date | blocking |
| 111 | Reference date in filename cannot be in the future | blocking |
| 115 | DORA report must be a zip of plain CSV files | blocking |
| 306 | Files must be UTF-8 encoded | blocking |
| 701 | reports/report.json, reports/FilingIndicators.csv and reports/parameters.csv must exist and be non-empty | blocking |
| 702 | FilingIndicators.csv must have exactly two columns | blocking |
| 703 | Each template may be declared only once in FilingIndicators.csv | blocking |
| 704 | Filing indicator values must be true/false/1/0 | blocking |
| 705 | Filing indicator value missing | blocking |
| 714 | entityID parameter must exist and match the filename | blocking |
| 720 | CSV filenames must be the lower-case table names (b_01.01.csv …) | blocking |
| 723 | parameters.csv header must be exactly name,value | blocking |
| 724 | The package contains no data at all | blocking |
| 801 | Every header column code must exist in the taxonomy for that table | blocking |
| 802 | A column may not be reported twice | blocking |
| 805 | Key columns cannot be empty | blocking |
| 807 | Foreign key constraint violated: the referenced row does not exist | blocking |
| 808 | All templates must be declared true in FilingIndicators.csv | blocking |
| 809 | CSV row has a different number of cells than the header | blocking |
DPM technical checks
| 305 | Numeric value expected | error |
| 320 | Reference date in parameters.csv must be valid and match the filename | blocking |
| 330 | Date must be in yyyy-mm-dd format | error |
| 331 | Integer expected | error |
| 332 | Boolean expected (true/false/1/0) | error |
| 333 | This column may only be reported as true | error |
| 503 | Value must be one of the codes allowed for this column | error |
| 505 | report.json must point to the DORA module entry point | blocking |
| 510 | Filing indicator template codes must be the official template IDs | blocking |
| 806 | Two rows share the same key values | error |
EBA business validation rules and identifier checks
| v8826_m | LEI must be 18 alphanumerics followed by 2 digits | error |
| v8890_m | LEI must be 18 alphanumerics followed by 2 digits | error |
| v8891_m | LEI must be 18 alphanumerics followed by 2 digits | error |
| v8892_m | LEI must be 18 alphanumerics followed by 2 digits | error |
| v22912_m | A subsequent or associated arrangement must name its overarching arrangement | error |
| v22913_s | Total assets cannot be negative | error |
| v23716_s | Annual expense or estimated cost cannot be negative | error |
| v8803_m | Currency is required when total assets are reported | error |
| v8804_m | Total assets are required for financial entities | error |
| v8825_m | Reason for substitutability is required when the provider is not substitutable | error |
| mandatory | Mandatory value missing | error |
| VR_LEI | LEI is not an issued LEI in the GLEIF database | error |
| VR_EUID | EUID does not follow the EUID pattern | error |
Roifile pre-submission checks
| RF_001 | LEI checksum is wrong (ISO 17442) | warning |
| RF_002 | Placeholder or dummy value | warning |
| RF_003 | Date is after the reference date | warning |
| RF_004 | Dates are in the wrong order | warning |
| RF_005 | Zip root folder name differs from the zip filename | warning |
| RF_006 | UTF-8 byte-order mark present (accepted by the ESAs, rejected by some portals) | info |
| RF_007 | Register maintainer should be one row and should appear in B_01.02 | warning |
| RF_008 | Enumeration code missing its eba_ prefix or written as a label | warning |
| RF_009 | Unexpected file in the package | warning |
| RF_010 | Template declared but file missing or empty (allowed: means nothing to report) | info |
| RF_011 | Entity in B_01.02 has no contractual arrangement, function or provider linked to it | warning |
| RF_012 | Parent LEI points at the entity itself | warning |
| RF_013 | Taxonomy version in report.json is not the one expected for this reference date | warning |
| RF_014 | Monetary value looks like it is in thousands or has a decimals suffix | warning |