Regixo docs
For the compliance team·Step 5 of 6 — The DORA register·see the whole journey ↗

Fill the DORA register — the register of information

If you’re a regulated financial entity, DORA requires a Register of Information about your ICT third-party providers and the contracts behind them — 15 fixed tables. Regixo drafts the two tables it can trace from your data map and marks the rest — contract and vendor facts a scanner can’t know — as yours to supply. This page walks you through the whole register table by table, decision by decision, so you finish with a register your engineer can seal and file.

Land here from: Fill the RoPA (the GDPR record’s legal calls are done). DORA applies only to regulated financial entities; if that is not you, skip to Unlock, sign & maintain.

Optional · EU compliance module You need this only if your company must keep a GDPR Article 30 RoPA or a DORA register — it is an optional module on top of the free data catalog. If that is not you, you can skip this section.

Walk one provider all the way through (the worked example)

Before the reference, take one provider end to end so the loop is concrete. Regixo traced a Stripe integration from your data map and seeded it as a candidate in table B_05.01. Here is Stripe through every step:

StepWhat Regixo showsHow you decide, and what you do
1 · Scope onThe register exists because dora: true is set.Nothing to do — you turned scope on when you scanned. If the register isn’t there, see step 1 below.
2 · Read itStripe appears in B_05.01 (candidate provider) and B_07.01 (a service to assess), both badged partly auto. Its legal name is auto; the country cell carries an honest hint (“hosts in IE — hosting region, not headquarters”), not an answer.Read what the map filled. It saw the integration; it did not see the contract, the LEI, or where Stripe is headquartered.
3 · Rule scopeIts in-scope flag is candidate.Ask: is Stripe an ICT third-party service to us, or a financial service? (§ decision walk below). A payment platform you depend on operationally is an ICT service → your approver rules it confirmed. (If you treat it purely as a regulated payment service, you’d exclude it with a one-line ground.)
4 · Fill the cellsidentifier, codeType, country, currency, annual expense are needs you. The contract (B_02.01/B_02.02) is empty.Add Stripe’s LEI (look it up on GLEIF), set country to its headquarters (IE), and import the contract row. Fill what you know; leave what you don’t as a flagged gap.
5 · CriticalityStripe supports a business function — e.g. “Take and record payments” in B_06.01.Rule that function’s criticality: taking payments is a critical or important function → your approver marks it Yes. That is what makes Stripe’s assessment matter.
6 · DoneNo scope ruling left open for Stripe; its function ruled; its cells filled or flagged.Move to the next provider. When no scope rulings are open and every applicable table is filled, hand the register back to the engineer to seal.

Every provider and every contract is that same loop. The reference below is what you use inside steps 3, 4 and 5 to make each call with confidence.

The two rulings only an approver makes Regixo never rules a provider in or out of DORA scope, and never marks a function critical, on its own. Whether a provider is an “ICT third party” (Art. 3(21)) and whether a function is “critical or important” are legal/operational judgments — in the portal only an approver or admin can make them; a preparer sees the gap but cannot fill it, and the downloadable CSV template omits both. Regixo traces candidates and shows the gaps; a named person rules.

Step 1 · Confirm DORA scope is on

The register only exists when your configuration declares you a financial entity. Declare it when you scan (or turn it on later):

say

“Set Regixo up in this project with DORA scope on — we are a regulated financial firm.”

Show the commandHide the commandShow the sentenceHide the sentence
run
$ regixo start --dora

This sets dora: true in regixo.yml and drafts the register alongside the RoPA. It is the engineer’s one-time setup — you don’t run it. To check it’s on, the register is present on the portal’s DORA tab and regixo dora status (next step) returns the 15 tables. Re-draft any time with regixo report --dora, which writes the register beside your other records as DORA_DRAFT.json and the readable DORA_DRAFT.html.

Not a regulated financial firm? Turn it off Only regulated financial entities must keep this register. If DORA doesn’t apply to you, the free portal’s DORA page carries a Not regulated? Turn it off control (it sets dora: false), and you skip straight to signing the RoPA. Turning it off deletes nothing you’ve entered.

Step 2 · See which tables auto-filled and which need you

Read the register once before you fill anything. From the terminal, regixo dora status is the whole picture — what’s filled, what still needs you, and which scope rulings are open:

say

“Show me what Regixo’s DORA register still needs from us.”

Show the commandHide the commandShow the sentenceHide the sentence
run
$ regixo dora status
example output — a freshly-drafted register
DORA register — 15 tables (Reg. (EU) 2024/2956):
  0 complete · 2 partly auto-filled · 13 need you entirely
  entries: 10 filled in for you + 0 you added · 75 still need you
  columns: all 100 principal regulation columns are modelled.
