Skip to content

How do I check if a Norwegian company is bankrupt?

By , founder of Apier

Read the company's entry in Enhetsregisteret: bankruptcy in Norway is registered, public data, recorded as a konkurs flag when proceedings are opened. Apier reduces the registry flags to one status through a fixed priority: a set deletion date wins as deleted, then konkurs as bankrupt, then forced liquidation, then voluntary liquidation, and only a company with none of the flags reports active. One verification call classifies the company, returns the raw signals including not_bankrupt, and attaches the data source and freshness so you can see how current the answer is. One honesty rule sits above all of it: when the lookup fails, the cache is stale, or the data is missing, the answer is unknown, and unknown is never the same as not bankrupt.

Five boxes in priority order, read left to right: deleted, where a set slettedato wins; bankrupt, the accented box, driven by the konkurs flag; forced liquidation from tvangsavvikling; liquidating from under avvikling; and active, reported only when no flags are set. Two dashed callouts below note that the konkurs flag is a registered public event and that missing data reports unknown, never active.Deletedslettedato winsBankruptkonkurs flagForced liq.tvangsavviklingLiquidatingunder avviklingActiveno flags seta registered, public eventno data: unknown, not active
The first flag wins, checked left to right. A company can carry several flags at once, which is why the ladder's order, not any single field, decides the reported status.

Where does the bankruptcy flag come from?

From the register, as a recorded event. When bankruptcy proceedings are opened against a company, the state is registered on the company's Enhetsregisteret entry, and from that point the konkurs flag is part of the open, public record. Checking it requires no consent, no credit bureau and no paid report: the same fact a manual search would surface is available to a program reading the registry.

The flag is one of several distress markers the entry can carry. Alongside konkurs sit the two liquidation states, voluntary winding up (under avvikling) and forced winding up (tvangsavvikling or tvangsoppløsning), and the terminal deletion date. Apier reads each of these as a raw tri-state value: present, absent, or unknown when the registry does not say. That last option matters, because a field the source did not populate is never silently converted into a reassuring false.

This page owns the konkurs-specific question. The broader one, what it means for a company to be active rather than merely registered, is owned by the business status guide, and the terminal state at the far end of the ladder is owned by the deletion check guide.

Which status wins when several flags are set?

The ladder decides. A company's entry can carry more than one flag at once, so the status is derived in a fixed order: a set deletion date always wins and reports deleted; otherwise the konkurs flag reports bankrupt; otherwise forced liquidation; otherwise voluntary liquidation; and only an entry with none of the flags reports active. The order encodes severity: a company that is both bankrupt and later deleted reports the terminal state, not the intermediate one.

For a counterparty, bankrupt is the state that changes your next step. The company's estate is under administration, which means the people you dealt with last month may no longer have authority over its assets, and payments deserve care: do not settle old invoices without confirming with the estate's administrator that the claim and the account are right. That is generic counterparty hygiene, not legal advice, and the register is where the hygiene starts.

The five derived statuses plus the unknown outcome, the Norwegian registry term behind each, and the counterparty action each one suggests.
StatusNorwegian termWhat it meansWhat to do
activeingen flaggNo distress flags on the registry entry.Proceed, and re-check on a cadence that fits the risk.
liquidatingunder avviklingThe company is being wound down, typically voluntarily.Confirm who now signs and whether commitments will be honoured.
forced_liquidationtvangsavvikling / tvangsoppløsningThe winding up is forced, not chosen.Treat as a strong warning; verify before extending anything.
bankruptkonkursBankruptcy proceedings are opened; the estate is administered.Do not pay old invoices without checking with the administrator.
deletedslettedato sattThe entry is terminal; the company is removed from the register.Stop; there is no counterparty left to transact with.
unknownukjentThe lookup could not determine the state.Retry, then verify manually; never map unknown to a pass.

Unknown is not the same as not bankrupt

A bankruptcy check has three honest outcomes, not two: the flag is set, the flag is absent, or the state could not be determined. The third outcome arrives more often than automation designers expect: the upstream registry can be unreachable, a cached copy can be too old to trust, and a field can simply be missing from the source data. In every one of those cases the truthful answer is unknown, and Apier returns exactly that rather than defaulting to the reassuring option.

