DEV Community

Cover image for Iceland company registry: querying Skatturinn in code
OpenRegistry
OpenRegistry

Posted on

Iceland company registry: querying Skatturinn in code

More than 55,000 legal entities appear in Iceland’s national register maintained by Skatturinn, the Directorate of Internal Revenue. For KYB teams that number matters. The dataset is small. A direct register lookup often finishes faster than a query against one of the legacy paid databases during onboarding.

Iceland never built a large commercial disclosure portal. The tax authority keeps the core company register and attaches each entity to a national identification number called the kennitala. Every company receives one at incorporation.

That single number changes how a compliance check works. When the onboarding form collects the kennitala, matching becomes deterministic. Many jurisdictions push teams toward fuzzy name searches spread across several registers. Iceland usually starts with one identifier and a single lookup.

The first verification step is plain enough. Confirm the submitted kennitala resolves to an active entity. Then compare the registry name with the onboarding record. If those match, the remaining review scope shrinks quickly.

Data returned by Skatturinn

The Skatturinn register publishes core identity details for the company along with basic management information. OpenRegistry returns the upstream response inside jurisdiction_data. Nothing gets rewritten. The fields arrive exactly as the registry publishes them.

A get_company_profile request usually returns attributes such as:

  • kennitala – Icelandic company identification number
  • heiti – legal entity name
  • heimilisfang – registered address
  • postnumer – postal code
  • skraningardagur – registration date
  • rekstrarform – legal structure such as ehf. (private limited company)

Officer data comes from the same register. Call get_officers and the payload often includes:

  • nafn – officer name
  • kennitala – personal or corporate identifier
  • hlutverk – role in the entity
  • skipunardagur – appointment date

Those fields stay in Icelandic. OpenRegistry does not translate registry terminology or reshape the schema. Auditors usually prefer that. The wording matches the official source, which helps when someone reviews a historical compliance file months later.

The kennitala itself tends to stay stable across the life of the company. Many compliance systems store it as the primary reference and reuse the same number for periodic refresh checks. Simple. Reliable.

What the register does not expose

Skatturinn publishes less ownership information than some European registers. Shareholder lists rarely appear through the same interface. Beneficial ownership data sits outside the standard company dataset.

That arrangement mirrors the wider European position after the Court of Justice ruling in case C‑601/20. Several beneficial ownership registers moved behind controlled AML access following that judgment. Iceland follows roughly the same pattern. Core corporate identity remains public. Ownership disclosure typically lives in regulated compliance channels.

For KYB engineers the split is manageable. Treat Skatturinn as the source of record for incorporation status and officer roles. Ownership checks normally pull from a different dataset maintained under AML access controls.

Querying the register through OpenRegistry MCP

OpenRegistry exposes the Icelandic register through the same MCP interface used for the other jurisdictions on the platform. The client sends the jurisdiction code IS with either a name fragment or an identifier.

Most workflows begin with a search call.

search_companies({
  "jurisdiction": "IS",
  "query": "Eimskip"
})
Enter fullscreen mode Exit fullscreen mode

Production systems rarely rely on names alone. They usually send the kennitala directly. Identification numbers remove ambiguity and shorten the audit trail when a compliance analyst reviews the lookup later.

Once the entity is confirmed, request the full register record.

get_company_profile({
  "jurisdiction": "IS",
  "company_number": "kennitala-from-search"
})
Enter fullscreen mode Exit fullscreen mode

Officer information comes from the same source.

get_officers({
  "jurisdiction": "IS",
  "company_number": "kennitala-from-search"
})
Enter fullscreen mode Exit fullscreen mode

Each call queries the register in real time. The response includes OpenRegistry’s structured wrapper plus the raw jurisdiction_data payload returned by Skatturinn.

How this fits into a KYB pipeline

Onboarding Icelandic companies is usually short compared with many EU jurisdictions. A typical compliance workflow inside a payments or fintech stack often looks like this:

  1. Merchant submits legal name together with the kennitala.
  2. search_companies verifies the entity exists in the register.
  3. get_company_profile confirms legal name and registration data.
  4. get_officers returns the current management roles.

Every step stores the registry response as evidence. Later, if internal audit revisits the file, the same identifier can reproduce the lookup exactly.

The size of the register also changes how batch checks behave. Iceland holds far fewer entities than jurisdictions with tens of millions of companies. Refresh jobs therefore run quickly. The identifier space stays small, and the register queries remain lightweight even under steady load.

For engineers building KYB infrastructure, Iceland shows the advantage of identifier‑first verification. The register structure removes much of the name‑matching guesswork. The modest dataset keeps real‑time queries predictable as traffic grows.

OpenRegistry exposes the Skatturinn register through the MCP server at https://openregistry.sophymarine.com.

Top comments (0)