Tables still needing input (15):
  B_01.01  Entity maintaining the register of information  [needs-you]
  …
  B_05.01  ICT third-party service providers  [partial]
  …
  B_07.01  Assessment of the ICT services  [partial]
  B_99.01  Definitions from entities making use of the ICT services  [needs-you]
Scope rulings open (2): is each B_05.01 provider in DORA scope? — snowflake-dwh, stripe.
Fill them:  regixo dora import <tableCode> <file.csv>   ·   regixo dora set <tableCode> <rowKey> <field> <value>
Export (paid):  regixo dora export   →  validates the register against Reg. (EU) 2024/2956 and writes the xBRL-CSV files. The EBA submission package is not available yet.

Out of the box, exactly two tables are partly auto from your map — B_05.01 (candidate ICT providers) and B_07.01 (the same services, to assess). The other thirteen are needs you: they hold contract, entity, function and definition facts a scanner cannot see. This is honest — the map fills about two of fifteen tables, never “DORA done”.

The 15 tables, in four plain-English groups

The register groups into four parts — A · Your company, B · Your contracts, C · Your IT suppliers, D · Your functions — the same grouping the portal’s DORA page uses. Here is every table, its exact name, and who fills it:

Group · CodeWhat it holdsFill
A · B_01.01Entity maintaining the register of information (your org: name, LEI, country, entity type, competent authority, reporting date)needs you (org profile)
A · B_01.02List of entities within the scope of consolidationneeds you
A · B_01.03List of branchesneeds you
B · B_02.01Contractual arrangements – general information (reference, type, annual cost)needs you
B · B_02.02Contractual arrangements – specific information (dates, notice, governing law, data locations)needs you
B · B_02.03List of intra-group contractual arrangementsneeds you
B · B_03.01Entities signing the contractual arrangements (receiving ICT services)needs you
B · B_03.02ICT third-party providers signing the contractual arrangements (providing ICT services)needs you
B · B_03.03Entities signing to provide ICT services to other entities in scopeneeds you
B · B_04.01Entities making use of the ICT services (one row per arrangement × using entity)needs you
C · B_05.01ICT third-party service providers — legal name, service, country, LEIpartly auto · name from the map; LEI + country + scope ruling need you
C · B_05.02ICT service supply chains (subcontractors)needs you
D · B_06.01Functions identification (function, criticality, RTO/RPO, discontinuation impact)needs you
D · B_07.01Assessment of the ICT services (provider + service auto; every assessment answer is yours)partly auto
D · B_99.01Definitions from entities making use of the ICT services — your firm’s own methodology definitions (e.g. how you scale data sensitiveness)needs you

B_99.01 is not auto-filled. It holds your firm’s definitions behind the closed-set answers — never regulation paraphrases filed as your content — so it starts needs you like the rest of the human tables.

The engineer sees this same register on the free portal before it is ever forwarded. It ends on a Two ways forward annex — your compliance team fills the gaps in the handed-over record, or the engineer imports what the company already holds with regixo dora import. Signed out, reading needs no account: a cell you would fill reads sign in to fill, a call only an approver may make reads sign in to rule, and an empty table reads No rows yet — sign in to add.

a close-up — the DORA register, signed out: the draft note (with the ESA 6.5% pass-rate), group A, and the first table Regixo part-fills
Your DORA register (draft)

This is your DORA Register of Information, forwarded with the record — the free DRAFT. Turning it into the checked, sealed xBRL-CSV (the €12,000 plan) is done on your engineer's own Regixo, not on this forwarded record. The split: you fill the cells and rule the scope calls here; they run the export and send you the finished package.

Why draft from your real systems: in the European Supervisory Authorities’ DORA dry-run exercise, only about 6.5% of manually-built registers passed all 116 validation checks.

A

Your company

2 / 3 started
B_01.01

Who keeps this register · Entity maintaining the register of information

partly auto

Add your organisation’s registered name, LEI, country, entity type, competent authority and reporting date (org profile).

LEIEntity nameCountryEntity typeAuthorityReporting date
5493001KJTIIGC8Y1R12 providedAurelia Payments Oy providedFI providedsign in to fillsign in to fillsign in to fill

Step 3 · Rule each provider in or out of scope — the decision walk

Whether a provider is an “ICT third-party service provider” under DORA (Art. 3(21)) is a legal judgment, so the B_05.01 rows Regixo seeds from your map begin as candidates. You rule on each one. Ask these questions in order:

