Entity pillar · v0.8.1
entity Entity
Company profile aligned with schema.org Organization and GLEIF LEI reference data.
$id · https://corpospec.com/schemas/v0.8.1/entity.schema.json
Fields
| Field | Type | Required | Description |
|---|---|---|---|
| functional_currency | IsoCurrency | yes | Functional (reporting) currency of the entity. ISO 4217. Canonical default for any monetary value elsewhere in the corpus that does not carry its own currency declaration. |
| id | PathRef | yes | PathRef identifier for this entity within the corpus, e.g. `entity/unstarter-gmbh`. Must be unique across the repository. |
| jurisdiction | IsoCountry | yes | ISO 3166-1 alpha-2 country code of the jurisdiction under whose laws the entity is incorporated. |
| legal_name | string | yes | Full legal name as it appears in the commercial register (Handelsregister / Companies House / State filing), including the legal-form suffix (e.g. "Unstarter GmbH", "Beevelop UG (haftungsbeschränkt)", "Acme Corp, Inc."). |
| status | StatusActive | yes | Operational status of the entity (active / pre-incorporation / dissolved / ...). See `StatusActive` for the full enum. |
| type | EntityType | yes | Legal form category — the kind of legal vehicle this entity is (corporation, LLC, partnership, etc.). Used for schema.org Organization subtyping and downstream reporting. |
| address | PostalAddress? | — | Primary operating address. May differ from `registered_seat` when the entity operates from a different location than its legal seat. Structured per schema.org PostalAddress. |
| company_purpose | string? | — | Corporate purpose (Unternehmensgegenstand) — statutory object clause describing what the entity does. For German GmbH/UG this is the `Gegenstand des Unternehmens` recorded in the notary deed and Handelsregister; for US corporations it mirrors the certificate of incorporation's purpose clause. Free-form prose. |
| contact | Contact? | — | Public contact endpoint (email / phone) for external parties. |
| custom | EntityCustom? | — | Jurisdiction-specific and entity-specific extension fields that do not fit the canonical schema. Kept as a strongly typed union rather than `serde_json::Value` so report generators can consume these fields without dynamic parsing. |
| date_of_incorporation | IsoDate? | — | ISO 8601 date on which the entity was legally formed. For German GmbH/UG this is the Handelsregister entry date, not the notary deed date. Optional to accommodate entities in formation; once incorporation completes, this field should be populated and the corresponding `target_incorporation` targets become historical. |
| founders | PathRef[] | — | PathRefs into `people/**` for the founder(s) of the entity. Authoritative founder attribution lives on the person records; this list provides the reverse index. |
| legal_form | string? | — | Free-form legal-form designation as registered locally (e.g. "GmbH (Gesellschaft mit beschränkter Haftung)", "UG (haftungsbeschränkt)", "C-Corp", "LLC"). Complements the coarse-grained `entity_type` enum with the precise local label used in official documents. |
| lei | Lei? | — | Legal Entity Identifier (ISO 17442) — 20-character alphanumeric code issued by a GLEIF-accredited LOU. Required for entities subject to financial-market reporting (EMIR, MiFID II, Dodd- Frank); optional otherwise. |
| number_of_employees | EmployeeCount? | — | Current employee headcount with the date the snapshot was taken. |
| parent_organization | PathRef? | — | PathRef of the parent organisation, when this entity is a wholly or majority owned subsidiary. For minority investments use the relevant equity / cap-table pillar instead. |
| registered_seat | string? | — | Registered seat (Sitz der Gesellschaft) — the city or municipality recorded in the commercial register as the entity's legal seat, e.g. "Berlin", "Dobel, Germany". Free-form by design: the seat is often just a municipality name, not a full postal address, and can diverge from the operating address (`address`). For the structured operating address use `address` instead. |
| registration_authority | string? | — | Name of the authority that maintains the registration (e.g. "Amtsgericht Stuttgart", "Delaware Division of Corporations", "Companies House"). Paired with `registration_number` to locate the authoritative public record. |
| registration_number | string? | — | Identifier assigned by the registration authority — e.g. German Handelsregister `HRB 765497`, Delaware file number `7891234`, UK Companies House number `12345678`. Include the prefix where it is part of the canonical identifier (e.g. `HRB`). |
| subsidiaries | PathRef[] | — | PathRefs of subsidiary entities. Mirrors each subsidiary's `parent_organization` — both sides of the relation should be kept in sync. |
| tax_ids | TaxId[] | — | Tax identification numbers issued by various authorities, each typed (`Steuernummer`, `USt-IdNr`, `EIN`, `DUNS`, etc.) and optionally scoped to a country. |
| trade_name | string? | — | Operating / trade name used for branding and marketing, without the legal-form suffix (e.g. "Unstarter", "Acme"). Omit when the trade name equals the legal name. |
| url | string? | — | Primary public website of the entity (absolute URL). |
Definitions
Shared types referenced within this schema.
AccidentInsurance
Accident insurance registration (VBG).
type: object
BankingInfo
Banking information — primary operating bank account of the entity.
Treated as sensitive data; exclude from publicly rendered reports unless
the entity has chosen to disclose it (typical for the Imprint / Handels-
register extract). An entity with multiple accounts should list the
authoritative operating account here.
type: object
CapitalFlow
Capital flow between entities — narrative description of where equity or
working capital originates and how it is deployed across the group
structure. Intended for human-readable disclosure (investor decks, tax
filings, due diligence), not for machine reconciliation. For
machine-reconcilable money movement, use the relevant finance pillar.
type: object
Contact
Contact information.
type: object
EmployeeCount
Employee count snapshot.
type: object
EntityCustom
Typed extension fields for Entity.
Union of all jurisdiction-specific fields observed in .corpospec/ YAML data.
type: object
EntityType
Entity type discriminator.
enum: "corporation", "llc", "partnership", "sole-proprietorship", "non-profit", "cooperative", "trust", "foundation", "lp", "llp", "joint-venture", "association", "reit", "pbc"
IncorporationTimeline
Incorporation timeline targets — planned milestones for bringing a
pre-incorporation entity to fully-registered and funding-ready status.
All dates are ISO 8601 (`YYYY-MM-DD`) and represent targets, not
confirmations. Move a target into the main `Entity` record (e.g.
`date_of_incorporation`) once the milestone is achieved.
type: object
IsoCountry
ISO 3166-1 alpha-2 country code.
pattern: ^[A-Z]{2}$
IsoCurrency
ISO 4217 currency code.
pattern: ^[A-Z]{3}$
IsoDate
ISO 8601 date (YYYY-MM-DD).
type: string
LaborRegistration
Labor registration details (German Betriebsnummer) — identifiers issued
by the Bundesagentur für Arbeit when an entity first employs staff
subject to social-insurance contributions.
type: object
Lei
ISO 17442 Legal Entity Identifier (20-character alphanumeric).
pattern: ^[A-Z0-9]{18}[0-9]{2}$
PathRef
Path-based cross-reference relative to .corpospec/ root.
Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
pattern: ^[a-z0-9_-]+(/[a-z0-9_.-]+)+$
PlannedSubsidiary
Planned subsidiary entity.
type: object
PostalAddress
Physical address aligned with schema.org PostalAddress.
type: object
ReorganizationPlan
Corporate reorganization plan.
type: object
StatusActive
Lifecycle status for entities.
enum: "active", "inactive", "dissolved", "pre-incorporation", "planned"
TaxId
Tax identification number with type discriminator.
type: object
TaxStructure
Tax structure configuration.
type: object
Reference in your YAML
# yaml-language-server: $schema=https://corpospec.com/schemas/v0.8.1/entity.schema.json