Hopp til innhold

Hvordan sjekker jeg programmatisk om et norsk selskap er aktivt og registrert?

Les registerstatusen og organisasjonsformen fra Enhetsregisteret, og behandle dem som to ulike spørsmål. «Registrert» betyr at enheten finnes i registeret, noe som forblir sant gjennom konkurs og avvikling. «Aktiv» betyr at den faktisk driver og ikke er underlagt et konkursflagg. Verify-endepunktet sammenfatter sju uavhengige signaler til én verification_status med verdiene pass, warn, fail eller unknown, og organisasjonsformen betyr også noe: et AS og et ENK bærer ulike plikter.

En rad med fire navngitte signalbrikker, is_active, not_bankrupt, not_under_dissolution og mva_registered, merket som fire av sju uavhengige signaler. Piler går ned fra hver brikke til én konklusjonsboks merket verification_status, med verdiene pass, warn, fail og unknown.Sju uavhengige signaler, fire vistis_activenot_bankruptnot_under_dissolutionmva_registeredverification_statuspass, warn, fail, unknown
Ingen enkelt felt svarer på om et selskap er trygt å forholde seg til. Flere uavhengige registerfakta leses, og konklusjonen er en sammenfatning av dem, og derfor blir signalene stående synlig på responsen i stedet for å bli slått sammen bort.

Hvordan ser en inaktiv eller oppløst status ut?

Den ser ut som et selskap som fortsatt står i registeret. Det er den delen det er verdt å ta inn over seg: en enhet forsvinner ikke fra Enhetsregisteret når den går konkurs eller starter avvikling, så et oppslag som bare lykkes forteller deg nesten ingenting om du bør gi kreditt. Signalet du vil ha, er ikke at det finnes en oppføring, men hvilken tilstand den bærer.

Tre rå Brønnøysund-flagg bærer de dårlige nyhetene: konkurs for konkurs, under_avvikling for frivillig avvikling under arbeid, og under_tvangsavvikling for tvangsavvikling. De er åpne felter, eksponert både på selskapskonteksten og på det nøkkelløse samleendepunktet. Verify-endepunktet bærer det motsatte av dem som not_bankrupt, not_under_dissolution og not_forcibly_dissolved, og det er dette som lar én konklusjon sammenfatte dem uten å skjule hvilket flagg som slo ut.

Signalene har tre tilstander og ikke to, og det overrasker mange. has_signing_authority_defined kommer tilbake som null når ingenting er synlig i de åpne rolledataene, og det er noe annet enn et bekreftet fravær av signaturrett. Den samlede konklusjonen gjenspeiler dette ærlig gjennom unknown. Legg unknown i sin egen gren i koden, for å slå den sammen med pass eller fail gjør manglende dokumentasjon om til en beslutning dataene ikke bærer.

Hvordan skiller jeg et AS fra et ENK, og hvorfor betyr det noe?

Les entity_type på responsen, som bærer den registrerte organisasjonsformen direkte. De to du møter oftest er AS, aksjeselskapet, og ENK, enkeltpersonforetaket. ANS, DA og NUF dukker også opp, og pliktendepunktet godtar alle fem.

Forskjellen er strukturell og ikke kosmetisk. Et AS er en egen juridisk person med aksjekapital og styre, og det leverer årsregnskap som blir offentlige, så svært mye om det lar seg etterprøve fra åpne registre. Et ENK er juridisk uatskillelig fra innehaveren, som er personlig ansvarlig for forpliktelsene, og fullmaktsstrukturen er registrert rundt en innehaver i stedet for rundt signaturkombinasjonene et AS bærer. En kontroll skrevet ut fra en antagelse om at hver motpart er et AS, vil lese et ENK som manglende data det aldri hadde.

Fordi plikter følger formen, kan det generiske pliktsettet spørres opp på formen alene. Kall /api/v1/public/obligations?entity_type=AS, uten nøkkel, for å få malen som beskriver hva som generelt gjelder for den formen. Det endepunktet svarer på malspørsmålet og ikke på det konkrete: om et bestemt selskap har overholdt en bestemt frist er et annet kall mot det selskapets egen oppføring.

Hvordan validerer jeg et organisasjonsnummer før jeg kaller?

Sjekk MOD-11-kontrollsifferet lokalt. Organisasjonsnummeret er ni sifre, der de åtte første vektes med rekken 3, 2, 7, 6, 5, 4, 3, 2 og det niende er kontrollsifferet. Summer de vektede sifrene, ta resten modulo 11, og trekk den fra 11 for å få forventet kontrollsiffer. En rest på null betyr at kontrollsifferet er null, og en beregnet verdi på 10 betyr at nummeret ikke er et gyldig organisasjonsnummer i det hele tatt.

Gjør dette før kallet, for endepunktet gjør det ikke for deg. Verify validerer bare formen: alt som ikke er nøyaktig ni sifre kommer tilbake som en 400 med VALIDATION_FAILED, og det er en feil der du må rette inndataene, ikke en du kan prøve på nytt. MOD-11-sjekken kjøres ikke på tjenersiden, så et nummer med feil kontrollsiffer som likevel har ni sifre glir gjennom valideringen og blir slått opp på ordentlig.