The design rule for your side is the mirror image: never let unknown flow down the same branch as pass. A payment pipeline that treats a failed lookup as a green light has quietly decided that outages make counterparties creditworthy. Route unknown to a retry, then to a human, and let the freshness metadata on every response tell you whether the answer you do have is recent enough for the decision it is about to gate.

The one-call check

You do not need to fetch the raw registry entry and rebuild the ladder yourself. The verification endpoint runs the whole reduction in one call: it classifies the company into pass, warn, fail or unknown, and returns the underlying signals block so the konkurs-specific fact arrives raw as not_bankrupt, a tri-state value that is true, false or null, never a coerced boolean.

The same response names its sources and its age: the data comes from Brønnøysund's open registries, and the freshness metadata states when it was fetched. That makes the check auditable as well as fast, because the verdict, the raw signal behind it, and the provenance of both travel together in a single response your code or your reviewer can read.

Make the first call

The sandbox call returns the full verdict shape for a simulated company, with no key. The TypeScript sample runs the live check: one GET, the verdict, the raw not_bankrupt signal, and the freshness of the data behind both.

# Zero-auth sandbox: a pass / warn / fail / unknown verdict with signals.
curl -s https://www.apier.no/api/v1/sandbox/public/company/999999999/verify
// One call: classify the company and read the bankruptcy signal raw.
const res = await fetch(
  "https://www.apier.no/api/v1/company/999999999/verify",
  {
    headers: {
      Authorization: `Bearer ${process.env.APIER_API_KEY}`,
    },
  },
);

if (!res.ok) {
  // Every non-2xx answers the same structured envelope.
  const { error_code, explanation } = await res.json();
  throw new Error(`${error_code}: ${explanation.summary}`);
}

const { data, _meta } = await res.json();
// The verdict is one of "pass", "warn", "fail", "unknown".
console.log(data.verification_status);
// Tri-state: true = no konkurs flag, false = flag set, null = unknown.
console.log("not_bankrupt:", data.signals.not_bankrupt);
// The answer carries its own source and freshness (Enhetsregisteret).
console.log(data.data_sources, _meta.data_freshness);

Frequently asked questions

Is bankruptcy public information in Norway?
Yes. When bankruptcy proceedings are opened against a company, the state is recorded in Enhetsregisteret, and the konkurs flag on the company's registry entry is open data anyone can read. You do not need consent from the company, a paid report, or any special standing to see it. A programmatic check reads the same public registry a manual search on Brønnøysund's pages would, so there is no privacy barrier between you and the answer, only the practical work of querying it.
What is the difference between konkurs and avvikling?
Konkurs is bankruptcy: proceedings opened because the company cannot meet its obligations, with the estate taken over by an administrator. Avvikling is liquidation, the process of winding a company down, and it comes in two registry forms: under avvikling, which is typically a voluntary, orderly wind-down, and tvangsavvikling or tvangsoppløsning, where the winding up is forced. The status ladder ranks them: konkurs outranks both liquidation states, so a company carrying several flags reports bankrupt rather than liquidating.
Can a bankrupt company still be registered?
Yes, and that is exactly why registered is never the check. A company under bankruptcy proceedings keeps its organisation number and its registry entry while the estate is administered; it disappears from the register only when a slettedato is eventually set. So a lookup that merely confirms the organisation number exists will happily pass a bankrupt counterparty. The check that matters reads the status flags on the entry, not the entry's existence.
What should an unknown status make me do?
Stop and re-check before relying on the answer, and never map unknown to a pass in automation. Unknown means the lookup could not determine the state: the upstream registry was unreachable, the cached data was too old to trust, or the field was missing. None of those situations says anything about the company itself. Retry the lookup, and if unknown persists, verify manually against the registry before paying, shipping, or signing. Treat unknown as a missing answer, not a reassuring one.
How fast does the register reflect a bankruptcy?
There is no fixed latency you should hard-code. The flag appears when the event is registered in Enhetsregisteret, and how quickly that happens after a court decision is not something Apier pins a number on. What the API gives you instead is honesty about age: every response carries freshness metadata stating when the underlying data was fetched and from which source, so your code can decide whether the answer is recent enough for the decision at hand.