Ask…If…Then
1. Does it provide an ICT service to you — software, hosting, cloud, data, connectivity, security — as opposed to something non-digital?No (e.g. an office cleaner, a law firm)Not in scope. Exclude it with a one-line ground.
2. Is it a third party — not your own in-house system running on your own infrastructure?No (your own self-hosted database)Not a third-party ICT service. Exclude with the ground “in-house”.
3. Is the service really a financial service from a regulated provider, rather than ICT? (EC Q&A DORA030 — a payment service from a regulated payment provider can be a financial service, not ICT.)Yes, you treat it purely as a financial serviceYour call — you may exclude it (with the ground), or rule it in if you depend on it as an ICT service.
4. Otherwise — a genuine third-party ICT service you rely on (Stripe’s platform, a managed warehouse, a SaaS).YesConfirm it in scope.

Rule each row from the terminal (in the portal, the approver presses confirm or exclude on the row):

run
$ regixo dora set B_05.01 <rowKey> inScope confirmed
$ regixo dora set B_05.01 <rowKey> inScope excluded --because "a database we host on our own servers, not a third-party ICT service"

This one’s yours. Only a person rules DORA scope.

A managed warehouse is a third party — don’t exclude it as “in-house” Snowflake, BigQuery, or any warehouse or service run for you by another company is an ICT third-party provider — confirm it IN scope. “In-house” means only a system you host on your own infrastructure. So a managed snowflake-dwh is in scope; only a database on your own servers is the “in-house” exclusion.
example output
Set B_05.01 · stripe · inScope = "confirmed".  See: regixo dora status
Set B_05.01 · snowflake-dwh · inScope = "confirmed" (a managed warehouse is a third-party service).  See: regixo dora status
Every exclusion leaves a trace An excluded ruling needs a recorded one-line ground (ESAs FAQ Q69) — the row stays on record even though it isn’t filed, so nothing vanishes silently. Exclude without a reason and Regixo refuses:
example output — an exclusion with no ground is refused
The DORA input could not be applied. (excluding a provider from DORA scope needs a recorded
ground — the ruling stays on record even though the row is not filed (ESAs FAQ Q69). Re-run with:
regixo dora set B_05.01 <rowKey> inScope excluded --because "<one line: why it is not in DORA scope>")
  (reference code: DORA_INPUT_INVALID)

A candidate you haven’t ruled on is flagged in regixo dora status (“Scope rulings open”) and again at export — you can still forward and seal with candidates open; they’re listed, never hidden. Excluded rows are left out of the filing.

Step 4 · Fill each table — inline or by CSV import

Three surfaces fill the register — pick whichever fits the row:

▤ In the portal

On the claimed register, each needs you cell is an inline add… box with a Save — fill it and it saves as provided by you. Contract and function tables carry + Add a row. For many rows at once, work in Excel: Download the template (CSV), fill it, then Upload & preview — the preview (Check these rows before they save · Nothing is saved yet) lets you check each row before you press Apply N rows. A tour: the compliance portal tour.

⌨ Say it, or run it
say

“Import our supplier contracts from contracts.csv into the Regixo DORA register.”

Show the commandHide the commandShow the sentenceHide the sentence
run
$ regixo dora import B_02.01 contracts.csv

Import a CSV per table, or set one cell with regixo dora set <tableCode> <rowKey> <field> <value>. regixo pull <claim-token> brings the compliance team’s claim-side fills back into your local register (a confirmed field stays confirmed — never fabricated).

✦ A connected assistant

A different surface. An assistant registered against the read-only regixo mcp server reads the DORA DRAFT register (get_dora) — the ICT providers, and which tables still need you. Neither agent surface rules a cell in or out of scope: no read tool exists to do it, and no sentence is offered for the command that does.

example output — a two-row contracts import
Imported 2 rows into B_02.01 (row key = ref; the same key updates its row in place). See: regixo dora status

Here is the portal register surface itself — B_05.01 mid-fill. The cells Regixo filled carry quiet auto markers, and a cell a person filled says who — you for this machine, team for an answer your compliance team gave on the claim page, with the name and date in its tooltip. (Not sure what a mark means? The register carries a key — What do the marks mean? above the tables.) The details a scanner can’t see are inline add… boxes; the in/out-of-scope ruling is approver-only:

what you'll see — the DORA register · B_05.01, one provider row open for filling (a static picture, not a live app)
Regixo compliance portal · EU-hosted
B_05.01

Your IT third-party providers · ICT third-party service providers

partly auto

