Hopp til innhold

Hvordan sjekker jeg et organisasjonsnummer?

Av , gründer av Apier

Send det nisifrede nummeret til et selskapsendepunkt og les svaret: ett kall returnerer registrert navn, selskapsform, avledet status og kommune, rett fra Enhetsregisterets data. Før du bruker det kallet, bør du validere nummeret lokalt. Det niende sifferet er et MOD-11-kontrollsiffer, så et feilskrevet nummer stryker nesten alltid på kontrollen, og riktig respons på et kontrollsiffer som feiler, er å rette nummeret, ikke å prøve på nytt. Har du et firmanavn i stedet for et nummer, løser navnesøket det til kandidatnumre først. Det oppslaget ikke svarer på, er om selskapet er i god stand: registrert er ikke det samme som aktivt, og den vurderingen er et eget, formålsbygd kall.

Fire steg på rad: det nisifrede nummeret som mottatt; den lokale MOD-11-kontrollen; oppslaget i Enhetsregisteret; og svaret med navn, selskapsform og status. Stiplede merknader under viser hvor hver feil dukker opp: et kontrollsiffer som feiler ved porten, som betyr en skrivefeil som må rettes, og et ukjent velformet nummer ved oppslaget, som gir 404.Nummer9 siffer, som mottattKontrollsifferMOD-11, lokalt, gratisEnhetsregisteretett oppslagskallSvarnavn, form, statuskontrollsifferet feiler: skrivefeil, rett nummeretukjent nummer: 404
En skrivefeil stopper ved kontrollsifferporten før noe kall er brukt. Bare et velformet nummer når registeret, så en 404 der er et reelt svar om eksistens, aldri et formatproblem.

Hva er et organisasjonsnummer?

En nisifret identifikator som Enhetsregisteret tildeler når en enhet registreres, ett nummer per enhet, offentlig av design. Nummeret følger enheten hele livet: det samme nummeret står på fakturaer og kontrakter, i innkjøpsportaler, og er nøkkelen hvert norske offentlige API forventer når du spør om et selskap. Integrerer du mot noe norsk, er dette primærnøkkelen du kommer til å sende rundt. Registeret bak nummeret drives av Brønnøysundregistrene, og registerfaktaene et oppslag returnerer, er åpne data.

Nummeret er ikke ni vilkårlige siffer. De åtte første bærer identiteten; det niende er et kontrollsiffer beregnet av de andre, og det er det som gjør lokal validering mulig. Den designbeslutningen betyr noe i praksis: en stor andel av mislykkede oppslag er ikke selskaper som mangler, men siffer som har byttet plass, og kontrollen fanger dem før noen forespørsel forlater maskinen din.

Hvordan finner jeg selskapet bak et nummer?

Med ett kall nøklet på nummeret. Et selskapsoppslag returnerer faktaene registeret holder om enheten: registrert navn, selskapsform (AS, ENK og de andre formene), status, og fakta på adressenivå som kommunen. Statusen avledes ærlig fra registersignalene: en slettedato vinner over alt og rapporteres som slettet, konkurs rapporteres som konkurs, tvangsavvikling og frivillig avvikling rapporteres som seg selv, og bare en oppføring uten alle de flaggene rapporteres som aktiv. Når registeret ikke svarer, sier feltet ukjent i stedet for å gjette.

Ofte starter du i motsatt ende: et navn på en faktura og ikke noe nummer. For den retningen finnes navnesøket, som tar et fritekstnavn og returnerer høyst ti kandidater, hver med bare fem felter (navn, organisasjonsnummer, selskapsform, kommune og status), så du raskt kan skille dem og fortsette med nummeret. Et søk uten treff svarer 404 med et hint om å utvide navnet i stedet for en tom liste. Veiledningen om registertilgang går gjennom den bredere API-flaten disse kallene hører til.

Hvordan validerer jeg kontrollsifferet før kallet?

Algoritmen er MOD-11. Multipliser de åtte første sifrene med vektene 3, 2, 7, 6, 5, 4, 3, 2 i rekkefølge og summer produktene. Kontrollsifferet er 11 minus summen modulo 11, tatt modulo 11 igjen, og det må være likt det niende sifferet. Ett kanttilfelle finnes: gir regnestykket 10, kan ikke noe gyldig nummer ende i den posisjonen, så verdien er ugyldig uansett. Alt som ikke er nøyaktig ni siffer, stryker før regnestykket starter.

Driftsregelen betyr mer enn formelen: et kontrollsiffer som feiler, betyr en skrivefeil, ikke et selskap som mangler. Rett nummeret i stedet for å prøve på nytt, for ingen mengde forsøk gjør et umulig nummer om til et utstedt et. Og husk grensen for kontrollen. Kontrollsifferet er en form-port for input, ikke en eksistenskontroll: et nummer kan bestå regnestykket og likevel ikke tilhøre noen registrert enhet, og da svarer selve oppslaget 404, og det svaret er sannheten.

Hva forteller ikke oppslaget deg?

