Skip to content
eurcor

FOR SUBMITTERS

Submit an ownership structure

A step-by-step guide to preparing, packaging, and submitting a verified ownership and control structure to the Eurcor registry in the OFN format — from data model to bundle to the verification queue.


What's live vs. planned

Live today: requesting API access, the OFN data model, public search, the @eurcor/pack packaging library, and programmatic submission. Planned (not yet available): the eurcor command-line tool. Steps that rely on planned tooling are marked below.

Who must submit, and what a submission contains

Submissions are lodged by the party responsible for a company's beneficial-ownership information — typically the or an authorised representative acting on its behalf. You describe the and the chain of ownership and control that sits above it.

Every OFN submission is built from four parts: the subject entity; its ownership and control structure (the subjects and relationships that lead to the natural-person ); the supporting proof documents; and submission metadata, including a content hash for each document.

Request API access

Submitting is credentialed. Before you can lodge a structure you request access on the Request API access page, where you provide your organisation details and receive the credentials the tooling will use. This step is available today.

Build your submission data to the OFN model

Map your ownership situation onto the OFN model: the subject entity, the subjects above it (people, companies, trusts, public bodies), and the relationships that connect them — direct or indirect, share-based or control-based. Each claim carries three credibility signals: scope, documentary support, and how current it is. See The OFN standard for the full model.

json
{
  "subject": { "id": "cz/ico/45274649", "type": "pravnicka_osoba", "name": "Acme s.r.o." },
  "owners": [
    {
      "person": "Jan Novák",
      "role": "skutecny_majitel",
      "share": 0.62,
      "path": "direct",
      "credibility": { "scope": "full", "documentary": "high", "temporal": "2026-03" }
    }
  ]
}

Package a submission into a .core bundle with @eurcor/pack

A .core bundle is a gzipped tar carrying your signed resolution and the documents it references. Hash the documents first, then sign, then pack: the digests live inside the signed body, so your signature covers the document content and not just its metadata. The registry rehashes every document on arrival and refuses the bundle if one does not match.

shell
$ deno add jsr:@eurcor/pack

import { hashDocuments, pack } from "@eurcor/pack";

const body = await hashDocuments(submission, documents); // SHA-256 each document
const bundle = await pack(sign(body), documents);        // → acme.core
await Deno.writeFile("acme.core", bundle);

Authenticate and submit with the eurcor CLI

Sign in once with your credentials, then push the bundle to the registry from the terminal. The command-line tool is planned and not yet released.

$ npm i -g eurcor-cli
$ eurcor login
  ✓ signed in as acme-compliance@example.com
$ eurcor submit acme.core
  → submission smt_8f3a… queued for verification

What happens next: the verification lifecycle

After upload, a submission is lodged for verification and ends accepted or rejected. A verifier checks completeness, cross-checks sources, and reviews your proof documents; recording a credibility rating on acceptance is planned. A rejected submission comes back with the reasons so you can amend and resubmit. Once accepted, the structure appears in public search. See Verification for the full workflow.