Vær tydelig på hva kontrollsifferet beviser og ikke beviser. Det beviser at nummeret er velformet. Det beviser ikke at selskapet finnes, er aktivt eller er det du mente, og fordi gyldige numre ligger tett nok kan en tastefeil lande på et reelt og helt urelatert selskap. Har du et navn i stedet for et nummer, slå det opp gjennom selskapssøket beskrevet i Brønnøysund-veiledningen i stedet for å konstruere en kandidat.

Hva den registrerte organisasjonsformen innebærer for ansvar, innlevering og hva du kan etterprøve fra åpne registre.
EgenskapAS (aksjeselskap)ENK (enkeltpersonforetak)
Juridisk personEn egen juridisk person, atskilt fra eierne.Ikke atskilt fra innehaveren. Virksomheten og personen er samme part.
AnsvarAnsvaret er begrenset til selskapet, og det er hele poenget med formen.Innehaveren er personlig ansvarlig for virksomhetens forpliktelser.
ÅrsregnskapLeverer årsregnskap, som blir offentlig tilgjengelig gjennom Regnskapsregisteret.Faller i hovedsak utenfor den innleveringsordningen, så langt mindre lar seg etterprøve fra åpne registre.
FullmaktsstrukturStyre og registrerte signaturkombinasjoner, som kan slås opp gjennom fullmaktsendepunktet.Registrert rundt en innehaver i stedet for signaturkombinasjonene et AS bærer.
Hva verifisering gir degStatus, konkursflagg, signaturrett og innleveringshistorikk for regnskap.Status og konkursflagg, med et tynnere offentlig spor bak seg.

Gjør det første kallet

Sandkasseforespørselen returnerer hele verify-formen uten nøkkel. TypeScript-snutten validerer kontrollsifferet lokalt først, og leser deretter signalene i stedet for å stole på hovedkonklusjonen alene.

# Nøkkelløs sandkasse: hele verify-formen, syntetisk selskap.
curl -s https://www.apier.no/api/v1/sandbox/public/company/999999999/verify
// Valider lokalt først: et feil kontrollsiffer er en 400 du kan unngå.
function isMod11Valid(org: string): boolean {
  if (!/^\d{9}$/.test(org)) return false;
  const weights = [3, 2, 7, 6, 5, 4, 3, 2];
  const sum = weights.reduce((acc, w, i) => acc + w * Number(org[i]), 0);
  const remainder = sum % 11;
  const check = remainder === 0 ? 0 : 11 - remainder;
  return check !== 10 && check === Number(org[8]);
}

const res = await fetch(
  "https://www.apier.no/api/v1/company/999999999/verify",
  { headers: { Authorization: `Bearer ${process.env.APIER_API_KEY}` } },
);

if (!res.ok) {
  const { error_code, explanation } = await res.json();
  throw new Error(`${error_code}: ${explanation.summary}`);
}

const { data } = await res.json();
// Registrert er ikke det samme som trygt å handle med. Les signalene.
console.log(data.verification_status, data.signals.is_active,
  data.signals.not_bankrupt, data.entity_type);

Ofte stilte spørsmål

Er et registrert norsk selskap automatisk et aktivt selskap?
Nei, og å behandle de to som det samme er den vanligste feilen her. En enhet blir stående i registeret gjennom konkurs og gjennom avvikling, så et selskap kan være fullt søkbart og likevel ikke være i stand til å drive. Registrering svarer på om enheten finnes. Aktivitet er et eget spørsmål som besvares av statusfeltet og konkursflaggene.
Hvordan sjekker jeg om et selskap er konkurs?
Les de rå flaggene konkurs, under_avvikling og under_tvangsavvikling, som er åpne Brønnøysund-felter tilgjengelige på selskapskonteksten og på det nøkkelløse samleendepunktet. Verify-endepunktet eksponerer det motsatte av dem som signalene not_bankrupt, not_under_dissolution og not_forcibly_dissolved, slik at én konklusjon kan sammenfatte dem.
Hva er forskjellen på et AS og et ENK?
Et AS er et aksjeselskap: en egen juridisk person med aksjekapital, styre og plikt til å levere årsregnskap. Et ENK er et enkeltpersonforetak, juridisk uatskillelig fra innehaveren, som er personlig ansvarlig for gjelden. Skillet endrer hvem som kan signere, hva som må leveres, og hvor mye av bildet som er offentlig.
Bør jeg validere et organisasjonsnummer før jeg kaller?
Ja, og av en sterkere grunn enn å spare en rundtur. Verify-endepunktet validerer bare formen, og avviser alt som ikke er nøyaktig ni sifre med en 400 VALIDATION_FAILED. Det kjører ikke MOD-11-sjekken, så et feiltastet, men velformet nummer består valideringen og slås opp på ordentlig, og kommer tilbake som en 404 eller som et helt annet selskap. Bare en lokal sjekk fanger det før det koster deg noe.
Kan jeg sjekke et selskaps status uten API-nøkkel?
Ja, samlet. Det nøkkelløse endepunktet /api/v1/public/company-status tar inntil 100 organisasjonsnumre og returnerer registerstatus, organisasjonsform, MVA-registrering, konkursflaggene og innleveringsstatus for årsregnskap per nummer. Den rikere verify-konklusjonen per selskap ligger bak nøkkel fordi responsen gjenspeiler rolledata.