Et vellykket oppslag beviser at nummeret peker på en registrert enhet, og det er alt det beviser. Registrert er ikke aktivt: et selskap under avvikling eller konkurs svarer fortsatt, med navn og form intakt, og bare statusfeltet bærer varselet. Når spørsmålet er om du bør stole på selskapet, bør du redusere signalene til en vurdering i stedet for å lese felter med øynene: verifiseringsveiledningen eier det kallet, som svarer pass, warn, fail eller unknown i én rundtur.

Et oppslag sier heller ingenting om pengestrømmer. Om enheten er MVA-registrert, er et eget flagg på selskapsflaten, og om en faktura fra selskapet er trygg å betale, krever kontroller utover registeroppføringen; veiledningen om leverandørsjekk dekker den arbeidsflyten fra ende til ende. Behandle oppslaget som steg én i de flytene: billig, raskt og bevisst smalt.

Gjør det første kallet

Sandkassekallet viser selskapssammendragets form på simulerte data, uten nøkkel og uten registrering. TypeScript-eksempelet kjører det live oppslaget mot samme form: selskapsform, MVA-flagget i tre tilstander, plikter og frister i én rundtur, og hvert svar bærer ferskheten sin i _meta-blokken.

# Nøkkelløs sandkasse: et selskapssammendrag på simulerte data, uten nøkkel.
curl -s https://www.apier.no/api/v1/sandbox/public/company/999999999/summary
// Live oppslag: finn selskapet bak et nummer i ett kall.
const org = "999999999";
const res = await fetch(
  `https://www.apier.no/api/v1/company/${org}/summary`,
  {
    headers: {
      Authorization: `Bearer ${process.env.APIER_API_KEY}`,
    },
  },
);

if (!res.ok) {
  // Alle ikke-2xx-svar bruker den samme strukturerte konvolutten.
  const { error_code, explanation } = await res.json();
  throw new Error(`${error_code}: ${explanation.summary}`);
}

const { data, _meta } = await res.json();
// Selskapsform, MVA-flagget i tre tilstander (true / false / null =
// ukjent), plikter og fristkalenderen, i én rundtur.
console.log(data.entity_type, data.mva_registered);
console.log(data.obligations.length, "plikter");
console.log(_meta.rulebook_version, _meta.data_freshness);

Ofte stilte spørsmål

Er det gratis å slå opp et organisasjonsnummer?
Dataene er åpne: Enhetsregisteret er et offentlig register, og faktaene et oppslag returnerer, er offentlige registerfakta. Hos Apier ligger selskapsendepunktene i den nøkkelbelagte kategorien, så et oppslagskall trenger en API-nøkkel selv på gratisnivået, fordi selskapssvar kan bære personnære fakta som styreroller. For eksperimenter finnes en nøkkelløs vei: den offentlige sandkassen speiler selskapsendepunktene på simulerte data, uten nøkkel og uten registrering, så du ser den nøyaktige svarformen før du registrerer noe.
Hva gjør jeg når kontrollsifferet feiler?
Rett nummeret i stedet for å prøve på nytt. Det niende sifferet er et MOD-11-kontrollsiffer beregnet av de åtte første, så et ombyttet eller feilskrevet siffer bryter nesten alltid regnestykket. Et kontrollsiffer som feiler, betyr derfor at nummeret du holder, aldri kunne vært utstedt av registeret: ingen nye forsøk, ventetid eller andre endepunkter endrer det. Gå tilbake til kilden for nummeret, en faktura, en kontrakt eller en e-post, og les det på nytt før du bruker enda et kall.
Kan jeg søke på firmanavn i stedet?
Ja. Når du har et navn og ikke et nummer, løser navnesøket det: GET /api/v1/company/search?name= returnerer høyst ti kandidater, hver med fem felter (navn, organisasjonsnummer, selskapsform, kommune og status), så du kan velge riktig enhet og fortsette med nummeret dens. Et søk uten treff svarer 404 med et hint om å utvide navnet, i stedet for en tom liste et skript stille kunne loopet på. Kandidatlisten er bevisst liten: dette er en oppslagsvei, ikke en dataeksport.
Er organisasjonsnummeret det samme som MVA-nummeret?
Nei. Organisasjonsnummeret identifiserer enheten; om enheten er registrert i Merverdiavgiftsregisteret, er et eget registerfaktum. Apier viser det som et flagg med tre tilstander: true når registreringen er bekreftet, false når fraværet er bekreftet, og null når svaret ennå ikke er kjent, aldri en stille standardverdi. Et vellykket oppslag forteller altså hvem som eier nummeret, og MVA-flagget på samme svar forteller separat om selskapet står i MVA-registeret. Behandle de to som uavhengige spørsmål.
Hva betyr 404, sammenlignet med et ugyldig nummer?
Det er to forskjellige feil på to forskjellige steg. Et ugyldig nummer når aldri registeret: det stryker på form- eller kontrollsifferkontrollen lokalt, som nesten alltid betyr en skrivefeil, og løsningen er å rette nummeret. En 404 betyr at nummeret passerte kontrollene, oppslaget kjørte, og ingen registrert enhet holder det nummeret. Et kontrollsiffer som stemmer, er bare en regneegenskap, ikke bevis på eksistens, så velformede numre som aldri ble utstedt, ender fortsatt som 404. Les de to signalene hver for seg, så feilsøker du riktig problem.