> ## Documentation Index
> Fetch the complete documentation index at: https://docs.topograph.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Stay updated with the latest changes and improvements to Topograph

<Update label="Week 31, 2026">
  ## Send a test notification for a monitor

  You no longer have to wait for a real change to validate a monitoring integration. Open a monitor in the dashboard and click **Send Test Notification**, or call the new endpoint:

  ```bash theme={null}
  curl -X POST https://api.topograph.co/v2/monitors/{monitorId}/test-notification \
    -H "x-api-key: YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{ "changeCategories": ["status"] }'
  ```

  The event is built exactly as a genuine change notification is, with your own `monitorId` and `metadata` and the real company, so it exercises workflows that route on the metadata you set at monitor creation. The sample payload in the webhooks portal carries neither. You can pick the change category, or send the deactivation variant to exercise your cleanup branch. Your monitor is not modified.

  Note that a test notification is deliberately indistinguishable from a real one, so what you test is what you get in production. If your pipeline opens a case for every notification, a test will open a real case. See [Company Monitoring](/essentials/monitoring#step-4-test-your-integration).
</Update>

<Update label="Week 30, 2026">
  ## One consistent rule for sole entrepreneurs and non-profits

  Sole entrepreneurs (entrepreneur individuel, ЕТ, ditta individuale, ΑΤΟΜΙΚΗ, ФОП, …) and non-profits now behave the same way in every country:

  * **`legalRepresentatives`** always returns the person behind a sole entrepreneur (with the identity fields the register publishes), and the officers/board for non-profits.
  * **`ultimateBeneficialOwners`** returns the sole entrepreneur as the beneficial owner at 100% direct ownership where the country exposes a UBO datapoint. This is the AML-correct answer to "who owns this business", even when the register requires no separate UBO declaration for these forms.
  * **`shareholders`** is never synthesized for entities that have no share capital. Instead of an empty array (or, in some countries, an invented 100% record), the datapoint now completes with a new machine-readable error code:

  ```json theme={null}
  {
    "status": "failed",
    "error": {
      "code": "datapoint_not_applicable",
      "message": "Sole entrepreneurs have no share capital, so no shareholder record exists. The owner is returned under legalRepresentatives and, where available, ultimateBeneficialOwners.",
      "retryable": false
    }
  }
  ```

  `datapoint_not_applicable` is a definitive, benign answer: don't retry it, and don't treat it as an outage. When `shareholders` is the only datapoint of its billing block in the request, the block is automatically refunded.

  If you previously relied on a fabricated 100% shareholder for Bulgarian ЕТ, Hungarian egyéni vállalkozó, Ukrainian ФОП, or Irish business names, read the owner from `legalRepresentatives` / `ultimateBeneficialOwners` instead. The rollout is per-country (Bulgaria, Greece, France, Italy, Hungary, Ukraine, and Ireland first); countries not yet converted may still return an empty array for these entity types.

  Full behavior matrix: [Sole Entrepreneurs & Non-Profits](/essentials/entity-types).

  ## Metadata on monitors

  `POST /v2/monitors` now accepts an optional `metadata` object: arbitrary key-value string pairs stored on the monitor and echoed back in monitor responses and in every `monitor.notification` webhook.

  ```json theme={null}
  {
    "companyId": "932884117",
    "countryCode": "FR",
    "metadata": { "caseId": "case-12345" }
  }
  ```

  Use it to map webhook notifications back to your internal records without keeping your own monitor-to-case mapping. Company requests already supported `metadata`; monitors now work the same way. See [Company Monitoring](/essentials/monitoring#step-1-create-a-monitor) for details.

  Alongside this, the `monitorId` in `monitor.notification` webhooks now matches the `id` returned by `POST /v2/monitors`. Previously it carried an internal identifier that did not correspond to any monitor id visible in the API, so it could not be used for correlation. If you stored past webhook `monitorId` values, re-key on the ids from `GET /v2/monitors`.

  ## Documents now name their issuing register

  Every document returned by `/v2/company` now carries a `source` object identifying the register it comes from, in the same format as the `dataSources` section:

  ```json theme={null}
  "tradeRegisterExtract": {
    "id": "1c932de4-4610-5506-b48d-4e62529d58e8",
    "name": "Extrait K-bis (certifié)",
    "source": {
      "type": "live_from_registry",
      "register": "infogreffe"
    }
  }
  ```

  The field appears on every entry in `availableDocuments` and on every downloaded document, across all countries. Use `source.register` to show the issuing authority to your users, or to tell registers apart in countries where documents come from more than one source.

  This is an additive change: no existing field moves. See [Document Retrieval](/essentials/document-guide#document-source) for details.
</Update>

<Update label="Week 29, 2026">
  ## Company history, filing by filing

  Two registers now expose their full change history as a document, joining the Netherlands, Italy, and France under `documents.tradeRegisterHistory`.

  * **Germany**: the Chronologischer Abdruck, the chronological register print listing every entry ever made against a company.
  * **Ukraine**: a certified extract from the state register, orderable like any other document.

  ## Czech shareholders

  Shareholders (společníci) are now returned for Czech companies. Add `shareholders` to your `dataPoints` on any `/v2/company` request, with ownership stakes as recorded in the Commercial Register.

  Coverage follows what the register publishes: limited liability companies (s.r.o.) list their members, while joint-stock companies (a.s.) do not publish a shareholder list and return an empty array.

  ## Hungarian annual accounts

  Annual financial statements for Hungarian companies are now available under `financialStatements`, sourced from the national filing portal.

  ## Beneficial ownership in three more jurisdictions

  `ultimateBeneficialOwners` now resolves for **Cyprus**, **Slovenia**, and **Portugal**. Each request returns the parsed owners list plus the official certificate from the local register as a `ubo_extract` document.

  These jurisdictions are fulfilled within one to three business days and carry a **Manual** badge on the pricing page.

  ## Every request now ends with a webhook

  The terminal `company.updated` webhook is now always delivered when a request reaches its final state. If you saw requests that looked stuck as pending because the closing webhook never arrived, that is fixed. Use it together with `request.version` (see week 26) to keep your own copy in step.
</Update>

<Update label="Week 28, 2026">
  ## Ownership graphs cross borders

  The `graph` datapoint now follows corporate shareholders into the country where they are incorporated, instead of stopping at the register boundary. A French company held by a German parent resolves that parent against the German register and keeps walking up the chain.

  Where a country has no shareholder coverage, exploration stops cleanly at that node, so the graph tells you where the trail genuinely ends.

  Ownership percentages are also reported only where the register states them. Holdings with no declared stake come back without a percentage rather than an even split across shareholders, so a number in the graph is always a number the register published.

  ## The ownership graph says why a node stopped

  Nodes that cannot be expanded now explain themselves, with a badge and a short reason such as an unknown country of incorporation or an identifier that could not be resolved. A branch that ends is now distinguishable from one that failed.
</Update>

<Update label="Week 27, 2026">
  ## Italy: Fascicolo Storico

  The Fascicolo Storico is now available on `/v2/company`. It records the history of share and quota transfers for an Italian company, filing by filing, which is what you need to reconstruct how ownership arrived at its current state.

  Request it the same way as any other document: ask for `availableDocuments`, then pass the returned `id` back in `documents: [...]`.

  ## Luxembourg: publications and filings

  Official publications and register filings for Luxembourg companies are now retrievable, covering the notices and deposited acts published for each entity.

  ## Portugal: publications

  Portuguese company publications are now served through a dedicated index, with both a fast and an authoritative mode for company data.

  ## France: several INPI accounts on one integration

  AML-obligated entities using their own INPI credentials for un-redacted UBO data can now register several accounts under a single configuration. Requests rotate across them, with automatic failover if one is unavailable, so a single account's rate limit no longer caps your throughput.
</Update>

<Update label="Week 26, 2026">
  ## Activity codes per establishment

  Establishments now carry their own activity codes, not just the parent company's. A retailer whose head office is classified under management activities and whose branches are classified under retail now shows each correctly. Available for France and Belgium.

  ## Germany: flexible register search

  `/v2/search` now accepts German register references the way people write them: abbreviated court codes, partial register numbers, and the court and number in either order. `HRB 12345 München` and `München HRB 12345` both find the same company.

  ## Webhooks: ordering guarantee

  Webhook payloads now carry `request.version`, an incrementing counter you can use to order snapshots. When two webhooks for the same request arrive out of order, compare `version` and keep the higher one. This complements the existing guidance to merge rather than replace on `company.updated`.

  ## Cleaner response shapes

  Three corrections to how optional data is represented, so strict consumers and generated clients behave predictably:

  * Person identifiers are documented as a flat object rather than an array.
  * Empty addresses are omitted entirely instead of returning an object of nulls.
  * Optional response fields are no longer marked required in the OpenAPI spec.

  ## Faster US responses

  Search and profile calls across a large set of US states are now several times quicker, with typical lookups landing in around two seconds.
</Update>

<Update label="Week 25, 2026">
  ## The United States, coast to coast

  Company data is now available for **all 50 US states and Washington DC**, each sourced directly from that state's Secretary of State or equivalent business register. Texas, announced in week 18, was the first of the set. The rest are now live.

  ### What you get

  Every state returns the company profile: legal name, status, formation date, registered address, registered agent, and entity type. Most states also return officers and directors as legal representatives, and a **Trade Register Extract** bundled with the company data at no extra charge.

  Where a state issues official certificates (Certificates of Good Standing, Certificates of Existence, status reports, certified copies), they are available as orderable documents.

  ### Fast and authoritative modes

  Most states offer both. Onboarding mode answers in seconds from state-published bulk data, which is what you want behind a signup form. Verification mode reads the live register for an authoritative answer. Pick per request with `mode`.

  ### Beta

  US states ship as **beta** while coverage settles. Each state page carries the label, and the `developmentStatus` field on the country catalog exposes it programmatically so you can treat beta jurisdictions differently in your own flows.

  Every state has its own page under [North America](/essentials/us-texas), listing accepted identifiers, available datapoints, and documents.

  ## New jurisdictions

  **Antigua and Barbuda** and the **Marshall Islands** are now available on `/v2/company` and `/v2/search`.

  ## Filing-compliance signals

  `company.complianceFlags` is a new field carrying signals the register reports about a company's filing standing. Two kinds ship first, both for the United Kingdom:

  ```json theme={null}
  "complianceFlags": {
    "accountsOverdue": { "active": true, "dueDate": "2024-09-30", "source": "companies_house" },
    "annualFilingOverdue": { "active": false }
  }
  ```

  Each kind carries `active` plus `dueDate`, `since`, and `source` where the register reports them. The shape is country-agnostic, so the same keys will be reused as more registers publish these signals. A flag is present only when its register reports it.

  ## Belgium: coordinated articles of association

  Belgian companies now return their coordinated statutes, the consolidated current text of the articles, under `documents.articlesOfAssociation`.

  ## Better ownership and profile data

  * **Denmark**: beneficial owners are now also returned where the register records control by role rather than by shareholding, so more Danish companies resolve to a named owner.
  * **Spain**: companies can be found by hoja registral, and it is returned in `company.identifiers`. `incorporationDate` is now the company's true constitution date, and a separate `registrationDate` carries the date it entered the register.
  * **Belgium**: sole traders and natural-person businesses now carry a `legalForm`, standardized as a sole proprietorship, instead of leaving the field empty.
  * **Malta**: `/v2/search` matches registration numbers written without a space, across every register prefix.
  * **China**: company data and shareholders are now separate blocks, so you can buy either on its own, and beneficial ownership is available.
  * **Cayman Islands**: a Director Details document is now orderable.

  ## Check your balance from the API

  `GET /v2/billing/balance` returns your account's current remaining credit. Poll it to surface a balance in your own dashboard, or to alert before a batch run drains the wallet. This pairs with the low-balance notifications and auto top-up already available in the app.

  ## Trials no longer switch themselves off

  Reaching the end of a trial no longer deactivates an account or blocks API calls. Your integration keeps working while commercial terms are settled.

  ## UBO certificates as orderable documents

  For **Croatia** and **Serbia**, the official beneficial-ownership certificate is now surfaced in `availableDocuments` as a `ubo_extract` you can order on its own, without requesting the parsed `ultimateBeneficialOwners` datapoint.
</Update>

<Update label="Week 24, 2026">
  ## German WZ 2025 activity codes

  German companies now return WZ 2025 codes alongside the existing WZ 2008 codes. WZ 2025 is the current edition of the German Klassifikation der Wirtschaftszweige (the national implementation of NACE Rev. 2.1).

  Both appear under `company.activities`:

  ```json theme={null}
  "activities": {
    "WZ2008": [{ "code": "62.01.9", "description": "Sonstige Softwareentwicklung", "isAIInferred": true }],
    "WZ2025": [{ "code": "62.10.3", "description": "Entwicklung und Programmierung von Anwendungssoftware", "isAIInferred": true }]
  }
  ```

  `WZ2008` is unchanged, so existing integrations keep working. `WZ2025` is up-converted from the WZ 2008 code using the official Destatis correspondence table. When a WZ 2008 code splits into several WZ 2025 codes, `WZ2025` contains all of them. As with NACE and ISIC, German activity codes are inferred from the company purpose and flagged `isAIInferred: true`.

  See [Germany](/essentials/germany) for the full reference.

  ## Poland: full board and shareholder names

  Polish board members and shareholders now come back with their complete names, resolved from the register's official extract rather than the abbreviated public listing.

  ## Finland: companies awaiting registration

  Finnish entities that exist with the tax authority but are not yet entered in the trade register are now returned, with a status that marks them as not yet registered. Useful when onboarding a business that has just been formed.
</Update>

<Update label="Week 23, 2026">
  ## Spanish foundations now available

  Spanish foundations are now covered on `/v2/company` and `/v2/search`. Foundations carry a NIF beginning with **G**, resolved through the Registro de Fundaciones (Ministerio de Justicia). You get the company profile, the governing board (patronato) as legal representatives, and a Foundation Register Extract under `documents.tradeRegisterExtract`.

  See [Spain](/essentials/spain) for the full reference.

  ## Italian articles of association (Statuto) available

  The Italian Statuto (articles of association) is now available on `/v2/company`, returned under the existing `documents.articlesOfAssociation` response key alongside France and the UK.

  The document is the company's constitutional text as filed at the Chamber of Commerce, with every amending protocol indexed inside the PDF.

  ```http theme={null}
  POST /v2/company
  {
    "countryCode": "IT",
    "id": "04046761203",
    "dataPoints": ["availableDocuments"]
  }
  ```

  The document appears as `documents.articlesOfAssociation` with `format: "pdf"` and an `id`. Pass that `id` back in `documents: [...]` to order the PDF. The response includes a signed `url` for download. Delivery time is in line with the other Italian documents.

  ## Bosnia and Herzegovina now available

  Company data for Bosnia and Herzegovina is now available on `/v2/company` and `/v2/search`.

  The integration covers the unified **Registar poslovnih subjekata BiH** — a single portal serving all three entities: Federation of BiH, Republika Srpska, and Brčko District.

  ### What's included

  * **Company profile**: legal name, trade name (abbreviation), registration number (MBS), unique identification number (JIB/IDU), address, legal form, company status, share capital, registered activities (KD BiH 2010 / NACE Rev. 2), incorporation date, and branch offices as establishments.
  * **Legal representatives**: directors, general directors, procurists, executive directors — with signatory mode (sole / joint) and authorisation details where registered.
  * **Other key persons**: board members (`član Uprave`), supervisory board chairs (`Predsjednik nadzornog odbora`).
  * **Shareholders**: founders of limited liability companies (d.o.o.), partnerships (k.d., d.n.o.), sole traders, associations, and foundations. Joint-stock companies (d.d.) list only a reference to the share register — no individual shareholders.
  * **Trade Register Extract**: full printed PDF covering all 8 register sections (basic data, founders, management, capital, activities, branch offices, foreign trade, notes).

  ### Identifiers

  Bosnia uses the **MBS** (Matični broj subjekta) as its primary identifier. The format varies by sub-register: `NN-01-XXXX-YY` for private companies in Federation BiH and Brčko, `NN-02-XXXX-YY` for joint-stock companies, and `N-XXXX` for Republika Srpska. Hyphens are part of the identifier. The JIB (13-digit tax ID) is returned in the response but cannot be used for lookups.

  See [Bosnia and Herzegovina](/essentials/bosnia-herzegovina) for the full identifier and data availability reference.

  ## Consistent identifier keys in `company.identifiers`

  Every company's registration numbers are now returned under consistent, local-language keys in `company.identifiers`, matching each country's own terminology. Most countries are unchanged. A few had a key renamed to follow the convention.

  For the countries below, both the old and new keys are returned together until 1 September 2026. After that date, only the new key is returned. Update any code that reads the old key before then.

  | Country | Old key          | New key              |
  | ------- | ---------------- | -------------------- |
  | Belgium | `Numéro BCE`     | `ondernemingsnummer` |
  | Spain   | `NIF`            | `nif`                |
  | Italy   | `Codice Fiscale` | `codiceFiscale`      |
  | Italy   | `CCIAA`          | `cciaa`              |
  | Italy   | `REA Code`       | `rea`                |
  | Austria | `EUID`           | `euid`               |

  The same canonical key now appears everywhere the number does: on the queried company, on related companies (officers, shareholders, subsidiaries), and in search match results. VAT is always returned under `VAT`.

  If you parse `company.identifiers` by key for Belgium, Spain, Italy, or Austria, switch to the new key before 1 September 2026. Each country's accepted identifiers are listed on its page.

  ## Portugal: two more documents

  Portuguese companies now offer an uncertified **Trade Register Extract** (a compilation of the company's register publications) alongside the existing certified extract, and **Annual Accounts** can be ordered on their own.

  ## Faster onboarding mode in more countries

  Onboarding mode, which answers in seconds and is what you want behind a signup form, now covers **Cyprus, Greece, Latvia, Monaco, Poland, Portugal, France, and Sweden**. Verification mode is unchanged and remains the authoritative path. Pick per request with `mode`.

  ## Moldova now available

  Company data for Moldova is available on `/v2/company` and `/v2/search`, covering the company profile, legal representatives, and shareholders, with activity codes mapped to NACE and ISIC.

  See [Moldova](/essentials/moldova) for the full reference.
</Update>

<Update label="Week 22, 2026">
  ## Activity codes now standardized to NACE Rev. 2.1 and ISIC Rev. 5

  Every company response now returns activity codes on the current international standards: **NACE Rev. 2.1** (the European classification in force since 2025) and **ISIC Rev. 5** (the global standard). Previously we returned the prior revisions (NACE Rev. 2 and ISIC Rev. 4).

  ### What changes

  * The `activities.NACE` array uses NACE Rev. 2.1 codes, and `activities.ISIC` uses ISIC Rev. 5 codes, for every country.
  * Where a register still publishes Rev. 2 codes, we upconvert them to Rev. 2.1 using the official Eurostat transition table.
  * A handful of Rev. 2 codes were split into several Rev. 2.1 classes (for example, holding companies moved from a single code to separate financial and non-financial holding codes). When a code splits, we return all of its Rev. 2.1 successors, so the correct class is always present.
  * The register's own local activity code (NAF, ATECO, ΚΑΔ, CAEN, SBI, and so on) is still returned under its own key, unchanged.
  * `activities.ISIC` and `activities.NACE` are now always returned together for every country: when a register publishes only one of the two, we derive the other from the official correspondence. The pair is absent only when the register exposes no activity data at all.

  ### What to check

  If you store or match on NACE or ISIC codes, review your mappings against NACE Rev. 2.1 and ISIC Rev. 5. Some four-digit codes were renumbered (for example, computer programming moved from `62.01` to `62.10`). See [Data Standardization](/guides/standardization) for how the mapping works.

  ## Italian Visura Camerale now ships in Italian, with the full register content

  The `certifiedTradeRegisterExtract` document for Italy is now delivered in Italian, with every section the Registro Imprese publishes. No request change, no price change, no delivery-time change.

  ### New content in the PDF

  * **Oggetto sociale** (corporate object): the full legal scope of the company, verbatim from the articles of association.
  * **Poteri di firma** (board powers): the structured signing powers per officer, including joint vs. several authority and delegation rules.
  * **ATECO classification**: the code is now explicitly labelled "ATECO" alongside the NACE mapping.
  * **Per-branch activity matrix**: primary and secondary ATECO codes for every registered branch.
  * **Statutory clauses**: withdrawal, exclusion, and pre-emption clauses flagged where present.
  * **Employee distribution**: quarterly breakdown by contract type, working hours, qualification, and municipality, on top of the headcount.
  * **Filing activity indicators**: filings in the last 12 months, share transfers, address transfers, holdings.
  * **Available document inventory**: the list of fiscal years for which financial statements are available, plus indicators for the company file (fascicolo), articles of association (statuto), and other registered acts.
  * **Quality and environmental certifications**: SOA qualification, ISO and other quality certificates, environmental rolls.

  ### How to request it

  The request is unchanged.

  ```http theme={null}
  POST /v2/company
  {
    "countryCode": "IT",
    "id": "01234567890",
    "dataPoints": ["availableDocuments"]
  }
  ```

  The document appears as `documents.certifiedTradeRegisterExtract` with `format: "pdf"` and an `id`. Pass that `id` back in `documents: [...]` to order the PDF. The response includes a signed `url` for download.

  The new content applies to companies (società di capitale, società di persone) and sole proprietorships. Sole proprietorships do not have a corporate object or board powers, so those sections are absent for that entity type. The ATECO labelling fix applies to every entity type.

  ## France: Historique des modifications

  France joins the Netherlands and Italy under `documents.tradeRegisterHistory`. The Historique des modifications lists every change filed against a French company since registration.

  ## Subsidiaries for France, Belgium, Germany, and the UK

  The `subsidiaries` datapoint, introduced for Italy in week 18, now answers for **France, Belgium, Germany, and the United Kingdom**, and can be requested on its own without buying a full company block.

  ## Latin-script names for Bulgaria and Greece

  `companyNameTransliterations` now also returns for **Bulgaria** and **Greece**, alongside Ukraine. Search matches Latin-script queries against Cyrillic and Greek company records, and the field lists the canonical Latin spellings.

  ## Pick documents by type, not by name

  Document entries for France, the UK, and Austria now carry a `documentSubType` drawn from that country's own filing taxonomy. Select on it instead of matching the free-text `name` field, which varies per filing and is not a stable key.
</Update>

<Update label="Week 21, 2026">
  ## Latin search for Ukrainian companies

  Ukrainian companies are registered in Cyrillic. You can now find them with a Latin-script query, and every Ukrainian company response carries a new `companyNameTransliterations` field with the canonical Latin spellings of its name.

  ### Search

  A search like `Naftogaz`, `Kyivstar`, or `Pryvatbank` now matches the Cyrillic-only company record. Both common romanisations work: the modern Ukrainian spelling (`Naftohaz`) and the legacy spelling (`Naftogaz`). Diacritic forms pasted from academic or EU sources match too.

  ### New response field

  `companyNameTransliterations` is a string array on both `/v2/search` results and `/v2/company` responses. It lists the deterministic Latin transliterations of the company's legal and commercial names, generated with three standards (modern Ukrainian, legacy, and the diacritic academic form), deduplicated. Use it to display alternative spellings or to match against your own records.

  ```http theme={null}
  POST /v2/company
  {
    "countryCode": "UA",
    "id": "00131305",
    "dataPoints": ["company"]
  }
  ```

  The field is present for Ukrainian companies and absent for Latin-script countries. It complements the existing `transliterate=true` query flag, which romanises the whole response on demand. See [Transliteration](/essentials/transliteration) for how the two features differ.

  ## Historical trade register extracts

  Two new historical documents are available on `/v2/company`, returned under a new response key `documents.tradeRegisterHistory`.

  ### Netherlands

  `Uittreksel Handelsregister Historie` from the KVK. Lists every change ever filed against a Dutch company since registration: name changes, seat moves, board appointments and resignations, capital changes, status updates. Surfaced as `tradeRegisterHistory` in `availableDocuments` whenever KVK has a historical record for the company.

  ### Italy

  `Visura Storica` from the Italian Chamber of Commerce. Lists every amendment to an Italian company since its registration, including ownership changes, officer changes, capital movements, and address history. Always available for active Italian companies.

  ### How to use it

  ```http theme={null}
  POST /v2/company
  {
    "countryCode": "NL",
    "id": "53781066",
    "dataPoints": ["availableDocuments"]
  }
  ```

  The historical extract appears as `documents.tradeRegisterHistory` with `format: "pdf"` and an `id`. Pass that `id` back in `documents: [...]` to order the PDF. The response will include a signed `url` for download.

  The historical extract sits alongside the existing `documents.tradeRegisterExtract` (current state only) and `documents.certifiedTradeRegisterExtract` keys, so you can request either or both depending on whether you need a point-in-time snapshot or the full change history.

  ## Test slow deliveries without waiting for one

  The TEST country now accepts `DELAY_1M`, `DELAY_10M`, `DELAY_1H`, and `DELAY_10H` as company identifiers. Each returns a normal result after the delay in its name, so you can exercise your polling loop, your webhook handling, and your UI's pending state against a delivery that genuinely takes an hour.

  They combine with the existing `GRAPH_*` fixtures. Build your integration against the slow path before a real register makes you.

  ## Ireland: shareholder provenance made explicit

  Irish shareholders derived from annual return filings are now labelled `inferred` rather than read directly from the register, and the list states which fiscal year it covers. The data is unchanged; it is now honest about where it came from, so you can decide when to rely on it.

  ## Topograph MCP server and Claude Code plugin

  Topograph now exposes an MCP server, so coding agents and AI assistants can read the country catalog, search the docs, pull the OpenAPI spec, and price a scenario without you pasting any of it in by hand. Sign in with your Topograph account to connect it.

  There is also a Claude Code plugin that installs the server and a set of integration commands in one step. Point your agent at it when you are building against `/v2/search` and `/v2/company` and it will work from live coverage and pricing rather than from memory.

  ## Coverage and pricing, in the open

  The public pricing page now documents, for every country: which registers each data block draws on, how requests route by entity type, the identifiers we accept, and the full legal-form, role, and status vocabularies with their standardised mappings.

  Countries also carry a development status, so you can tell at a glance which jurisdictions are generally available and which are in beta. Capabilities we can deliver on request but have not shipped as self-serve are listed too, with a contact link.
</Update>

<Update label="Week 20, 2026">
  ## Errors name the register that failed

  When an upstream register is unavailable, the error now names it. Instead of a generic "the data source is temporarily unavailable", you get the specific register, so your support team can tell at a glance whether the fault is upstream and your users can be told something meaningful.

  The register name is available both in the error message and as a `source` field on the error, so you can branch on it in code.

  Live register availability is published at [status.topograph.co](https://status.topograph.co), and you can subscribe there to be notified when a register we depend on is disrupted.

  ## Friendlier document downloads

  Downloaded documents now arrive with a readable filename describing the document and the company, instead of an opaque identifier. No request change: the signed `url` simply serves a proper filename.
</Update>

<Update label="Week 19, 2026">
  ## Interactive ownership graph

  Two new request fields on `/v2/company` give you click-by-click control over how deep the ownership graph goes.

  ### `graphInteractive`

  Pass `graphInteractive: true` together with the `graph` datapoint to fetch only the entry company. Its direct shareholders are returned in the response: individuals as full nodes, companies as `budget_truncated` placeholders. Each placeholder carries a `nodeId`, a cost preview, and the depth at which it sits.

  Use this when you want predictable per-step cost and a deterministic UI: one fetch, one billing event, the rest of the tree visible only as continuation handles.

  When `graphInteractive` is set, `graphMaxBudget` is ignored.

  ### `graphContinueFromNodeIds`

  Pass an array of `budget_truncated` nodeIds from a previous response to extend the graph from those leaves. The new request is linked to its parent via `mainRequestId`; `countryCode` and `id` are derived from the parent automatically. Cost deduplication applies across the full request tree, so already-paid companies are not re-billed.

  If the parent request was made with `graphInteractive: true`, every continuation inherits the flag. Each chip click then expands a single level under the chosen node, with the new tier's company shareholders surfaced as fresh `budget_truncated` chips.

  ### Response field

  `graph.metadata.interactive` is now returned alongside `stoppedReason`, `companiesFetched`, and `companiesSkipped` so you can tell whether a stored result was produced in interactive mode.
</Update>

<Update label="Week 18, 2026">
  ## Texas (US-TX)

  Texas company data is now available, with full coverage of both formal entities and sole traders, and two official documents.

  **Authoritative verification via the Secretary of State.** Verification-mode requests pull data directly from the Texas Secretary of State — the official corporate registry. This gives you authoritative entity status (In existence, Forfeited, Dissolved, Merged), the full untruncated officer record as filed, registered agent, assumed names, and formation details. Formal entities only (corporations, LLCs, limited partnerships, and other BOC-registered types).

  **Fast onboarding via the Comptroller.** Onboarding-mode requests use the Texas Comptroller franchise tax and sales tax systems. Covers the same formal entities plus sole traders. Returns officers, registered agent, establishments, activity codes, and state of formation. Results in seconds.

  **Two official documents.**

  * **Information Letter** — Secretary of State document confirming entity status, filing date, and registered agent. Formal entities only.
  * **Sales Tax Permit** — Comptroller record of permit status and outlet locations. Available for all permit holders, including sole traders.

  Search accepts Taxpayer Number, Federal EIN, SOS File Number, or company name.

  ## Sweden: sole traders now supported

  Swedish sole traders (enskild firma) can now be looked up by personnummer. Pass the 12-digit personal identity number (YYYYMMDDNNNN, with or without hyphen) as the identifier in any `/v2/company` request.

  The profile returns `personalIdentityNumber` in `identifiers`, the correct VAT number derived from the personnummer, and all available company data from Bolagsverket. Available documents for sole traders are retrieved from the same document portal as other entity types.

  ## New datapoint: `subsidiaries`

  Surface the companies a queried company holds equity in. Each entry carries the subsidiary's identifiers, ownership percentage, voting rights, number of shares, nominal capital held, and acquisition or end dates when reported.

  Add `subsidiaries` to your `dataPoints` parameter to include them in any `/v2/company` request.

  ### Italy

  First country to ship `subsidiaries`, sourced from InfoCamere. We return only current participations, picking the most recent filing per subsidiary and filtering out historical or dissolved holdings.

  ## Italy: `establishments` now available

  Branch offices and secondary seats for Italian companies are now retrievable from InfoCamere. The response includes operational branches, secondary headquarters, and foreign branches, with full address and activity description. Closed locations are excluded.

  ## Beneficial ownership data for four new jurisdictions

  The `ultimateBeneficialOwners` datapoint is now answered for **Ireland, Portugal, Serbia, and Croatia**. Each request returns the parsed beneficial owners list together with the official certificate from the local register, surfaced in `documents` as a `ubo_extract`.

  ### Ireland

  Beneficial ownership data sourced from the Register of Beneficial Ownership (RBO).

  ### Portugal

  Beneficial ownership data sourced from RCBE (Registo Central do Beneficiário Efetivo).

  ### Serbia

  Beneficial ownership data sourced from APR's Centralna evidencija stvarnih vlasnika.

  ### Croatia

  Beneficial ownership data sourced from the Registar stvarnih vlasnika (RSV).

  ### Delivery

  These four sources are fulfilled within one to three business days. The pricing page surfaces them with a **Manual** badge so it's clear up front when to expect the result.

  ## Russia and Serbia now available

  Two more jurisdictions are live on `/v2/company` and `/v2/search`.

  * **Russia**: company and sole-entrepreneur data from the state register, with establishments, legal representatives, and shareholders.
  * **Serbia**: company data from the Business Registers Agency, with establishments, legal representatives, other key persons, and shareholders.

  See [Russia](/essentials/russia) and [Serbia](/essentials/serbia) for the full reference.
</Update>

<Update label="Week 17, 2026">
  ## See how a reconstructed shareholding was derived

  Where shareholders are reconstructed from filings rather than read from a shareholder register, `dataSources.shareholders` now explains the reasoning: an `overall` summary naming the documents used, a `limitations` list stating what the reconstruction cannot establish, and a per-shareholder narrative on each entry.

  Use it to show your analysts why a percentage is what it is, and to decide when a figure needs a human check before it drives a compliance decision. The same detail is available for beneficial owners and for each node of the ownership graph.

  ## New document coverage across nine countries

  Articles of association and annual accounts are now available on more jurisdictions, each retrieved from the country's official register.

  ### United Kingdom

  Articles of association now include amendments filed after incorporation, not just the original filing. Special resolutions that change the articles land in `articlesOfAssociation`. Annual accounts unchanged.

  ### France

  Articles of association (statuts) from INPI are now classified directly from the French register's official document dictionary. Statute filings, translations, cross-border merger statutes, and updated statute drafts all route into `articlesOfAssociation`. The same treatment applies to each component of the annual accounts.

  ### Slovakia

  Annual financial statements (účtovné závierky) for every registered entity since 2009, from the Slovak financial statements register.

  ### Estonia

  Annual reports (majandusaasta aruanne) for Estonian entities are now surfaced in `financialStatements`. Filings are available since 2010.

  ### Greece

  First document integration for Greece: both `financialStatements` and articles of association (καταστατικό) from the GEMI publicity portal.

  ### Ukraine

  Annual financial statements (Фінансова звітність підприємств) for Ukrainian legal entities, covering 2021 to 2025.

  ### Slovenia

  Two new sources from AJPES:

  * Articles of association (akt o ustanovitvi / statut) from the eObjave section.
  * Annual reports (letno poročilo) from JOLP.

  ### Czech Republic

  Annual reports and articles of association from the Sbírka listin (Collection of Deeds) of the Czech Commercial Register. Covers every filing type available on justice.cz, surfaced in `financialStatements` and `articlesOfAssociation`.

  ### Ireland

  Company constitutions filed with the Irish Companies Registration Office (CRO), returned in `articlesOfAssociation`. Requesting a constitution triggers retrieval from CRO and returns the PDF like any other document.
</Update>

<Update label="Week 16, 2026">
  ## Germany: paid Hinterlegungen now retrievable

  Voluntary §326 HGB financial-statement deposits filed by Kleinstkapitalgesellschaften are now part of the standard `availableDocuments` response. Requesting one returns the PDF like any other German document. See the live pricing page for current pricing.

  ## Retrieve a request with a GET

  `GET /v2/company/{requestId}` returns a stored request result. Use it to poll a request to completion and to refresh expired signed document URLs, without rebuilding the original POST body.

  The previous approach of POSTing `{"requestId": "..."}` still works, so nothing breaks. The GET is simply the natural shape for reading a result you already created.

  ## Onboarding mode has a firm deadline

  Onboarding mode now enforces a 10 second budget per datapoint, end to end. A datapoint that cannot answer in time returns `onboarding_timeout` instead of holding your signup form open.

  This makes onboarding latency predictable by design. When you need completeness over speed, use verification mode, which has no such cap.

  ## France: Avis de situation INSEE

  Every active French company now carries an Avis de situation INSEE in `availableDocuments`, generated on demand from the national business directory. It confirms the company's registered identity, address, and activity, and is bundled with the French company data.

  ## Isle of Man now available

  Company data for the Isle of Man is available on `/v2/company` and `/v2/search`, with a Trade Register Extract alongside the company profile.

  ## Germany: your own Transparenzregister credentials

  AML-obligated entities can now connect their own Transparenzregister account to unlock German beneficial ownership data, the same way the French INPI credential flow works below. Add your register credentials in the app and UBO requests for Germany use them automatically.

  ## Latin-script responses for non-Latin countries

  Getting company data from Bulgaria, Ukraine, Greece, China, or Hong Kong? You can now ask for the response in Latin characters.

  Add `transliterate=true` to any `/v2/search` or `/v2/company` call and the company names, addresses, officer names, and activity descriptions come back romanized. Useful when your CRM, KYC system, or spreadsheet export only handles Latin text.

  The flag does not change retrieval or billing. It is a presentation option applied to the response on the way out.

  See the [Transliteration guide](/essentials/transliteration) to learn more.

  ## France: customer INPI credentials for AML-obligated entities

  AML-obligated entities with their own INPI account carrying `ROLE_RBE_BENEFICIAL_OWNERS` and `ROLE_RBE_BENEFICIAL_OWNERS_PDF` can now provision those credentials on their Topograph account to unlock the un-redacted INPI dataset.

  What it grants access to, under your credentials only:

  * `ultimateBeneficialOwners` with full date of birth (day included), full residence address (street line), nationality, gender, and place of birth. The default Topograph service account returns these fields RGPD-redacted.
  * `ubo_extract` synthesis PDF with the richer INPI content reserved for RBE-authorised accounts, typically around 20% larger than the default PDF.

  Results fetched under your credentials are isolated to your account. No other account can read or observe them. Switching regimes or rotating credentials always produces a fresh INPI fetch, so stale data is never served across boundaries.

  Other France data (company data, legal representatives, shareholders, actes, bilans, trade register extract) is unaffected. The INPI RBE role set only changes UBO-related responses.

  To provision, contact **[support@topograph.co](mailto:support@topograph.co)**. See the [France country page](/essentials/france) for details.

  ## Billing Notifications

  Topograph now sends alerts for billing events through email and webhooks: low balance warnings, high-usage alerts, and auto top-up outcomes. Give your finance and operations teams cost visibility and governance over Topograph usage without polling the API for balance and spend.

  Configure everything from the new Billing page in your dashboard or from the REST endpoints at `/v2/billing/notifications`.

  ### Two independent spend budgets

  High-usage watches run as two parallel passes, both firing on every billable request:

  * **Account-wide budget**: total spend across every workspace in your account. Fires once per account when the aggregate crosses your threshold. Use it as a top-line guardrail that catches runaway usage regardless of which team or integration is driving it.
  * **Per-workspace budget**: each workspace is evaluated individually against a shared set of defaults. Each workspace gets alerts scoped to its own spend, so a single busy workspace doesn't drown out the rest.

  A single spend spike can trip both passes at once. You get a distinct account-level event and a workspace-level event, with a `scope` field on the webhook payload so your alerting stack can route the two categories to different channels (for example, account-wide alerts to finance, per-workspace alerts to the team that owns the workspace).

  ### Per-workspace overrides

  A workspace running heavy batch work can override its budget in isolation while every other workspace keeps the account defaults. Override the master toggle, the channel routing, the rolling period, or the tier values from the Billing page, or via `PATCH /v2/billing/notifications/workspaces/{id}/config`. Overridden workspaces show an explicit `overriding` badge in the UI so you can see at a glance which ones have drifted from the account policy.

  ### Off by default, admin-controlled

  Every notification kind ships off on new accounts. Nothing fires until an admin opts in, so rolling billing notifications out to an established organisation does not surprise anyone with unexpected emails on day one. Enabling a kind seeds it with one starter warning tier at a sensible value; add `critical`, `depleted`, or extra high-usage bands from the tier editor as your policy matures.

  ### Webhook integration

  Four new event types are delivered through the same webhook setup as your existing `company.updated` webhooks. Same signature verification, same retry logic, same signing secret, so adding billing alerts to your ops stack is a matter of subscribing to the new event types in your existing endpoint:

  * `billing.low_balance.triggered`
  * `billing.high_usage.triggered` (carries `scope: "global" | "workspace"` so you can route the two budgets independently)
  * `billing.auto_topup.succeeded`
  * `billing.auto_topup.failed`

  ### Full audit trail

  Every fire records a row in the Recent Notifications card on the Billing page. Click a row to inspect the full webhook payload, workspace attribution, per-channel delivery status, and the exact threshold that was crossed. Programmatic access via `GET /v2/billing/notifications/recent` returns the same shape, so you can forward events to your observability pipeline alongside company-data webhooks.

  ### Getting started

  1. Open the Billing page in your Topograph dashboard.
  2. Expand **Notification preferences** and flip on the kinds you want.
  3. Adjust tiers, period, and channels in place, or leave the starter defaults.
  4. If you use webhooks, subscribe the four new event types in your existing endpoint.

  Full threshold semantics, dedup key shapes, and rearm behaviour are documented in the [Billing notifications guide](/guides/billing-notifications).
</Update>

<Update label="Week 14, 2026">
  ## Data Product Model

  ### New Data Vocabulary

  The API now supports granular datapoints instead of the bundled `companyProfile`:

  * `company`: company information (name, address, status, legal form, activities)
  * `legalRepresentatives`: directors, managers, board members
  * `shareholders`: shareholder structure and ownership percentages
  * `ultimateBeneficialOwners`: beneficial owners (unchanged)

  Two additional datapoints are now available:

  * `otherKeyPersons`: board members, auditors, compliance officers
  * `establishments`: branch offices and secondary locations

  The legacy `companyProfile` datapoint still works and maps to `company` + `legalRepresentatives`. No migration required.

  ### Monitoring expanded to 6 new countries

  Monitoring is now automatically available for all countries with zero-cost, fixed-price, authoritative data sources. Countries with variable or dynamic pricing are excluded. Newly supported:

  * **Bulgaria** (BG)
  * **Greece** (GR)
  * **Iceland** (IS)
  * **Jersey** (JE)
  * **Netherlands** (NL)
  * **Slovenia** (SI)

  Existing monitors also now fetch richer data: all eligible zero-cost datapoints (shareholders, UBOs, establishments, etc.) are automatically included in monitoring requests.

  ### Retrieval Modes

  New `mode` parameter replaces `fast` and `authoritative`:

  * `mode: "verification"` (default): picks the authoritative registry source
  * `mode: "onboarding"`: picks the cheapest fast source for form prefill and screening

  The `fast` and `authoritative` parameters are deprecated but still accepted.

  ### `/v2/onboarding` Deprecated

  Use `POST /v2/company` with `mode: "onboarding"` instead. Same response format, same speed. See the [migration guide](/guides/migration-data-product-model).

  ### Authoritative Flag in Response

  `dataStatus.dataPoints` now includes `authoritative: true/false` so you know whether data came from an official registry.

  ```json theme={null}
  {
    "dataStatus": {
      "dataPoints": {
        "company": { "status": "succeeded", "authoritative": true }
      }
    }
  }
  ```

  ### Block-Based Pricing

  Each data block has a fixed price per country with 24-hour deduplication. Requesting the same block for the same company within 24 hours is free. Some documents (trade register extract, UBO extract) are included free with their corresponding data block.

  The `/v2/pricing` endpoint now returns a `blocks` array showing per-mode pricing and block grouping.

  ### Budget Cap

  New `maxBudget` parameter (in credit cents) lets you cap the cost of a request. **Billable blocks** are applied in priority order: company, legal representatives, UBOs, then shareholders. Datapoints tied to blocks that do not fit the budget are dropped with a `budget_exceeded` status instead of failing the entire request.

  ## Countries

  ### 🇺🇦 Ukraine

  **New Country — Ukraine Integration**

  Ukraine is now fully supported, sourcing all data from the **Unified State Register (ЄДР — Єдиний державний реєстр)**, the official registry of legal entities, individual entrepreneurs, and foreign entity subdivisions operated by the Ministry of Justice of Ukraine.

  * **Search** — By EDRPOU code (exact match, all entity types) or RECORD number (individual entrepreneurs), and by company name in Cyrillic or Latin script
  * **Three datasets in one integration**:
    * **Legal entities (UO)** — All registered companies: LLCs, joint-stock companies, cooperatives, nonprofits, state bodies, farm enterprises, and 50+ other legal forms
    * **Individual entrepreneurs (FOP)** — Фізичні особи-підприємці, with full support for the unique FOP `RECORD` identifier scheme (prefixed as `FOP-{RECORD}` to avoid collision with EDRPOU codes)
    * **Foreign entity subdivisions (FSU)** — Representative offices and branches of foreign companies, with parent company details including country code and foreign registry code
  * **Company profile** — Legal name, legal form (50+ types, standardized), status (active, in dissolution, closed with reason and date), registration date, share capital (legal entities), and commercial names
  * **Shareholders** — Founders for legal entities (individual and corporate, with nominal capital); self-ownership for individual entrepreneurs (100%); foreign parent company for FSU subdivisions
  * **Legal representatives** — Directors and representatives from the EDR signatories section; individual entrepreneurs are self-represented (role: Owner)
  * **5.8M+ individual entrepreneur records** — The FOP dataset is one of the largest in our platform, covering registrations going back to the 1990s

  For detailed information, see our [Ukraine documentation](/essentials/ukraine).
</Update>

<Update label="Week 13, 2026">
  ## Who can sign, and alone or together

  Legal representatives now carry `representationMode`, stating whether an officer can bind the company alone (`sole`) or only jointly with others (`joint`). Where the register publishes the detail, `minimumSignatories` and `namedCoSigners` are returned too.

  This is the field you need to know whether one signature on a mandate is actually sufficient. Available for Germany, Switzerland, Finland, Greece, Hungary, Latvia, and Estonia, wherever the register states it.

  ## Hungary: sole traders

  Hungarian sole traders from the individual-entrepreneur register are now covered. Look them up by registration number or tax ID.

  ## Malta: shareholders

  Maltese companies now return `shareholders`, with ownership percentages.
</Update>

<Update label="Week 12, 2026">
  ## Countries

  ### 🇧🇪 Belgium

  **Legal Representative Enrichment (Best Effort)**

  When `agenticEnrichment: true` is passed, the system attempts to enrich legal representative details from eJustice publications (Moniteur Belge). This is **best effort**. Not all fields are guaranteed, as enrichment depends on which publications are available and what data they contain.

  * **Enriched fields**: birth date, nationality, residence address (geocoded)
  * **New `enriching` datapoint status**: indicates enrichment is in progress after base data has been retrieved
  * **Pricing**: fixed 50 cents per request, charged only if at least one field was enriched
  * Belgium only for now

  ### 🇧🇬 Bulgaria

  **Full Integration: Bulgarian Trade Register**

  Bulgaria is now fully supported with company data from the Trade Register (Търговски регистър), operated by the Registry Agency (Агенция по вписванията).

  * **Search**: By UIC/EIK number (exact match) or by company name in Cyrillic (fuzzy match) via pre-indexed Open Data and live Trade Register API
  * **Company Profile**: Full structured data including legal name, Latin transliteration, legal form (18 types with ISO 20275), status (deterministic mapping), address, share capital, activity description, legal representatives, shareholders, and board members
  * **Shareholders**: Partners with nominal capital held and percentage for OOD companies; sole owner for EOOD companies; general and limited partners for KD companies. Both individual and corporate shareholders supported with country codes
  * **Ultimate Beneficial Owners**: Live UBO data from beneficial ownership declarations in the Trade Register
  * **Onboarding Profile**: Fast company lookups from pre-indexed Open Data with live API fallback
  * **Documents**: Trade Register Extract (always available), Articles of Association, Financial Statements, and 25+ additional conditional document types
  * **Activity Codes**: NKID/NACE/ISIC classification chain, all deterministic (no AI inference)

  For detailed information, see our [Bulgaria documentation](/essentials/bulgaria).

  ### 🇭🇺 Hungary

  **Sole Trader (Egyéni Vállalkozó) Coverage**

  Hungary now covers **sole traders** in addition to commercial companies, sourcing data from a second registry, the **NAV EVNY** (Egyéni Vállalkozók Nyilvántartása), operated by the Hungarian Tax Authority.

  * **Search**: Sole traders are searchable by registration number (8 digits) or tax number (8 digits). An 8-digit query automatically searches both OCCSZ and EVNY in parallel, with deduplication.
  * **Company profile**: Full sole trader profile including legal name, status, address, activity codes (6-digit TEÁOR → NACE → ISIC), branch offices, and registration date. The sole trader is automatically mapped as the legal representative (Owner) and 100% shareholder.
  * **Documents**: EVNY extract available as a PDF (screenshot-based), included free with the profile.
  * **Status mapping**: Supports all EVNY statuses: operating (Működő), dormant (Szünetelő), authority-suspended (Felfüggesztett), and terminated (Megszűnt), with proper `active` flag and closure reason mapping.
  * **Pricing**: Sole trader profiles use fixed pricing only (no variable TRE cost). Budget precheck adapted accordingly.

  ## API

  **Representation Mode for Legal Representatives**

  Legal representatives now include a `representationMode` field indicating how a representative can bind the company. The field specifies whether signing authority is `sole` (can act alone) or `joint` (must act with others), with optional `minimumSignatories` for joint representation or `namedCoSigners` for joint representation with specific named individuals.

  Available for: **Hungary (HU)**, **Latvia (LV)**, **Greece (GR)**, **Germany (DE)**, **Switzerland (CH)**, **Finland (FI)**, **Estonia (EE)**

  * **Hungary**: Extracted from TRE §13 "együttes"/"önálló" markers (deterministic)
  * **Latvia**: Mapped from UR API `rightsOfRepresentation.type` (deterministic)
  * **Greece**: Enriched from GEMI boolean flags for ΑΕ companies
  * **Germany**, **Switzerland**, **Finland**: AI-extracted from trade register documents (including named co-signers when specified)
  * **Estonia**: Sourced from the RIK `esindus_v1` endpoint — `sole` when the person holds exclusive representation rights (`ainuesindusoigus_olemas: JAH`). Not set for `EI` or `EI TEA` (unknown/cannot determine)
</Update>

<Update label="Week 11, 2026">
  ## Countries

  ### 🇭🇺 Hungary

  * **Fixed company status detection for deleted companies**. Companies with a deletion date ("Törlés hatálya") in Section 1 of the Trade Register Extract are now correctly identified as closed. Previously, these companies were incorrectly reported as active because only quoted status markers in the company name were checked. The fix parses the deletion date and reason ("Megjegyzés") from the TRE general data section, mapping deletion reasons to the appropriate closure reason (átalakulás → Merger, felszámolás → Bankruptcy, kényszertörlés → Administrative Dissolution, végelszámolás → Voluntary Dissolution).

  ### 🇸🇮 Slovenia

  **New Country: Slovenia Integration**

  We've added full support for Slovenia, sourcing all data from **AJPES** (Agency of the Republic of Slovenia for Public Legal Records and Related Services), the official operator of the Slovenian Business Register (ePRS).

  * **Search**: Full-text search by company name, registration number, or tax number across 290,000+ entities
  * **Company profile**: Legal name, status, legal form, registration date, address, share capital, and legal representatives
  * **Shareholders**: Individual and corporate shareholders with equity interests and ownership percentages (d.o.o. companies)
  * **Trade Register Extract**: Digitally signed PDF from AJPES, available for all court-registered entities
  * **Onboarding profile**: Fast company lookup (\~1s) from synchronized PRS Open Data

  <Note>
    Shareholder data is only available for d.o.o. (limited liability) companies.
    Joint-stock companies (d.d.) do not disclose shareholders through the registry
    as shares are publicly traded. The Slovenian UBO Register (RDL) is restricted
    to authorized entities and is not currently accessible.
  </Note>

  For detailed information, see our [Slovenia documentation](/essentials/slovenia).

  ### 🇪🇪 Estonia

  * **Partnership shareholders**: General partnerships (TÜ) and limited partnerships (UÜ) now return shareholders. Partners (TOSAN/UOSAN/EUSOS/EUSOS2) are extracted from `kaardile_kantud_isikud` and returned as shareholders alongside their legal representative entries. Limited partners include their capital contribution (`nominalCapitalHeld`). Partners holding multiple roles (e.g. EUSOS + UOSAN) are deduplicated by registry code, keeping the entry with capital contribution data.
  * **Nominal capital precision fix**: Shareholder `nominalCapitalHeld` amounts for OÜ/AS companies now preserve full decimal precision (e.g. `10931254.40` instead of being truncated to `10931254`).
  * **Consistent entity IDs**: All person mappers (legal representatives, shareholders, other key persons) now use `isikukood_registrikood` (registry code for companies, personal ID for individuals) instead of the internal RIK record ID (`kirje_id`). This ensures the same entity has a consistent ID across all sections of the response. Falls back to `kirje_id` for foreign companies that lack a local registry code.
  * **Birth date extraction**: All individual persons (legal representatives, shareholders, other key persons) now include `birthDate`. For Estonian nationals, the date is derived from the 11-digit personal identification code (`isikukood`). For foreign nationals, it is read from the `synniaeg` field.
  * **Country of residence**: Individual shareholders now include `residenceAddress.countryCode` when the registry provides the `aadress_riik` field (common for foreign shareholders).
  * **Foreign company country codes**: Corporate shareholders and legal representatives registered abroad now show their actual country of registration (e.g. `GB`, `SE`, `CYM`) instead of defaulting to `EE`. Foreign registration numbers (`valis_kood`) are also used as the company ID.

  ## New Feature

  ### Workspaces: Per-Client Usage Tracking & Rebilling

  We've introduced **Workspaces**, a new feature that lets you split API usage across sub-accounts, clients, or departments for easy cost tracking and rebilling.

  * **Tag requests**: Send an `x-topograph-workspace-id` header with any `/v2/company` request (including `mode: "onboarding"`) to attribute usage to a specific workspace. The legacy `/v2/onboarding` route remains workspace-taggable for backward compatibility.
  * **Manage workspaces**: Full CRUD API to create, update, list, and delete workspaces, each with an associated legal entity name
  * **Usage reporting**: New `GET /v2/workspaces/usage` endpoint returns per-workspace credit consumption with catalog-item breakdown, filterable by date range
  * **Default workspace**: Requests without an `x-topograph-workspace-id` header are automatically tagged to the default workspace (fully backward compatible)
  * **Dashboard support**: The billing dashboard now shows a workspace column and supports "Split by Workspaces" in the usage graph

  This is ideal for **resellers** rebilling clients, **multi-entity organizations** allocating costs, and **platforms** tracking per-tenant consumption.

  See the full [Workspaces documentation](/essentials/workspaces) and [API reference](/api-reference/workspaces/list-all-workspaces).

  ## Countries

  ### 🇱🇻 Latvia

  **Onboarding Profile & Fast Search: Open Data Batch Pipeline**

  Latvia now has synchronized search and an onboarding profile powered by open data from data.gov.lv (\~480K entities), providing fast company lookups.

  * **Fast search**: Fast search by company name or registration number, with register fallback for supplementary results
  * **Onboarding profile**: Rich company data from synchronized source data (\~1s): legal form, status, capital, legal representatives, shareholders (SIA + AS), and ultimate beneficial owners
  * **7 data sources**: Daily CSV sync: company register, officers, members, stockholders, beneficial owners, equity capitals, and areas of activity
  * **Address geocoding**: Addresses are geocoded with skip-if-unchanged optimization for subsequent refreshes
  * **Incremental updates**: Only companies with actual data changes are reprocessed on refresh runs

  <Note>
    The onboarding profile does not include NACE/ISIC activity codes or AI
    enrichment; use the full company profile for those. Shareholders of type
    DEPOSITORY (Nasdaq CSD nominee holdings for listed companies) are excluded.
  </Note>

  For detailed information, see our [Latvia documentation](/essentials/latvia).
</Update>

<Update label="Week 10, 2026">
  ## Countries

  ### 🇪🇪 Estonia

  * **Expanded UBO control type coverage**: Added support for 5 additional RIK control type codes (`K`, `C`, `S`, `Z`, `Y`), bringing the total from 4 to all 9 codes defined by the Estonian Money Laundering Prevention Act (RahaPTS §9). Notably, indirect ownership (`K`) is now correctly mapped with `nature: indirect`, and appointment rights (`Y`) have an explicit mapping instead of relying on the default fallback.

  ### 🇰🇾 Cayman Islands

  **New Country: Cayman Islands Integration**

  We've added full support for the Cayman Islands, sourcing all data from the **General Registry (CIREGISTRY)**, the official registrar of companies, partnerships, and trusts.

  * **Search** - Name-based entity search across 45,000+ registered entities
  * **Company profile** - AI-extracted from the Detailed Search document: legal name, status, legal form, incorporation date, registered office, directors, and shareholders (when disclosed)
  * **Three document types** - Detailed Search, Company Details, and Director Details, all delivered as PDF.
  * **Fast search** - Search sessions are prepared ahead of time to reduce latency.
  * **Balance monitoring** - Internal balance monitoring protects document availability.

  <Note>
    The Cayman Islands does not assign numeric registration numbers. Entity names
    are used as identifiers (base64-encoded in API responses). Exempted companies
    (the most common entity type) are not required to publicly disclose
    shareholders.
  </Note>

  For detailed information, see our [Cayman Islands documentation](/essentials/cayman-islands).
</Update>

<Update label="Week 9, 2026">
  ## Breaking Changes

  ### 🔖 `statusDetailsBeta` renamed to `statusDetails`

  The `status.statusDetailsBeta` field has been **promoted to `status.statusDetails`** and is now considered stable. The `Beta` suffix has been removed.

  **Action required:** Update any code reading `statusDetailsBeta` to `statusDetails`.

  All existing values (`status`, `closureReason`, `closureDate`, `insolvencyStartDate`, `additionalInfo`) and their semantics are unchanged. A new `SPLIT` value has been added to `closureReason` to cover corporate splits.

  See the [Company Status guide](/guides/company-status) for full documentation on the status model, all enum values, country coverage, and usage patterns.

  ## Countries

  ### 🇷🇴 Romania

  **Onboarding Profile: ONRC Open Data Batch Pipeline**

  Romania now has an onboarding profile powered by ONRC Open Data (\~4.1M entities), providing fast company lookups from synchronized data.

  * **Search**: Full-text search by company name, CUI, or registration number
  * **Onboarding Profile**: Fast company lookup (\~1s) with deterministic mappings for status (197 official codes), legal form (20+ types with ISO 20275), and activity codes (CAEN → NACE → ISIC)
  * **Legal representatives**: Individual and corporate representatives with role mapping, birth date, nationality, and addresses
  * **Activity codes**: CAEN Rev. 2 codes with Romanian descriptions, NACE Rev. 2 with English descriptions, and ISIC Rev. 4 derived via the official UN correspondence table. All deterministic (no AI inference)
  * **Freshness check**: the integration detects new dataset publications on data.gov.ro and refreshes automatically

  For detailed information, see our [Romania documentation](/essentials/romania).

  ### 🇧🇪 Belgium

  **Full juridical situation mapping in `statusDetails`**

  Belgium now surfaces the complete KBO/CBE **juridical situation** (A152 code list) in `statusDetails`, replacing the previous binary active/ceased classification.

  * **`UNDER_INSOLVENCY_PROCEEDING`** for companies with an open bankruptcy (`050`) or judicial reorganisation (`091`) proceeding, with `insolvencyStartDate` when available
  * **`closureReason`** now populated for closed companies: `BANKRUPTCY`, `VOLUNTARY_DISSOLUTION`, `ADMINISTRATIVE_DISSOLUTION`, `COURT_ORDER`, `LIQUIDATION`, `MERGER`, `SPLIT`
  * **`localName`** now reflects the French juridical situation label (e.g. `Ouverture de faillite`) instead of the generic `Actif` / `Cessé`

  All 36 KBO/CBE juridical situation codes are mapped. Both the BCE Open Data fast path and the CBE Public Search enrichment path converge on the same standardised output.

  For the complete code table, see the [Belgium documentation](/essentials/belgium#juridical-situation-codes). For the full status model reference, see the [Company Status guide](/guides/company-status).

  ## Features

  ### 📍 GPS Coordinates on Addresses

  Company addresses now include `latitude` and `longitude` fields, giving you precise geographic coordinates for every geocoded address. These coordinates are derived automatically from the address and are available across all countries.

  * **Ready-to-use coordinates** - Latitude and longitude are returned directly in the address object, no extra API call needed
  * **Map-friendly** - Easily plot company locations on a map or calculate distances between companies
</Update>

<Update label="Week 8, 2026">
  ## Features

  ### 🔍 Domain-Based Company Search

  Search now supports web domain queries. When the search query looks like a domain (e.g., `doctrine.fr`, `stripe.com`, `kvk.nl`), the system resolves the company behind it and routes to the appropriate country's search.

  * **Automatic detection** - Domains are detected transparently, including with `https://` or `www.` prefixes
  * **Cross-country resolution** - The resolved company's country is used for the search, regardless of the country parameter
  * **Fallback strategy** - If the resolved identifier returns no results, the system retries with the resolved legal name

  ## Countries

  ### 🇫🇮 Finland

  **Ultimate Beneficial Owners (UBOs)**

  Finland now supports Ultimate Beneficial Owner data, sourced from PRH's ESR (Beneficial Ownership Register), a separate service from the existing VIRRE Trade Register integration.

  * **Ownership & voting rights** - Structured control details with percentage values and nature (direct/indirect)
  * **Personal details** - Name, date of birth, nationality, and residence city (resolved from Finnish municipality codes)
  * **Entity type awareness** - UBO data is available for private limited companies (Oy). Public companies (Oyj), state-owned entities, associations, foundations, and sole entrepreneurs typically have no UBO data due to Finnish law requirements (>25% ownership/voting threshold)

  For detailed information, see our [Finland documentation](/essentials/finland).

  ### 🇩🇪 Germany

  **WZ 2008 Activity Classification**

  German company profiles now include WZ 2008 (Wirtschaftszweig) activity codes, the official German economic activity classification system. The WZ 2008 code is matched from the company's "Gegenstand des Unternehmens" using AI-based classification against all 839 official sub-classes from Destatis.

  * **New `WZ2008` field** in company profile activities alongside ISIC and NACE
  * Supports all 839 WZ 2008 sub-classes with German descriptions
  * Available in both company profile and onboarding profile

  ### 🇭🇺 Hungary

  **Major Rework: Official e-Cégjegyzék API Integration**

  We've completely reworked the Hungary integration by switching to the official e-Cégjegyzék (OCCSZ) source for Trade Register Extract retrieval. Company profiles are parsed deterministically from the extract, with enrichment only for address parsing, legal form standardization, and role classification.

  * **Variable pricing**: Unlike flat-rate countries, the Trade Register Extract price depends on the document size. Prices are shown before purchase.
  * **Budget control**: New `profileMaxBudget` parameter lets you set a maximum spend. If the estimate exceeds your budget, the request fails with a `budget_exceeded` error so you can retry with a higher budget.
  * **Expanded data coverage**: Company profiles now include shareholders (from TRE Part II), establishments (business premises and branch offices), other key persons (auditors, supervisory board members), and activity codes (TEÁOR, NACE, ISIC)
  * **Field-level data source tracking**: Each field in the response includes provenance metadata (`live_from_registry` for TRE-derived data, `ai_analysis` for AI-enriched fields like address and legal form, `vies` for VAT validation)
  * **Search by VAT number**: Search now supports Hungarian VAT numbers (with or without `HU` prefix)

  For detailed information, see our [Hungary documentation](/essentials/hungary).

  ### 🇫🇷 France

  **Deterministic Legal Form & Role Mapping -- AI Removed**

  We've replaced all AI-based legal form and role mapping in France with fully deterministic static lookups, eliminating runtime AI calls for these fields across both batch and live pipelines.

  * **Legal forms** -- All 450 INSEE catégorie juridique codes are now mapped via a static lookup table providing the local French name, English translation, standardized category, and ISO 20275 (ELF) code. Previously, live requests used GPT-4.1-mini for translation and standardization. The static mapping was generated by running AI enrichment once on every code and freezing the results.
  * **Roles** -- All 71 RNE role codes are now mapped via a static lookup with standardized role, English translation, and legal representative classification based on French corporate law. No AI involved.
  * **SIRENE legal forms** -- SIRENE-only companies (not in RNE) now use the same static legal form mapping as RNE, providing full English translations, standardized categories, and ISO 20275 codes. Previously, SIRENE batch mode returned only the local name.

  **Impact:**

  * Faster response times (no AI calls for legal form or role enrichment)
  * Consistent results (deterministic, no variance between requests)
  * Lower cost (no LLM token usage for these fields)
  * SIRENE-only companies now have the same legal form data quality as RNE companies

  For the complete mapping tables, see our [France documentation](/essentials/france#legal-forms).

  ### 🇮🇹 Italy

  **Shareholders as a Standalone Datapoint**

  Italy shareholders are now available as an independent `shareholders` datapoint, separate from the company profile. Previously, shareholder data was bundled into `companyProfile` and always fetched together. Now you can request shareholders independently or alongside the company profile.

  * **Dedicated `shareholders` datapoint**: fetch shareholders without triggering a full company profile request
  * **Birth data enrichment**: individual shareholders are cross-referenced with legal representatives to populate birth date and birth address when available (using the InfoCamere register, which is cached)
  * **Sole proprietors**: correctly return an empty shareholders list, as sole proprietorships have no registered shareholders in the trade register
</Update>

<Update label="Week 7, 2026">
  ## Countries

  ### 🇸🇬 Singapore

  **New Country: Full Company Data Platform**

  Singapore is now available on Topograph, powered by ACRA Open Data (\~2.07M entities) and BizFile document purchases:

  * **Search** - Full-text search by company name or UEN
  * **Onboarding Profile** - Fast company lookup from ACRA batch data (\~3.5s) with formal mappings for status, legal form (ISO 20275), and activity codes (SSIC → ISIC)
  * **Company Profile** - Detailed company data including shareholders and legal representatives, extracted from purchased Business Profile PDF
  * **Documents** - Business Profile (Trade Register Extract) purchased via BizFile (\~60s delivery)

  For detailed information, see our [Singapore documentation](/essentials/singapore).

  ### 🇭🇷 Croatia

  **Major Performance Improvements & Onboarding Profile**

  We've significantly improved Croatia's performance by replacing the browser-based scraper with direct HTTP parsing and optimized API calls. All retrieval times are now dramatically faster:

  * **Onboarding Profile** - New lightweight company data endpoint optimized for onboarding flows (\~5s)
  * **Search** - \~3-10s
  * **Company Profile** - \~15s (now includes legal representative start dates when available)
  * **Certified Trade Register Extract** - \~5s (previously \~1m30s)
  * **Shareholders** - New standalone shareholders datapoint
  * **Shared documents information retrieval time** - \~7s (previously \~1m30s)

  For detailed information, see our [Croatia documentation](/essentials/croatia).
</Update>

<Update label="Week 6, 2026">
  ## API

  ### 🧾 Expanded VAT Validation to 20 EU Countries

  We've dramatically expanded VAT validation support from 2 to 20 EU countries. All supported countries now include:

  * **VAT search** - Search for companies using their VAT number (with or without country prefix)
  * **VIES verification** - Automatic validation with legally admissible proof (`consultationNumber`)
  * **Frontend display** - New Tax ID component in company profiles showing verification status with expandable VIES details

  <Frame className="mt-4">
    <img src="https://mintcdn.com/semaphore/d5tJppvAvKz2JXhn/images/tax-id-verification-details.png?fit=max&auto=format&n=d5tJppvAvKz2JXhn&q=85&s=9b7895b58bf28d6ff255cc88907b685b" alt="Tax ID verification details showing registered name, address, verification date and consultation number" width="738" height="402" data-path="images/tax-id-verification-details.png" />
  </Frame>

  **Full taxId support (VAT in profile + VIES verification):**

  🇫🇷 France, 🇪🇸 Spain, 🇸🇪 Sweden, 🇮🇹 Italy, 🇵🇹 Portugal, 🇵🇱 Poland, 🇪🇪 Estonia, 🇦🇹 Austria, 🇧🇪 Belgium, 🇱🇺 Luxembourg, 🇩🇰 Denmark, 🇨🇿 Czechia, 🇷🇴 Romania, 🇭🇺 Hungary, 🇫🇮 Finland, 🇭🇷 Croatia

  **VAT search only (VIES reverse lookup, no taxId in profile):**

  🇱🇻 Latvia, 🇨🇾 Cyprus, 🇮🇪 Ireland, 🇲🇹 Malta

  <Note>
    For countries with "VAT search only", the VAT number is neither
    algorithmically derivable from the registration number nor available in the
    registry API. You can still search by VAT number via VIES reverse lookup, but
    the `taxId` field won't appear in company profiles.
  </Note>

  For detailed documentation, see our [VAT Validation guide](/essentials/vat-validation).

  ### 🧾 Tax ID Support (taxId) - France & Spain

  Added a new `taxId` field to company profiles that provides structured tax identification information.

  **Key features:**

  * **Structured tax ID data** - Includes type, value, country, and verification status
  * **Verification with legal proof** - Optional VIES validation provides a `consultationNumber` (official EU receipt) for audit purposes
  * **No external calls for basic data** - VAT numbers are calculated mathematically (France) or derived from NIF (Spain) without API calls
  * **Search by VAT** - Both countries now support searching by VAT number

  **Response structure:**

  ```json theme={null}
  {
    "taxId": {
      "type": "eu_vat",
      "value": "27443061841", // WITHOUT country prefix
      "country": "FR",
      "verification": {
        "status": "unverified",
        "consultationNumber": "WAPIAAAAW..." // Only with VIES validation
      }
    }
  }
  ```

  **Country-specific notes:**

  * 🇫🇷 **France**: VAT calculated from SIREN using the official formula. Search now supports TVA Intracommunautaire format.
  * 🇪🇸 **Spain**: VAT value equals NIF (Número de Identificación Fiscal). Note: Having a NIF doesn't guarantee EU VAT registration (requires ROI enrollment).

  <Note>
    The `taxId.value` field stores the VAT number WITHOUT the country prefix. The
    country is stored separately in `taxId.country`. The `identifiers.VAT` field
    also stores the VAT value without prefix for consistency.
  </Note>

  ## Countries

  ### 🇬🇷 Greece

  We're excited to announce support for **Greece** company data from the **GEMI** (Γενικό Εμπορικό Μητρώο - General Commercial Registry):

  * **Search** - Find companies by GEMI number, VAT number (ΑΦΜ), or company name
  * **Onboarding Profile** - Fast, lightweight company data optimized for onboarding flows (\~7 seconds)
  * **Company Profile** - Comprehensive company data including legal representatives, shareholders, activities (NACE codes), and share capital (\~10 seconds)
  * **Available Documents** - List all available documents including financial statements, articles of association, and official GEMI announcements (\~6 seconds)
  * **Document Download** - Retrieve financial statements, articles of association, and official publications (\~6 seconds) or Trade Register Extract (\~10 seconds) as PDFs

  <Note>
    OKOIP (Charities register) integration for additional company data is planned
    for a future release.
  </Note>

  For detailed information about Greece's registration system and available features, see our [Greece documentation](/essentials/greece).

  ### 🇱🇺 Luxembourg

  * **Improved speed & reliability** - We've made significant improvements to Luxembourg data retrieval. Company searches, profile lookups, and Trade Register Extract orders are now faster and more reliable.
  * **Onboarding Profile** - Added a new fast onboarding profile endpoint that returns basic company data (name, address, legal form, activities) in \~250-500ms.

  ### 🇨🇾 Cyprus

  * **Shareholders support** - Added shareholders extraction from the Trade Register Extract (Study File) PDF. Shareholders are extracted using AI parsing from the official DRCOR document, supporting both individual and corporate shareholders with ownership percentages when available. Billing occurs via the Trade Register Extract document purchase.
</Update>

<Update label="Week 5, 2026">
  ## Countries

  ### 🇮🇪 Ireland

  **Legal Representatives & Shareholders Now Available**

  We've significantly expanded Ireland data coverage with two major additions:

  * **Legal Representatives** - Directors and other key persons (secretaries, filing agents) are now extracted from the Company Printout (Trade Register Extract) document using AI parsing. Available in the `companyProfile` response.
  * **Shareholders** - A new `shareholders` datapoint extracts ownership information from B1C Annual Return documents. The AI parses member details, share counts, and calculates ownership percentages from the issued share capital.

  <Note>
    Both extractions use AI parsing from PDF documents. Role standardization and
    shareholder type determination are AI-inferred. Shareholders are only
    extracted for active companies.
  </Note>

  For details, see our [Ireland documentation](/essentials/ireland).

  ### 🇧🇪 Belgium

  Fixed `representedBy` field for corporate legal representatives. When a company is a legal representative (e.g., Director), the natural person who acts on its behalf (permanent representative) is now correctly populated in the `representedBy` field.

  ## Features

  ### Designee Role in Relationships Table

  Added a new **Designee** role type to the relationships table. When a company is a legal representative, the natural person designated to act on its behalf now appears as a separate entity with the "Designee" role badge. This provides clearer visibility into who actually represents corporate officers.

  * Designees are shown as distinct entities in the relationships table
  * Expanding a company legal rep now shows the designee in the details section
  * Added info tooltips to all role badges explaining their meaning

  ### 💰 Financial Data Analysis

  Improved financial data extraction and analysis is now accessible in the frontend app. Financial data can be viewed directly from the documents table with detailed AI analysis, ratios, and structured financial statements. See the [Financial Data Extraction documentation](/essentials/financial-data-extraction) for details.

  ## Platform

  ### 📄 Improved PDF Export

  Enhanced PDF export with improved visual design, correct logo rendering, and better alignment with the frontend color palette.

  ## API

  ### 🔍 Enhanced Search Results with Match Reason

  Search results now include a `matchReason` field that provides detailed information about why a result was returned:

  * **`matchType`** - Indicates the type of match:
    * `id` - Guaranteed 1:1 match from an ID-based search (e.g., VAT number, CCIAA+REA)
    * `exactLegalName` - The legal name exactly matches the search query
    * `partialId` - Matched by a partial identifier not guaranteed unique (e.g., REA without CCIAA)
    * `default` - Used when the exact matching criteria is unknown

  * **`identifier`** - Shows which identifier matched (when applicable), with typed definitions per country

  **Example response:**

  ```json theme={null}
  {
    "legalName": "ACME SRL",
    "matchReason": {
      "matchType": "id",
      "identifier": { "VAT": "02580590541" }
    }
  }
  ```

  ### 🇮🇹🇫🇷 Typed Country Identifiers

  Introduced typed identifier definitions with full OpenAPI documentation:

  * **Italy**: VAT, Codice Fiscale, CCIAA, REA Code
  * **France**: SIREN, SIRET, TVA Intracommunautaire, RNA, RNA Alsace-Moselle

  Each identifier includes detailed descriptions, format specifications, and issuing authority information in the API documentation.
</Update>

<Update label="Week 3, 2026">
  ## Countries

  ### 🇻🇬 British Virgin Islands

  We're excited to announce support for **British Virgin Islands (BVI)** company data from the BVI Financial Services Commission (FSC) Public Search:

  * **Search** - Find companies by name or company number (numeric or alphanumeric format like `L658`)
  * **Onboarding Profile** - Fast, lightweight company data optimized for onboarding flows including legal form, status, and company type classification
  * **Company Profile** - Comprehensive company data including legal representatives and shareholders when disclosed, extracted from the Trade Register Extract using AI parsing
  * **Trade Register Extract (Certificate of Good Standing)** - Official PDF document from the BVI FSC containing company registration information

  <Note>
    As of now, document retrieval for BVI relies on a manual concierge process due
    to instability in direct API access. This may result in some delay (typically
    1-2 business days) when retrieving the Trade Register Extract. We are actively
    working on improving this process.
  </Note>

  For detailed information about BVI's company number system and available features, see our [British Virgin Islands documentation](/essentials/bvi).

  ### 🇱🇮 Liechtenstein

  We're excited to announce support for **Liechtenstein** company data from the official Handelsregister (Trade Register):

  * **Search** - Find companies by name or FL registration number (e.g., `FL-0002.658.754-1`)
  * **Onboarding Profile** - Fast, lightweight company data optimized for onboarding flows including legal form, status, and registration details
  * **Company Profile** - Comprehensive company data including legal representatives, shareholders, and share capital, extracted from the Trade Register Extract using AI parsing
  * **Trade Register Extract** - Official PDF document from the Liechtenstein Handelsregister containing complete company registration information

  For detailed information about Liechtenstein's registration number system and available features, see our [Liechtenstein documentation](/essentials/liechtenstein).

  ### 🇱🇻 Latvia

  We're excited to announce full support for **Latvia** company data from the Enterprise Register (Uzņēmumu reģistrs):

  * **Search** - Find companies by name or registration number (11-digit identifier, e.g., `40103217882`)
  * **Company Profile** - Comprehensive company data including legal form, status, capital, activities (NACE codes), legal representatives, shareholders, and other key persons (\~15 seconds retrieval time)
  * **Ultimate Beneficial Owners** - UBO data with ownership percentages and control details
  * **Certified Trade Register Extract** - Official PDF extract from the Enterprise Register (\~25 seconds retrieval time)
  * **Articles of Association** - Company statutes and amendments (\~25 seconds retrieval time)
  * **Financial Statements** - Annual reports in PDF format (\~25 seconds retrieval time)
  * **Other Registry Documents** - Registration certificates, shareholder registers, board protocols, and more (\~ 25 seconds retrieval time)

  For detailed information about Latvia's registration system and available features, see our [Latvia documentation](/essentials/latvia).

  ### 🇸🇰 Slovakia

  We're excited to announce full support for **Slovakia** company data from the RPO (Register of Legal Entities, Entrepreneurs and Public Authorities) and ORSR (Commercial Register):

  * **Search** - Find companies by name (partial match supported) or IČO (8-digit Organization Identification Number)
  * **Company Profile** - Comprehensive company data including legal representatives, shareholders, share capital, business activities, and more. (\~20 seconds retrieval time)
  * **Trade Register Extract** - Official PDF extract from the Commercial Register in mixed English and Slovakian (\~15 seconds retrieval time)

  Slovakia uses **IČO** (Identifikačné číslo organizácie) as the primary company identifier, an 8-digit number assigned to all registered legal entities.

  For detailed information about Slovakia's identifier system and available features, see our [Slovakia documentation](/essentials/slovakia).

  ### 🇬🇬 Guernsey

  We're excited to announce full support for **Guernsey** company data from the Guernsey Registry (GFSC):

  * **Search** - Find entities by name or registration number with prefix (e.g., `CMP10001`, `FND167`, `LLP149`)
  * **Company Profile** - Comprehensive company data including legal representatives, other key persons, activities, and addresses (\~15 seconds retrieval time)
  * **Trade Register Extract** - Official Statement of Register PDF for companies, foundations, partnerships, charities, and non-profits (\~1-3 minutes retrieval time)
  * **Certificate of Good Standing** - Official certificate confirming current good standing (\~1-3 minutes retrieval time)
  * **Certificate of Incorporation** - Historical incorporation certificate (\~1-3 minutes retrieval time)
  * **Articles of Association** - Constitutional documents and amendments (\~1-3 minutes retrieval time)
  * **Other Filed Documents** - Annual validations, resolutions, and other registry filings (\~1-3 minutes retrieval time)

  Guernsey uses **registration number prefixes** to identify entity types: `CMP` (Companies), `FND` (Foundations), `LLP` (Limited Liability Partnerships), `LP` (Limited Partnerships), `CH` (Charities), and `NP` (Non-Profit Organisations).

  For detailed information about Guernsey's identifier system and available features, see our [Guernsey documentation](/essentials/guernsey).

  ### 🇨🇿 Czechia

  * **UBO support disabled** - Due to Czechia restricting access to its UBO registry, we are disabling Ultimate Beneficial Owners support for Czech companies. Other features remain available including company search, company profile, and trade register extracts.

  ## Features

  ### Shareholders Extraction (Alpha)

  We're introducing a new `shareholders` datapoint for countries where shareholder data is not available directly from official registries. This feature reconstructs the most probable current shareholder structure by analyzing available company documents.

  Currently available for **France (FR)**, **United Kingdom (GB)**, and **Belgium (BE)**.

  <Warning>
    This is an alpha feature providing best-effort reconstruction. Results should
    be verified manually for compliance use cases.
  </Warning>

  For more details, see our [Shareholders Extraction documentation](/essentials/shareholders-extraction).
</Update>

<Update label="Week 2, 2026">
  ## Countries

  ### 🇨🇭 Switzerland

  * **Trade Register Extract now available for all 26 cantons** - You can now download official trade register extracts (PDF) for Swiss companies across all cantons, including Zürich, Geneva, Vaud, Bern, and all other Swiss jurisdictions.

  ### 🇯🇪 Jersey

  We're excited to announce full support for **Jersey** company data from the Jersey Financial Services Commission (JFSC) Registry:

  * **Search** - Find companies by name or registration number (4-7 digit numeric identifier)
  * **Onboarding Profile** - Fast, lightweight company data optimized for onboarding flows including legal form, status, and registration date
  * **Company Profile** - Comprehensive company data including legal representatives (directors, secretary) and shareholders when disclosed (\~1 minute processing time)
  * **Entity Profile Report** - Official PDF document from the JFSC containing complete company registration information (\~1 minute retrieval time)

  For detailed information about Jersey's registration number system and available features, see our [Jersey documentation](/essentials/jersey).

  ### 🇲🇺 Mauritius

  We're excited to announce full support for **Mauritius** company data:

  * **Search** - Find companies by name, File Number, Business Name, or BRN
  * **Onboarding Profile** - Fast, lightweight company data optimized for onboarding flows (typically \~3 seconds)
  * **Company Profile** - Comprehensive company data including legal representatives, shareholders, capital, and activities (typically \~15-20 seconds)
  * **Trade Register Extract** - Official PDF document from the Corporate and Business Registration Department (CBRD)

  Mauritius companies use **File Number** (e.g., `C227332`) as the primary identifier, with support for both domestic companies and Global Business Companies (GBC).

  ### 🇲🇨 Monaco

  * **Initial support for Monaco** - We're excited to announce support for Monégasque companies with our integration of the RCI (Répertoire du Commerce et de l'Industrie) register! Currently available features:
    * **Company search by name** - Find Monégasque companies using their registered business names
    * **Company search by RCI number** - Direct lookup using Monaco RCI registration numbers (format: `YY[A-Z]{1,2}\\d{4,5}`; legacy civil alias like `YYSC#####` is normalized to `YYC#####`)
    * **Fast onboarding-style company data** - Lightweight company data optimized for onboarding flows including legal form, activities, and address
    * **`companyProfile`** - Comprehensive company information extracted from the trade register extract, including legal representatives, capital, registration dates, and enriched data (\~1 minute processing time)
    * **Trade Register Extract** - Official PDF extract from RCI containing complete company registration information including legal representatives, activities, capital, and status (\~1 minute retrieval time)

  For detailed information about Monaco's RCI number system and available features, see our [Monaco documentation](/essentials/monaco).

  ### 🇧🇪 Belgium

  * **Improved performance and robustness** - Enhanced speed and reliability for Belgian company data retrieval operations.

  ### 🇭🇰 Hong Kong

  * **Restored `companyProfile` and `registerExtract` functionality** and significantly improved system robustness for Hong Kong data retrieval.

  ### 🇭🇷 Croatia

  * **Initial support for Croatia** - We're excited to announce support for Croatian companies with our integration of Sudreg (Court Registry) and RGFI/FINA (Annual Financial Statements Registry)! Currently available features:
    * **Company search by name** - Find Croatian companies using their registered business names
    * **Company search by MBS** - Direct lookup using the 9-digit company registration number (e.g., `080000376`)
    * **Company search by OIB** - Direct lookup using the 11-digit tax identification number (e.g., `81793146560`)
    * **`companyProfile`** - Comprehensive company information including status, legal form, legal representatives, shareholders, supervisory board members, share capital, and business activities (\~15s retrieval time)
    * **Certified Trade Register Extract** - Official PDF extract from Sudreg containing current company information (\~1m30s retrieval time)
    * **Financial Statements** - Balance sheets, profit & loss statements, notes, and profit distribution decisions from RGFI/FINA (\~1m30s retrieval time)
    * **Constitutional Documents** - Articles of association and minutes of establishment
    * **Registry Documents** - Registration decisions, announcements, OIB certificates, and other court filings

  For detailed information about Croatia's identifier system and available features, see our [Croatia documentation](/essentials/croatia).
</Update>

<Update label="Week 51, 2025">
  ## Platform

  ### Ownership Graph Enhancements

  We've significantly improved our ownership graph feature with better control and visualization:

  * **Budget control** - Set a maximum credit budget when requesting the ownership graph to control traversal costs
  * **Interactive visualization** - The ownership graph now displays as an interactive diagram with nodes representing companies and individuals, and edges showing ownership percentages
  * **Traversal transparency** - See exactly why the graph stopped (completed, budget exhausted, depth limit) and how many companies were fetched or skipped

  ### Application Redesign

  We've made numerous improvements to make the experience smoother and the interface has been globally enhanced.

  **Key improvements:**

  * **Automatic document listing** - Since document listing is free, it is now always requested automatically when you open a company
  * **New relationships view** - People appearing in multiple roles (shareholder + UBO for example) are now automatically grouped together, with advanced filters and customizable columns
  * **Interactive map for establishments** - The establishments section now displays an interactive map with Street View
  * **Real-time updates** - Requested data and documents now appear in real-time, without reloading the page
  * **Request history improvements** - Access all your previous requests through infinite scroll, and switch between "All requests" (organization scope) and "My requests" views
</Update>

<Update label="Week 50, 2025">
  ## Platform

  ### 📋 Legal Representative Data Model Enhancement

  * **Added `representedBy` field for corporate legal representatives** - When a company (personne morale) serves as a legal representative, you can now see the physical person who represents that company. This captures the "représentant permanent" (permanent representative) commonly found in French documents or "vertreten durch" in German documents.

  Example: When "SAS MANAGEMENT" is a legal representative, the API now shows both the company details and the individual (e.g., "Jean DUPONT") who acts on its behalf.

  ### ⚠️ Deprecations

  * **Removed `source` field from shareholders** - The `source` field has been temporarily removed from shareholder data. We're working on a more comprehensive solution for tracking data provenance that will be introduced in a future release.

  ## Countries

  ### 🇪🇸 Spain

  * **Improved speed and reliability** - Spanish company data operations are now significantly faster with parallel request handling and automatic retry on slow connections
  * **IRUS as primary identifier** - Spain now uses IRUS (Identificador Único del Registro de Sociedades) as the primary company identifier for document operations. Search by NIF/CIF still supported and returns the corresponding IRUS
  * **Available documents with pricing** - Trade register extracts and financial statements show pricing before download

  ### 🇮🇪 Ireland

  * **Full access to CRO documents** - You can now purchase and download documents from Ireland's Companies Registration Office:
    * **Company Printout** - Official trade register extract with current company details
    * **Letter of Status** - Official letter confirming company standing
    * **Annual Returns** - Yearly company filings including financial statements (B1C, B1)
    * **Constitutional Documents** - Company constitution and incorporation documents
    * **Director/Secretary Filings** - Appointment and resignation records (B10)
    * **Charge Documents** - Mortgage and charge registrations (C1, C6)
    * **Share Capital Documents** - Allotment and capital structure filings (B5, B7)
    * **Resolutions** - Special and ordinary shareholder resolutions (G1, G2)

  <Note>The average document download time is \~2 minutes.</Note>
</Update>

<Update label="Week 49, 2025">
  ## Platform

  ### 🚀 Onboarding Profiles

  We've expanded fast **onboarding-style** company retrieval (today: `POST /v2/company` with `mode: "onboarding"`; previously documented as the Onboarding Profile flow) to support more countries:

  * 🇧🇪 **Belgium (BE)**
  * 🇩🇰 **Denmark (DK)**
  * 🇫🇷 **France (FR)**
  * 🇳🇱 **Netherlands (NL)**
  * 🇸🇪 **Sweden (SE)**
  * 🇬🇧 **United Kingdom (GB)**
</Update>

<Update label="Week 48, 2025">
  ## Countries

  ### 🇸🇪 Sweden

  * **Offering access to more Bolagsverket documents** - You now have access to the following documents from the register :
    * **Certified Trade Register Extract** - Official & certified PDF extract from Bolagsverket containing information about the company (\~3 minutes retrieval time)
    * **Articles of association** - Official PDF from Bolagsverket indicating business activities, registered office of the company, and so on (\~ 3 minutes retrieval time)
    * **Statutes** - Official PDF from Bolagsverket containing information about the company (\~3 minutes retrieval time)
    * **Ultimate Beneficial Owners extract** - Official PDF from Bolagsverket containing information about the ultimate beneficial owners of the company (\~3 minutes retrieval time)
    * **Annual reports (all years compilation)** - Official PDF from Bolagsverket containing financial informations of the company (\~3 minutes retrieval time)
    * **Minutes (all years compilation)** - Official PDF from Bolagsverket containing notes from board and general meetings (\~3 minutes retrieval time)
    * **Current assignments** - Official PDF from Bolagsverket containing information about a person's or company's current assignements in other entities (\~3 minutes retrieval time)
  * **Ultimate Beneficial Owners** - Extracted from the **Ultimate Beneficial Owners extract**: Bolagsverket (the Swedish Companies Registration Office) reports control extent ("Omfattning"), not ownership percentage. Key difference: Multiple beneficial owners can each show 100% control because the percentage represents how much influence a person can exercise over the company, not their economic stake.
</Update>

<Update label="Week 47, 2025">
  ## Platform

  ### 🔄 Streaming Search

  * **Progressive search results** - Search endpoints now support streaming mode via the `stream=true` query parameter, enabling progressive result delivery as each search source completes. This provides faster time-to-first-result and better user experience, especially for countries with multiple search sources.
  * **Server-Sent Events (SSE)** - Streaming search uses SSE format with named events (`progress`, `complete`, `error`) for real-time result updates
  * **CLI support** - The `topo` CLI tool now supports `--stream` flag for streaming search results

  <Note>
    Streaming search is particularly beneficial for countries like Germany that
    query multiple sources (cached, live APIs). Use streaming to get cached
    results immediately (\~200ms) while live sources continue to fetch additional
    results in the background.
  </Note>

  For detailed documentation and code examples, see our [Search guide](/essentials/search).

  ### Application performance

  Minor improvements of the backoffice interface performance.

  ## Countries

  ### 🇩🇪 Germany

  * **Hybrid search architecture** - Germany now uses three complementary search sources:
    * **Fast search** - Fast results from weekly-refreshed active company data
    * **Live Unternehmensregister search** - Direct API queries for active companies in HRB, HRA, Genossenschaftsregister, Partnerschaftsregister, and Gesellschaftsregister registers
    * **Live Handelsregister VR search** - Direct queries for non-profit organizations in the VR register
  * **Enhanced search recall and robustness** - By combining cached and live sources, search now provides higher recall and better fault tolerance. If one source fails, others continue to provide results.
</Update>

<Update label="Week 46, 2025">
  ## Platform

  ### 💳 Auto Top-Up

  * **Automatic credit replenishment** - Your account credits are automatically topped up when your balance falls below a configurable threshold. Supports both instant payment methods (cards) and asynchronous methods (SEPA, ACH).

  ## Countries

  ### 🇩🇪 Germany

  * **Improved speed** - Enhanced performance across all German company data operations, resulting in faster response times for company profile retrieval, document listing, and document downloads.
  * **Vereinsregister (Non-Profit Register) support** - Introduced support for the Vereinsregister (VR register), enabling access to non-profit organization data in Germany. Currently available features:
    * **Trade Register Extract (Aktueller Abdruck)** - Official PDF extract from the Vereinsregister containing current company information

  ### 🇷🇴 Romania

  * **Initial support for Romania** - We're excited to announce support for Romanian companies with our integration of the ONRC (Romanian trade register). Currently available features:
    * **Company search by name** - Find Romanian companies using their registered business names
    * **Company search by tax identification number (CUI)** - Find Romanian companies using their Romanian tax numbers
    * **Company search by Ordine Rc Number (Romanian company registration number)** - Find Romanian companies using their national Romanian registration numbers
    * **Certified Trade Register Extract** - Official & certified PDF extract from ONRC containing information about the company (\~2 minutes retrieval time)
    * **`companyProfile`** - Access comprehensive company information including status, legal form, address, legal representatives, shareholders, company establishments and much more
</Update>

<Update label="Week 45, 2025">
  ## Countries

  ### 🇩🇪 Germany

  * **Improved speed and robustness** - Enhanced performance and reliability across all German company data operations, including company profile retrieval, document listing, and document downloads.

  ### 🇭🇺 Hungary

  * **Initial support for Hungary** - We're excited to announce support for Hungarian companies with our integration of the Cégszolgálat (Hungarian company information register). Currently available features:
    * **Company search by name** - Find Hungarian companies using their registered business names
    * **Company search by registration number** - Find Hungarian companies using Hungarian registration numbers
    * **Company search by tax number** - Find Hungarian companies using their national Hungarian tax numbers
    * **`companyProfile`** - Access comprehensive company information including status, legal form, address, legal representatives and share capital
    * **Trade Register Extract** - Official PDF extract from Cégszolgálat containing information about the company (\~2 minutes retrieval time)
</Update>

<Update label="Week 44, 2025">
  ## Countries

  ### 🇸🇪 Sweden

  * **Initial support for Sweden** - We're excited to announce support for Swedish companies with our integration of the Bolagsverket (Swedish Companies Registration Office) register! Currently available features:
    * **Company search by name** - Find Swedish companies using their registered business names
    * **Company search by registration number** - Direct lookup using Swedish registration numbers
    * **`companyProfile`** - Access comprehensive company information including status, legal form, address, legal representatives and other key persons
    * **`availableDocuments`** - Access annual reports from Swedish companies when available (ZIP format)

  ## Platform

  * Improved stability in Documents section.
  * When a document is available both in a PDF and non-PDF format, when clicking on the PDF download icon then the PDF version of the file opens correctly.
  * Removed last year financial statement shortcut support as part of the document ID cleanup.
</Update>

<Update label="Week 43, 2025">
  ## Countries

  ### 🇨🇾 Cyprus

  * **Initial support for Cyprus** - We're excited to announce support for Cypriot companies with our integration of the DRCOR (Department of Registrar of Companies and Official Receiver) register! Currently available features:
    * **Company search by name** - Find Cypriot companies using their registered business names
    * **Company search by registration number** - Direct lookup using Cyprus registration numbers with Greek prefixes (ΗΕ, ΕΕ, ΑΕ, Σ)
    * **`companyProfile`** - Access comprehensive company information including status, legal form, address, and legal representatives
    * **Trade Register Extract (Study File)** - Official PDF extract from DRCOR containing complete company registration history, officers, shareholders, filings, and status since incorporation (\~2 minutes retrieval time)
    * **Multiple company types** - Support for Private Limited Companies, Overseas Companies, Sole Traders, and Partnerships

  For detailed information about Cyprus's unique identifier system with Greek prefixes, see our [Cyprus documentation](/essentials/cyprus).

  ### Estonia 🇪🇪

  * You can now **search for available documents** !
  * **Trade Register Extract** - Official PDF extract from RIK containing complete and extensive company information
  * **Articles of Association** (PDF)
  * **Annual reports** (PDF or XBRL)
</Update>

<Update label="Week 42, 2025">
  ## Countries

  ### 🇨🇭 Switzerland

  **Enhanced Integration for Speed and Reliability**

  We've completely reworked our integration with the Swiss business register to deliver significantly improved performance and reliability. The new implementation ensures faster data retrieval and more robust handling of edge cases.

  Additionally, the **certificate of incorporation** is now available for Swiss companies, providing access to the official founding document.

  ## Platform

  * Improved data management in web interface (request status indicator and data refresh)
  * Fixed display of the map when a
    company has registered headquarters
  * Fixed data points selection when
    changing countries, i.e : if "available documents" is available in France but
    not in Estonia, then when switching to Estonia the datapoint should not be
    checked and disappear from the credit count.
</Update>

<Update label="Week 41, 2025">
  ## Platform

  ### 🔄 Request Metadata Field

  We've introduced a new `metadata` field on the `/company` endpoint that enables stateless request tracking without requiring local state management.

  **Key Features:**

  * **Pass custom metadata** - Include any JSON-serializable data (object, string, number) with your company data requests
  * **Automatic passthrough** - Your metadata is returned with polling responses and webhook notifications
  * **Stateless tracking** - Associate requests with your internal systems without maintaining a local state database
  * **Perfect for webhooks** - Correlate asynchronous webhook callbacks with the original request context

  ## Countries

  ### 🇩🇪 Germany

  **Improved Document Download Robustness**

  We've enhanced the reliability of document downloads for German companies. Documents are now automatically preloaded in the background when you list available documents, ensuring they're ready when you need them.

  <Note>
    While we've significantly improved reliability, the Unternehmensregister and
    Handelsregister can be quite unstable at times, so we cannot guarantee 100%
    success rates for document downloads. Our system now handles these
    instabilities gracefully with automatic retries.
  </Note>

  ### 🇪🇸 Spain

  **Enhanced Document Operations**

  We've significantly improved the speed and reliability of document operations for Spanish companies.
</Update>

<Update label="Week 40, 2025">
  ## Platform

  ### 🔔 Company Monitoring (Beta)

  <Callout type="info" emoji="🚀">
    **New Feature: Real-time Company Monitoring with AI-powered Change Detection**
  </Callout>

  We're excited to introduce Company Monitoring, a powerful new system that tracks changes in company data and sends real-time webhook notifications when important updates occur.

  **Key Features:**

  * **Automated daily checks** - Monitors run every 24 hours to detect changes in company profiles, ownership, and legal status
  * **AI-powered change detection** - Intelligently identifies meaningful changes while filtering out noise
  * **Smart categorization** - Changes are classified into 7 categories: `status`, `address`, `ownership`, `financial`, `legalRepresentatives`, `other`, and `disappeared`
  * **Real-time webhooks** - Instant notifications via webhook when changes are detected
  * **Automatic deactivation** - Monitors automatically stop when companies cease to exist, with a final notification

  **Supported Countries:**

  Currently available in 16+ countries: 🇦🇹 AT, 🇧🇪 BE, 🇨🇭 CH, 🇨🇿 CZ, 🇩🇪 DE, 🇩🇰 DK, 🇪🇸 ES, 🇫🇮 FI, 🇫🇷 FR, 🇬🇧 GB, 🇮🇪 IE, 🇲🇹 MT, 🇳🇱 NL, 🇳🇴 NO, 🇵🇱 PL, 🇵🇹 PT

  <Note>
    This feature is currently in beta. We're actively collecting feedback to
    refine change detection accuracy and expand country coverage. Contact
    [support@topograph.co](mailto:support@topograph.co) to participate in the beta program.
  </Note>

  For detailed API documentation and integration guide, see our [Company Monitoring documentation](/essentials/monitoring).

  ### 📄 Document Metadata Simplification

  We've simplified document metadata fields for better consistency and clarity:

  * **Removed `nameInEnglish` and `descriptionInEnglish` fields** - These redundant fields have been removed from the API response
  * **Standardized `name` field** - Now always contains the original document name in the local language of the country where it was issued
  * **Standardized `description` field** - Now always contains the document description in English

  This change provides a more predictable API structure and eliminates confusion about which field to use for document identification and description.

  ## Countries

  ### 🇩🇪 Germany

  **Intelligent ID-Based Search Enhancements**

  We've significantly improved the German company search with intelligent ID parsing and prioritization:

  * **ID Extraction**: We parse queries to extract and validate German company ID components (bureau/court, register type like HRB/HRA, registration number) from natural language queries. Includes full validation against all 154 known bureaus and 6 register types, with fuzzy matching for variations (e.g., "Munchen" matches "München").

  * **Full ID Precision**: When all three ID components are detected and yield an exact match, returns a single precise result without name search fallback.

  * **Partial ID Prioritization**: For queries with 1-2 ID components, partial ID matches are ranked first, followed by name search results (deduplicated by ID).

  * **Robust Fallback**: If full ID search fails or query lacks ID components, seamlessly falls back to comprehensive name search.

  This enhancement provides precision for ID-based lookups while maintaining broad discoverability for general searches. Supports queries like "München HRB 228960" (exact single result) or "HRB 12345" (prioritized partial matches).

  ### 🇵🇱 Poland

  **Ultimate Beneficial Owners Support**

  We've added comprehensive UBO (Ultimate Beneficial Owner) support for Polish companies through integration with CRBR (Centralny Rejestr Beneficjentów Rzeczywistych):

  * **`ultimateBeneficialOwners`** - Access beneficial ownership information from Poland's official UBO register for both KRS and NIP companies
  * **`ubo_extract` document** - Official PDF extract from CRBR, conditionally available only when UBO data exists

  **Financial Documents Support**

  Added support for retrieving financial statements for Polish companies with automatic XML-to-PDF conversion:

  * **Automatic XML conversion** - Financial documents in XML format (Ministry of Finance schema) are automatically converted to human-readable PDF format using the official Polish government visualization tool at [e-sprawozdania.mf.gov.pl](https://e-sprawozdania.mf.gov.pl/ap/)
  * **Dual format availability** - Both the original XML and converted PDF are stored and accessible
  * **Seamless handling** - Conversion happens transparently during document retrieval with graceful fallback to XML if conversion fails

  Note: Due to technical limitations of the Polish register portal, document format information is not available during listing and is only determined when documents are downloaded.
</Update>

<Update label="Week 39, 2025">
  ## Platform

  ### 📊 AI-Powered Financial Data Extraction (Beta)

  <Callout type="info" emoji="🤖">
    **Beta Feature: Structured Financial Data Extraction**
  </Callout>

  We're excited to introduce automatic extraction of structured financial data from financial statements using AI. This beta feature analyzes financial statement documents and extracts key financial metrics into a structured, machine-readable format.

  **Key Features:**

  * **Automatic extraction** - No additional configuration needed; extraction happens automatically during document post-processing
  * **Comprehensive data capture** - Extracts income statement items, balance sheet components, fiscal periods, and accounting metadata
  * **Multi-language support** - Works with financial statements in various languages and formats
  * **Structured output** - Financial data is returned in the `extractedData.financialData` field within financial statement documents

  **Extracted Data Includes:**

  * Income statement: revenue, operating income, depreciation, net income
  * Balance sheet: assets (fixed/current), equity, liabilities (current/non-current)
  * Metadata: fiscal year dates, approval date, currency, accounting standard, statement type

  <Note>
    This feature is currently in beta. The data model may evolve as we refine
    extraction accuracy and expand coverage. We welcome your feedback to help
    improve this feature.
  </Note>

  For detailed information about the data model and structure, see our [Financial Data Extraction documentation](/essentials/financial-data-extraction).

  ### 📄 Automatic PDF Document Conversion

  We've introduced automatic conversion of non-PDF documents to PDF format for easier handling and viewing. Supported input formats include:

  **Images:** JPG, JPEG, PNG, TIFF/TIF **Tabular:** CSV, XLS, XLSX **Documents:** DOC, DOCX, RTF, TXT, XPS, PPT, PPTX

  **How it works:** When a raw document is retrieved, our system automatically converts it to PDF in the background. The converted PDF typically becomes available approximately 20 seconds after the original raw document is obtained. Both the original format and the converted PDF are available for download in the frontend interface.

  ### 🎨 Improved Document Download Interface

  The frontend document download experience has been completely redesigned with significant UX improvements:

  * **Enhanced metadata display** - Richer, more organized presentation of document details including descriptions, dates, and periods
  * **Seamless raw + PDF handling** - Clear visual distinction between original documents and their PDF conversions with dedicated download actions for each
  * **Improved row interactions** - Intuitive click-to-request functionality for pending documents with visual feedback
  * **Better visual hierarchy** - Cleaner layout with icon-only type column and expanded space for document names and metadata

  <Frame>
    <img src="https://mintcdn.com/semaphore/LMnLGVtYyLfyM4k7/images/available-documents-screenshot.png?fit=max&auto=format&n=LMnLGVtYyLfyM4k7&q=85&s=12f477954eeb4802891a6050cd2d7406" alt="Improved documents table with enhanced metadata and PDF conversion support" width="1838" height="1412" data-path="images/available-documents-screenshot.png" />
  </Frame>

  ### ⚠️ Deprecations

  * **Removed `jobs_in_progress` field** - This legacy internal field has been removed from API responses for security and clarity
  * **Deprecated `main_article_of_association` smart document mapping** - We've removed the automatic mapping of document IDs to `main_article_of_association`. We're revisiting this feature with an improved approach and welcome feedback on your document mapping needs
  * **Removed `isConsolidated` field** - This field has been removed from the API response as we were unable to provide consistently accurate information across different jurisdictions and document types. We plan to revisit this feature in future updates with improved data validation and source-specific accuracy indicators.

  ### 🔒 API Response Improvements

  * **Cleaner error handling** - The `errors` field is now optional and only appears when errors actually occur, reducing response clutter

  ## Countries

  ### 🇩🇪 Germany

  * **Major rewrite for speed and robustness** - We rebuilt the Germany integration to significantly improve performance and reliability across all flows: company data retrieval, document listing, and document downloads.

  ### 🇫🇮 Finland

  * **Initial support for Finland** - We're excited to announce support for Finnish companies with our integration of the Finnish business registers! Currently available features:
    * **Company search by name** - Find Finnish companies using their registered business names
    * **Company search by registration number** - Direct lookup using Finnish company registration numbers
    * **`companyProfile`** - Access comprehensive company information from Finnish business registers
    * **Trade register extract support** - Full document retrieval functionality for Finnish companies
    * **Article of Association support** - Access to company articles of association documents
</Update>

<Update label="Week 38, 2025">
  ## Platform

  ### 📄 Automatic PDF Document Conversion

  We've introduced automatic conversion of non-PDF documents to PDF format for easier handling and viewing. Supported input formats include:

  **Images:** JPG, JPEG, PNG, TIFF/TIF **Tabular:** CSV, XLS, XLSX **Documents:** DOC, DOCX, RTF, TXT, XPS, PPT, PPTX

  **How it works:** When a raw document is retrieved, our system automatically converts it to PDF in the background. The converted PDF typically becomes available approximately 20 seconds after the original raw document is obtained. Both the original format and the converted PDF are available for download in the frontend interface.

  ### 🎨 Massively Improved Document Download Interface

  The frontend document download experience has been completely redesigned with significant UX improvements:

  * **Enhanced metadata display** - Richer, more organized presentation of document details including descriptions, dates, and periods
  * **Seamless raw + PDF handling** - Clear visual distinction between original documents and their PDF conversions with dedicated download actions for each
  * **Improved row interactions** - Intuitive click-to-request functionality for pending documents with visual feedback
  * **Better visual hierarchy** - Cleaner layout with icon-only type column and expanded space for document names and metadata

  <Frame>
    <img src="https://mintcdn.com/semaphore/LMnLGVtYyLfyM4k7/images/available-documents-screenshot.png?fit=max&auto=format&n=LMnLGVtYyLfyM4k7&q=85&s=12f477954eeb4802891a6050cd2d7406" alt="Improved documents table with enhanced metadata and PDF conversion support" width="1838" height="1412" data-path="images/available-documents-screenshot.png" />
  </Frame>

  ### ⚠️ Field Updates

  * **Removed `isConsolidated` field** - This field has been removed from the API response as we were unable to provide consistently accurate information across different jurisdictions and document types. We plan to revisit this feature in future updates with improved data validation and source-specific accuracy indicators.

  ## Countries

  ### 🇮🇹 Italy

  * **Added support for closed/inactive companies** - Implemented fallback mechanism to retrieve data for closed/inactive companies not available in InfoCamere blocchi
  * **Enhanced shareholder data structure** - Fixed missing `id` and `countryCode` fields for company shareholders to ensure consistent data structure
</Update>

<Update label="Week 37, 2025">
  ## Countries

  ### 🇫🇷 France

  * **Improved KBis retrieval** - We've made K-Bis acquisition both faster and more resilient

  ### 🇮🇪 Ireland

  * **Enhanced search robustness** - Improved error handling for company searches, ensuring more reliable search results when companies are not found
  * **Better not found company handling** - Search operations now return empty results instead of errors when companies don't exist in the CRO register, while company profile requests properly throw not found exceptions
  * **Improved address parsing** - Enhanced address geocoding accuracy by including Eircode (Irish postal codes) in the address parsing process

  ### 🇮🇹 Italy

  * **Fixed financials retrieval bug**. We fixed the bug that prevented the retrieval of financial statements for Italian companies.

  ### 🇨🇿 Czechia

  * **Initial support for Czechia** - We're excited to announce support for Czech companies with our integration of the Czech business registers (ARES & RZP)! Currently available features:
    * **Company search by name** - Find Czech companies using their registered business names
    * **Company search by registration number** - Direct lookup using Czech company registration numbers
    * **`companyProfile`** - Access comprehensive company information from both ARES (Administrative Register of Economic Subjects) and RZP (Trade Register) registers
    * **Trade register extract support** - Full document retrieval functionality for Czech companies from the RZP register

  ### 🇦🇹 Austria

  * **Added trade register extract support** - Full document retrieval functionality for Austrian companies from the Firmenbuch register

  ### 🇵🇱 Poland

  * **Restored and enhanced Poland support** - Complete rewrite of Poland integration with improved data mapping and document retrieval
  * **Dual register support** - Full integration with both KRS (National Court Register) and CEIDG (Central Registration of Business Activity) registers
  * **Enhanced document retrieval** - Now supports multiple document types:
    * Trade register extracts (current) for both KRS and CEIDG companies
    * Historical trade register extracts (full) for KRS companies
    * Representatives/proxy documents for CEIDG sole proprietorships
  * **Improved data mapping** - Better handling of company statuses, legal forms, and registration numbers with proper prefix support (krs- and nip-)
  * **Fixed PDF document downloads** - Resolved issues with document retrieval returning JSON instead of PDF files
</Update>

<Update label="Week 36, 2025">
  ## Platform

  ### 🔍 Enhanced Search Error Management

  * **Improved error handling and user guidance** - Search operations now provide clearer, more actionable error messages when queries fail due to user input issues
  * **Better API documentation** - OpenAPI specifications now include comprehensive error response examples for both 400 (user errors) and 500 (server errors) status codes
  * **Consistent error format** - Streamlined error response structure with unified guidance messages

  ### 📊 Shareholder Capital Fields Restructuring

  * **Replaced `shareNominalPrice` with two distinct fields:**
    * `nominalCapitalHeld` - Total face value or par value of all shares owned by the shareholder
    * `paidInAmount` - Actual amount paid by the shareholder, including any share premium
  * **Key improvements:**
    * Better support for complex shareholding structures with multiple share classes
    * Clear distinction between legal capital (nominal) and actual investment (paid-in)
    * More accurate representation of shareholder contributions
    * Alignment with international accounting standards

  ### 📅 Enhanced Company Date Tracking

  * **Introduced `incorporationDate` field** - Now clearly distinguishes between when a company was legally incorporated/founded versus when it was registered with trade authorities

  ## Countries

  ### 🇲🇹 Malta

  * **Much improved robustness** - Significantly enhanced system stability and reliability for Malta company data retrieval with better error handling and recovery mechanisms.
  * **Restored document retrieval** - Fixed document access functionality that was experiencing issues, ensuring reliable document retrieval for Maltese companies.
</Update>

<Update label="Week 31, 2025">
  ## Platform

  * **Fixed webhook delivery issues** - Resolved an issue affecting webhook delivery for asynchronous job completions and failed jobs. Webhooks are now reliably sent for all job status updates, ensuring dependable real-time notifications.

  ## Countries

  ### 🇨🇳 China

  * **Enhanced robustness and improved identifier standardization** - Strengthened China implementation with better error handling and system stability. Standardized company identification around the **Unified Social Credit Code** as the single, authoritative 18-character alphanumeric identifier for all Chinese companies and organizations, replacing previous inconsistent identifier formats.

  ### 🇲🇹 Malta

  * **Improved data accuracy and performance** - Enhanced Malta company data retrieval with more reliable parsing and faster processing times.

  ### 🇩🇰 Denmark

  * **Financial statements and trade register extract support** - Enhanced Denmark implementation with full document retrieval capabilities. Added support for financial statements (annual reports) and official CVR trade register extracts, completing our comprehensive Danish business register integration.

  ### 🇪🇸 Spain

  * **Enhanced robustness** - Improved stability and reliability of Spanish company data retrieval with better error handling and system resilience.
</Update>

<Update label="Week 30, 2025">
  ## Platform

  * Improved document download experience in the customer portal, ensuring faster and more reliable access to retrieved files.

  ## Countries

  ### 🇫🇷 France

  * Significantly improved the speed and reliability of Ultimate Beneficial Owner (UBO) data parsing for French companies.
</Update>

<Update label="Week 28, 2025">
  ## Countries

  ### 🇩🇰 Denmark

  **Complete Danish Business register Support**

  We're excited to announce support for Danish companies through our integration with the Danish Central Business Register (CVR)! This implementation features a sophisticated hybrid approach combining formal data mapping with AI-powered enrichment.

  **Available Data Points:**

  * **`companyProfile`** - Complete company information with legal representatives, shareholders, establishments, and other key personnel from the CVR register
  * **`ultimateBeneficialOwners`** - Dedicated extraction of beneficial owners (UBOs) separate from legal shareholders, providing enhanced ownership transparency

  **Technical Implementation:**

  * **Direct CVR Integration** - Real-time access to Denmark's authoritative business database

  **Coming soon**

  * ***Documents support***
</Update>

<Update label="Week 27, 2025">
  ## Platform

  ### 💳 New Billing Dashboard & Analytics (Admin-only)

  Your organisation admins now have access to a brand-new billing section that makes it easier than ever to understand how credits are being used.

  * **Flexible global filters** – Pick any date range (or quick presets) and choose exactly which users – plus the API – you want to analyse.
  * **Usage analytics** – Interactive bar chart that flips between daily, weekly, or monthly views and can be split by individual user or total.
  * **Per-request cost tracking** – A detailed table shows the exact credit cost for every request, including ones that incurred no charge.
  * **CSV export** – Download the full, filtered history (not just the current page) for deeper analysis in your favourite BI tool.

  Head over to *Billing → Dashboard* (admins only) to explore the new insights.

  <Frame>
    <img src="https://mintcdn.com/semaphore/KkXf_mDSDAj2VADj/images/billing-dashboard-overview.png?fit=max&auto=format&n=KkXf_mDSDAj2VADj&q=85&s=7fb79b5f86815ea623e2b3959ceb3a4e" alt="Billing dashboard – usage analytics" width="2418" height="1640" data-path="images/billing-dashboard-overview.png" />
  </Frame>

  <div className="mt-2" />

  <Frame>
    <img src="https://mintcdn.com/semaphore/KkXf_mDSDAj2VADj/images/billing-dashboard-history.png?fit=max&auto=format&n=KkXf_mDSDAj2VADj&q=85&s=7ea69030cc8fe4e62ed83c730d5834c1" alt="Billing dashboard – request history" width="2434" height="1624" data-path="images/billing-dashboard-history.png" />
  </Frame>

  ### 🔧 Field Naming Standardization

  * **Renamed `englishName` to `englishTranslation`** - Updated field naming to align with our API naming strategy, maintaining consistency with other translated fields like `legalForm`. This change ensures a more coherent and predictable API structure across all data points.

  ## Countries

  ### 🇮🇹 Italy

  * **Enhanced search validation** - Search queries must now be at least 2 characters long and cannot be overly broad. Clear error messages guide users when queries are too short or return too many results
  * **Improved legal form parsing** - Enhanced accuracy and standardization of 70+ Italian legal forms for better company classification. See complete list in our [Italy documentation](/essentials/italy#legal-forms)
  * **Added establishments support** - Integrated establishment data with comprehensive location and activity information, including active status indicators
  * **Enhanced shareholder parsing** - Significant improvements to shareholder data extraction, now enabling full support for `graph` ownership tree analysis
  * **Added search by VAT and tax code** - New search functionality allowing company lookup using Italian VAT numbers (Partita IVA) or tax codes (Codice Fiscale)

  ### 🇬🇧 United Kingdom

  * **Improved legal form and role mapping** - Enhanced accuracy and standardization of 40+ legal forms and 60+ officer roles with direct mapping to Topograph standards. See complete lists in our [UK documentation](/essentials/uk#legal-forms)
  * **Standardized company identifiers** - Cleaned up identifier structure with consistent naming (`companiesHouseNumber` and `jurisdiction`)
  * **Guaranteed SIC codes** - Direct SIC codes from Companies House with AI mapping to NACE and ISIC international standards
</Update>

<Update label="Week 26, 2025">
  ## ✨ Week 26 Highlights

  * **🇮🇪 Ireland Launch** - New support for Irish entities with CRO register integration for company search and profiles
  * **🚀 New Topograph Portal** - Deployed a heavily improved version of our customer portal with enhanced performance, better async handling, and modern design
  * **🔧 Enhanced Activity Code Mapping** - Improved standardization and accuracy of business activity codes across France, Belgium, and Switzerland

  ## Platform

  ### 🚀 Portal Redesign (app.topograph.co)

  We've completely redesigned and rebuilt our customer portal from the ground up, delivering a significantly improved user experience with modern architecture and enhanced capabilities.

  <Frame className="mt-6">
    <img src="https://mintcdn.com/semaphore/KkXf_mDSDAj2VADj/images/screenshot-2025-06-26-17-01-34.png?fit=max&auto=format&n=KkXf_mDSDAj2VADj&q=85&s=c97701cd8b219e9dc230a32f702ecb4f" alt="Redesigned Topograph customer portal" width="3024" height="1646" data-path="images/screenshot-2025-06-26-17-01-34.png" />
  </Frame>

  **Key Improvements:**

  * **Enhanced Performance** - Faster navigation and reduced loading times across all portal features
  * **Granular Data Point Control** - Precise selection and management of requested data points for optimized queries
  * **First-Class Async Support** - Built-in asynchronous request handling with real-time progress tracking and status updates
  * **Modern Design** - Refreshed interface with improved usability and visual hierarchy
  * **New Data Points Integration** - Native support for Establishments and Other Key People with dedicated UI components

  **Coming Soon:**

  * **Usage Tracking** - Comprehensive analytics and monitoring of API consumption
  * **Request History** - Detailed audit trail of all API requests and responses
  * **Interactive Ownership Graph** - Visual representation of company ownership structures powered by our enhanced graph engine

  ## Countries

  ### 🇮🇪 Ireland

  * **Initial support for Ireland** - We're excited to announce support for Irish companies with our integration of the Companies Registration Office (CRO)! Currently available features:
    * **Company search by name** - Find Irish companies using their registered business names
    * **Company search by registration number** - Direct lookup using CRO registration numbers
    * **`companyProfile`** - Access comprehensive company information from the Companies Registration Office
    * **Document support coming soon** - Full document retrieval functionality will be available in upcoming releases

  ### 🇫🇷 France

  * **Fixed activity code mapping** - Resolved issues with business activity code standardization and improved accuracy of sector classification for French companies

  ### 🇧🇪 Belgium

  * **Fixed activity code mapping** - Enhanced processing and standardization of Belgian NACE codes, ensuring better alignment with international classification standards

  ### 🇨🇭 Switzerland

  * **Fixed activity code mapping** - Improved mapping of Swiss business activity codes (NOGA) to standardized formats, providing more accurate industry classification
</Update>

<Update label="Week 25, 2025">
  ## ✨ Week 25 Highlights

  * **🎯 Enhanced Ownership Graph Analysis** - Improved UBO identification with dual calculation methods and better data visualization
  * **🇩🇪 Intelligent German Shareholder Computation** - Multi-source extraction strategy with automatic fallbacks
  * **🇵🇱 Poland Launch** - Full support for Polish entities with CEIDG and KRS register integration
  * **🇦🇹 Austria Launch** - We're excited to announce support for Austrian companies, financial statements and company informations are available.
  * **🇱🇺 Luxembourg Trade register Extract** - New comprehensive document access (up to 1 hour retrieval time)

  ## Platform

  ### 🎯 Enhanced Ownership Graph Analysis

  We've launched improved ownership graph analysis with better UBO identification and cleaner data presentation, tested with German companies and providing cross-checking capabilities against Transparenzregister data.

  **Key Improvements:**

  * **Dual calculation methods** - Accumulation and domination approaches with 25% ownership threshold
  * **Corporate UBO flagging** when ownership chains end at companies rather than individuals
  * **Nodes and edges structure** for clearer ownership visualization with cross-border support
  * **Better error handling** with partial results, circular ownership detection, and entity deduplication

  ## Countries

  ### 🇩🇪 Germany

  **Enhanced Multi-Source Shareholder Data Extraction**

  * **Three-source strategy** - Gesellschafterliste extraction, trade register analysis, and financial statement analysis *(NEW)*
  * **Multi-source validation** combines results from different document types for better accuracy
  * **Transparenzregister cross-checking** and automatic fallbacks when primary data sources are unavailable
  * **Improved Handelsregister fallback** for document listing and retrieval with exponential backoff retry logic

  ### 🇵🇱 Poland

  **Comprehensive Polish Business register Support**

  * **Dual register coverage** - CEIDG (individual businesses) and KRS (companies) with smart ID prefixes
  * **Complete data points** - `companyProfile` and `availableDocuments` tailored to entity type
  * **Document support** - Trade register extract for both registers, historical extracts for KRS entities

  ### 🇪🇸 Spain

  * **Fixed document retrieval and listing** - Resolved deployment issue affecting Spanish document access
  * **Improved parsing of activities** - Enhanced extraction and processing for better accuracy

  ### 🇮🇹 Italy

  * **Improved parsing of activities** - Enhanced extraction and processing for better accuracy

  ### 🇫🇷 France

  * **Fixed Ultimate Beneficial Owner retrieval** - Resolved UBO data extraction issues for reliable beneficial ownership information

  ### 🇲🇹 Malta

  * **Switched companyProfile to async process** - Automatic retry mechanism to overcome register instability

  ### 🇵🇹 Portugal

  * **Improved shareholder parsing** - Enhanced extraction and processing of shareholder data

  ### 🇱🇺 Luxembourg

  * **Added trade register extract support** - Comprehensive functionality for Luxembourg companies *(Note: May take up to one hour due to register processing time)*

  ### 🇦🇹 Austria

  * **`companyProfile`** - Access comprehensive company information and legal representatives from the Austrian Firmenbuch
  * **`availableDocuments`** - Document categorization for financial statements and other documents
</Update>

<Update label="Week 24, 2025">
  ## Platform

  * **Renamed mostCompleteStatus**: The mostCompleteStatus document category has been renamed to mostCompleteArticleOfAssociation to better align with our naming conventions.

  ## Countries

  ### 🇳🇱 Netherlands

  * **Improved system reliability** for Dutch company data retrieval, enhancing stability and reducing error rates.
  * **Fixed trade register extract ID consistency** - Resolved an issue where document IDs would change when only the document was required, ensuring stable document references.

  ### 🇬🇧 United Kingdom

  * **Added establishments support** - Integrated with the UK Companies House establishments endpoint to retrieve branch offices, subsidiaries, and other affiliated locations for UK companies.
  * **Many improvements** - Enhanced documents metadata accuracy, fixed trade register extract listing issues, and improved overall system reliability for UK company data retrieval.

  ### 🇫🇷 France

  * **Fixed establishments data** - Resolved establishment identification by adding SIRET as ID and corrected establishment names for improved accuracy and consistency.

  ### 🇳🇴 Norway

  * **Added establishment IDs** - Enhanced establishments data by adding proper unique identifiers, improving data structure and referencing capabilities.

  ### 🇩🇪 Germany

  * **Fixed company status for cached requests** - Resolved an issue where company status might be returned as unknown when retrieving stored company data, ensuring accurate status information.

  ### 🇵🇹 Portugal

  * **Restored document retrieval** - Fixed document access functionality after adapting to changes in the Portuguese register's retrieval workflow, ensuring reliable document retrieval for Portuguese companies.
</Update>

<Update label="Week 23, 2025">
  ## Platform

  <Callout type="info" emoji="🚀">
    **Major Data Model Enhancements**
  </Callout>

  We are progressively rolling out these data model enhancements to our supported countries, depending on the availability of data in the currently connected registers. This means that not all enhancements may be available for every country immediately, but coverage will expand as register data allows.

  * **Establishments** <Icon icon="building" color="#3B82F6" /> - Now you can retrieve all establishments associated with a company, including branch offices, subsidiaries, and other affiliated locations that operate under the parent company's legal identity. This helps you understand a company's physical presence and operational footprint.

  * **Other Key People** <Icon icon="users" color="#8B5CF6" /> - Introducing a new data point to capture important company personnel beyond legal representatives. This includes board members, auditors, commissioners, and other significant roles. Unlike legal representatives who have binding authority, Other Key People provides visibility into the broader governance and oversight structure of a company.

  * **Phone Numbers** <Icon icon="phone" color="#10B981" /> - Companies can now include multiple phone numbers in E.164 format (e.g., +33123456789), making it easier to establish contact through official channels.

  * **Website** <Icon icon="globe" color="#F59E0B" /> - Retrieve the official company website URL directly from the API response, providing quick access to the company's online presence.

  * **Status Details (Beta)** <Icon icon="info-circle" color="#EF4444" /> - We're introducing `statusDetails`, which provides enriched information about company status changes, including closure reasons, liquidation details, and important dates. <strong>The data model for status details is highly likely to evolve</strong> as we gather feedback and adapt to the diversity of register data. As this feature is in beta, we're actively collecting feedback to refine the data structure and ensure it meets your needs.

  * **Topograph Standard Roles Revision** <Icon icon="users" color="#8B5CF6" /> - The roles in Topograph Standard for legal representatives have been revised to cover a broader range of situations and to ensure there is no overlap with Other Key People. This provides clearer, more accurate role classification across jurisdictions.

  ## Countries

  ### 🇳🇴 Norway

  * **Initial support for Norway** - We're excited to announce support for Norwegian companies, with our integration of the Norwegian Business register (Brønnøysundregistrene)! Currently available data points:
    * `companyProfile` - Access comprehensive company information, legal representatives, other key people and establishments from the Norwegian Business register (Brønnøysundregistrene)
    * Official trade register extract - Access an official PDF extract providing comprehensive company information including all registered data, roles, and establishments. Available in English.
</Update>

<Update label="Week 22, 2025">
  ## Platform

  * **Extended data model to include establishment logic**, enhancing our ability to capture and process subsidiary and branch office information across all supported countries.
  * **New values in Topograph Standard for roles**

  ## Countries

  ### 🇫🇷 France

  * **Added establishments support**, enabling retrieval of subsidiary and branch office information for French companies.
  * **Fixed UBO parsing**, improving accuracy and reliability of Ultimate Beneficial Owner data extraction.
</Update>

<Update label="Week 21, 2025">
  ## Countries

  ### 🇫🇷 France

  * **Fixed access to UBO extract**, ensuring reliable retrieval of Ultimate Beneficial Owner information.
</Update>

<Update label="Week 16, 2025">
  ## Platform

  * **Enhanced financial statement metadata quality** for availableDocuments, improving accuracy and consistency of document classification and information retrieval.

  ## Countries

  ### 🇪🇸 Spain

  * **Improved document retrieval system** with enhanced robustness and significantly faster processing times, ensuring more reliable access to Spanish company documents.
</Update>

<Update label="Week 15, 2025">
  ## Countries

  ### 🇳🇱 Netherlands

  * **Fixed document retrieval and companyProfile** to adapt to recent changes on the KVK website, restoring full functionality for Dutch company data access.

  ### 🇭🇰 Hong Kong

  * **Restored `companyProfile` and `registerExtract` functionality** and significantly improved system robustness for Hong Kong data retrieval.
</Update>

<Update label="Week 14, 2025">
  ## Platform

  <Callout type="info" emoji="🌟">
    **Key Feature Release**
  </Callout>

  * **Company Detention Tree (Beta)** <Icon icon="diagram-project" color="#16A34A" /> - Introducing `graph`, a new datapoint that allows you to retrieve the complete detention tree of a company. This feature helps visualize company ownership structures and can assist in identifying potential Ultimate Beneficial Owners (UBOs). To use this feature, simply include the "graph" datapoint in your API calls.

  <Note>
    This feature is currently in early beta. As it requires retrieving
    companyProfile data for each entity in the ownership tree, usage may incur
    significant costs. We recommend reaching out to become a design partner to
    help shape this feature's development and discuss optimal usage patterns.
  </Note>

  ## Countries

  ### 🇩🇪 Germany

  * **Enhanced detention tree reconstruction** by incorporating control statements from Register Extract documents, enabling more accurate ownership structure analysis.
</Update>

<Update label="Week 13, 2025">
  ## Countries

  ### 🇪🇸 Spain

  * **Improved robustness and scalability** of data processing systems, enhancing overall performance and reliability of Spanish company data retrieval.

  ### 🇨🇳 China

  * **Enhanced error handling** for cases where company is not found but register is accessible, providing clearer feedback and improved user experience.

  ### 🇬🇧 United Kingdom

  * **Enhanced error handling** for cases where companies are not found in the register, providing more informative and user-friendly error messages.

  ### 🇩🇪 Germany

  * **Improved shareholder data extraction** from documents, adding support for rotated document processing.
</Update>

<Update label="Week 12, 2025">
  ## Countries

  ### 🇩🇪 Germany

  * **Enhanced robustness** of shareholders computation system, improving reliability and accuracy of ownership data processing.

  ### 🇪🇸 Spain

  * **Improved system resilience** for document access and retrieval, implementing additional error handling and recovery mechanisms.
</Update>

<Update label="Week 11, 2025">
  ## Platform

  * **Implemented embedding reuse system** for standardized activity codes, legal forms, and roles processing, saving up to 1.5 second of processing time per query.
  * **Fixed error handling** for cases when companies are not found, eliminating 500 errors. Users now see a generic "An Error has occurred in the job status" message. We're working on improving generic error messages.

  ## Countries

  ### 🇩🇪 Germany

  * **Major Update: Shareholders now derived from Gesellschafterliste**. This is preliminary work to enable detention tree reconstruction and UBO identification in Germany. Coming soon!
  * Improved robustness of company data retrieval by implementing additional error handling and fallback mechanisms.
  * Improved parsing of shareholders data, enhancing accuracy and completeness of ownership information.
  * Improved handling of german id including parenthesis.

  ### 🇬🇧 United Kingdom

  * Fixed Register Extract functionality to adapt to the new Companies House website flow, ensuring reliable document retrieval.
</Update>

<Update label="Week 10, 2025">
  ## Platform

  * **Fixed error handling** for cases when companies are not found, eliminating 500 errors. Users now see a generic "An Error has occurred in the job status" message. We're working on improving generic error messages.

  ## Countries

  ### 🇪🇸 Spain

  * Fixed financial document listing functionality to correctly retrieve and display available financial documents.
</Update>

<Update label="Week 09, 2025">
  ## Platform

  * **Optimized request processing pipeline**, resulting in an average **2 seconds reduction** in response time across all endpoints.
  * **Fixed performance bottlenecks** when processing companies with large document collections by implementing a **faster inference endpoint** for document metadata processing.
  * **Enhanced performance logging** across the application to better identify and address bottlenecks.

  <Note>
    We are actively working on improving overall performance, with a focus on
    inference speed optimization. A **faster inference solution** is currently in
    development.
  </Note>

  ## Countries

  ### 🇮🇹 Italy

  * Added support for asynchronous data retrieval from the Italian Chamber of Commerce (Camerale). As a result, **companyProfile for Italy is now an asynchronous data point**.

  ### 🇩🇪 Germany

  * Implemented fallback to Handelsregister when Unternehmensregister is unavailable for search and companyProfile.

  ### 🇪🇸 Spain

  * Improved overall speed and reliability of Spanish company data retrieval through infrastructure optimizations.
  * Added support for asynchronous data retrieval for legalRepresentatives in Spain. Note that base companyProfile data still remains synchronous. This change prevents blocking access to base company data when fetching many legal representatives, which could be time-consuming for companies with extensive representative lists.
  * As a result, **companyProfile for Spain is now a partially asynchronous data point**.

  ### 🇨🇳 China

  * Improved overall speed and reliability of Chinese company data retrieval through infrastructure optimizations.

  ### 🇳🇱 Netherlands

  * Updated document listing functionality to match KVK's new API specifications, restoring the ability to list available documents for Dutch companies.
</Update>