2 candidate ICT third-party providers auto-identified from your sources (legal name, service type); the identification code and headquarters country are yours to add — the map sees hosting regions, not headquarters. Whether each provider counts as an ICT service under DORA is yours to confirm — a payment service from a regulated provider may be a financial, not an ICT, service (EC Q&A DORA030). Your approver rules each provider in or out of scope on its row here.

Legal nameProvider codeService typeFieldsIn DORA scope?
Snowflake DWHautoneeds youS19 — Cloud services: SaaSauto2 filled · 11 openconfirmed
Provider code
Find it: GLEIF search ↗ — the public register of legal-entity identifiers. Entering an EUID or another code? Fill in the type of code as well.
Code type
Extra code
Fill as many boxes as you like, then save once.

An upload never saves straight away — it lands on a preview so you can check each row before you commit it:

what you'll see — Check these rows before they save (CSV preview)
Regixo compliance portal · EU-hosted
DK dana@acme.eu

← back to your DORA register

Check these rows before they save

3 rows from your file ready to save to Contractual arrangements — general information B_02.01. Nothing is saved yet — rows save when you apply them, each cell marked "provided".

Row referenceContract referenceTypeProviderWhat happens
CTR-2026-001CTR-2026-001standalone arrangementAcme Cloud GmbHAdds a new row
CTR-2026-002CTR-2026-002standalone arrangementStripe Payments EuropeAdds a new row
CTR-2026-003CTR-2026-003overarching (master) contractual arrangementAcme Cloud GmbHUpdates row CTR-2026-003

Where the answer is a fixed list

Many cells take only a value from a fixed list the regulation defines — the contract types, the S01–S19 service taxonomy, the Yes/No and Low/Medium/High scales. Enter the code or the exact label; Regixo stores the canonical form and rejects anything else, in a CSV or a single set. regixo dora options <tableCode> <field> lists a column’s allowed values:

example output — regixo dora options B_07.01 service (the Annex III taxonomy)
B_07.01 · service — 19 allowed values. Enter the code or the exact label; Regixo stores the canonical form:
  S01                      ICT project management
  S02                      ICT development
  …
  S17                      Cloud services: IaaS
  S18                      Cloud services: PaaS
  S19                      Cloud services: SaaS

Which S-code? Pick the one that names the service you actually buy — a SaaS product (Stripe, Snowflake, a cloud app) is S19 Cloud services: SaaS; raw compute is S08; non-cloud hosting is S07. Regixo already guesses S19 for an unambiguous cloud SaaS and leaves the rest for you. A value outside the list is a named row error that points you back at regixo dora options.

example output — a CSV row with a value outside the list is rejected, not half-saved
Imported 0 rows into B_02.01 (row key = ref; the same key updates its row in place). See: regixo dora status
REJECTED 1 row — value outside a closed option set (fix the file and re-import):
  row 2  type="perpetual"  (options: standalone arrangement · overarching (master) contractual arrangement · subsequent or associated arrangement)
  List a column’s allowed values:  regixo dora options B_02.01 <field>

LEIs

An LEI (Legal Entity Identifier) is 18 alphanumeric characters plus 2 check digits (ISO 17442). When you enter one on the portal or import a CSV, Regixo checks the checksum (mod-97-10), so a plausible-looking but invalid code — including all-zeros — is rejected with a clear message. Look providers up on the GLEIF register if you don’t have theirs. A provider with no LEI isn’t a dead end: the register carries other identification-code types (EUID, CRN, VAT…) — set codeType to the scheme you have and put its value in identifier.

Contract tables take whole rows, not single cells

The contract tables key each row by a composite of columns (a B_02.02 row is keyed by contract · using-entity LEI · service type, one row per value). regixo dora set only fills a cell of an existing row there — rows are created by import (or the portal’s + Add a row), which derive the key. Try to set a cell on a table with no rows yet and Regixo tells you exactly how to add them:

example output
The DORA input could not be applied. (B_02.02 has no rows yet — its rows are keyed
ref·userLei·serviceType and are added by import: regixo dora import B_02.02 <file.csv>)
  (reference code: DORA_INPUT_INVALID)

However you fill it: CSV headers match either the column ids or the human column labels (case-insensitive); the first cell of each row is the row key; unknown columns are surfaced back to you, never silently dropped; and re-importing the same key updates that row in place instead of duplicating it.

Step 5 · Rule each function’s criticality — the decision walk

DORA scopes the heaviest requirements to the ICT services that support a “critical or important function”. Identifying your business functions (B_06.01) and rating each one’s criticality is yours to do — a scanner can’t know it. Like the scope ruling, criticality is an approver judgment: in the portal a preparer sees the gap but only an approver fills it, and the downloadable CSV template omits the column. To decide whether a function is critical or important, ask:

Any clear “yes” points to critical or important. The field is a fixed set — record the reasons alongside it:

example output — regixo dora options B_06.01 criticality
B_06.01 · criticality — 3 allowed values. Enter the code or the exact label; Regixo stores the canonical form:
  yes                      Yes
  no                       No
  not-performed            Assessment not performed

Rule it from the terminal (or, in the portal, the approver picks it on the row):

run
$ regixo dora set B_06.01 <functionId> criticality Yes

This one’s yours. Only a person rules criticality.

How complete the package is — honestly

The DRAFT register models the full principal column set of every template — regixo dora status reports “columns: all 100 principal regulation columns are modelled.” Every export still carries a structural coverage report, so you (and your authority) are never told the package is more complete than it is. Where the field precision goes beyond what Regixo models, the export lists exactly which columns it carries and which it doesn’t.

Who produces the filing — you or the engineer

The claim you review is read-only for the sealed output. You fill and confirm the register on it, but the checked, sealed xBRL-CSV package is never built on the forwarded claim. It is produced on the engineer’s own Regixo — the machine that holds the source data and the licence key. The split is deliberate, the same as signing the RoPA, and it makes the roles clear:

Both regixo dora export and the licence activation are person-run on the engineer’s machine — there is no “export” button on the forwarded claim, by design. The licence key reaches the engineer from your unlock receipt — see Unlock, sign & maintain.

The submission package

When the register is filled and signed, regixo dora export builds the EBA report package: a META-INF/ manifest, a reports/ folder with the report descriptor, a parameters.csv and a FilingIndicators.csv, one DPM-coded CSV per template (needs-you cells written empty), and a README that states the filing boundary — plus the seal. It lands beside your other artifacts as DORA_OFFICIAL.xbrl-csv.zip.

The four filing parameters

A package has to say which filing it is. Those four facts are declarations about your firm, so Regixo never guesses them — they go in regixo.yml, where the dora key takes an object instead of true. Using the object form still means scope on: only a filer sets filing parameters.

regixo.yml — the object form of the dora key
dora:
  refPeriod: "2025-12-31"   # the reporting reference date (ISO YYYY-MM-DD)
  baseCurrency: EUR         # ISO 4217
  nca: fi-fiva              # your authority's id in Regixo's NCA matrix (optional)
  consolidated: true        # filing at group level — the default is individual

Nothing here is ever prompted for. refPeriod and baseCurrency are required: either one missing at export time surfaces as EBA_FILING_PARAM_MISSING, naming the exact key to add, so an agent can fix it without a human in the loop. nca is optional. consolidated is what marks the package CON rather than IND — it is declared, never inferred from the register.

What the regulator accepts

DORA filings are made as a structured xBRL-CSV package — the machine-readable form the European Supervisory Authorities and your national authority ingest, not a PDF or a spreadsheet. What makes a package acceptable is that it validates: the EBA dry-run runs 116 checks over the register — LEIs that resolve and pass their checksum, contract types and the S01–S19 service taxonomy drawn from the fixed code lists, every cross-reference between tables resolving, and mandatory cells present. Regixo’s job is to hand over a validated pre-submission package that clears those checks before it reaches the regulator; the authority runs its own validation again at submission time.

Why draft from your real systems at all: in the European Supervisory Authorities’ DORA dry-run exercise, only about 6.5% of manually-built registers passed all 116 validation checks.

Straight about the official export The DRAFT register is fully usable today — draft it, fill it, import CSVs, rule scope, forward it. The sealed official submission package is not yet shippable: the EBA taxonomy and DPM code-map constants ship empty pending the vendor’s verification and one validation run, so regixo dora export deliberately refuses until then. The stable coded error is DORA_NOT_SUBMITTABLE; it names EBA_TAXONOMY_UNVERIFIED as the gate in its detail. The official DORA export also requires the €12,000 (RoPA + DORA) or enterprise plan.
Before you file Three things always remain yours: your authority sets the submission channel; the EBA’s and your national rules run at submission time; and any open items are carried empty and flagged. Regixo assembles and seals the package — it doesn’t submit it for you, and it isn’t your regulator.

Step 6 · How you know the register is finished

Run the loop until all of these are true, then hand it back to the engineer:

You don’t have to fill DORA before forwarding — you can forward the record now with regixo invite and your compliance team finishes the register on the portal. When it’s done, the engineer pulls your answers home (regixo pull) and produces the sealed file. The register stays DRAFT until it is sealed — which is the next step.

REGIXO — documentation · the DRAFT register is free and usable; the sealed filing package is a later gate · Glossary