Hopp til innhold
↑ ↓ navigerEnter åpneEsc lukk

Oppslag i praksis

Søk, oppslag, roller, regnskap, konsern og masseoppslag. Mønstre for kundeonboarding, KYC og nattlig vask av kunderegisteret.

Oppslag gir deg norske virksomheter som strukturerte data. Denne guiden viser de vanligste mønstrene. Alle felt står i API-referansen.

Søk mens brukeren skriver

Bruk GET /v1/virksomheter?sok= med det brukeren har skrevet så langt. Søket tåler skrivefeil og forkortelser, og rangerer aktive selskaper først.

const treff = await spire.virksomheter.sok(input.value, { antall: 8 });
// [{ orgnr, navn, poststed, status, treff }]

Tips:

  • Vent 150 ms etter siste tastetrykk før du søker, så sparer du kall.
  • Vis poststed i listen. Det er ofte det som skiller to selskaper med likt navn.
  • Skriver brukeren ni sifre, går søket rett på organisasjonsnummer.

Fyll kundekortet

Når brukeren har valgt, hent alt du trenger i ett kall med utvid:

const v = await spire.virksomheter.hent(orgnr, { utvid: ['roller', 'rettighetshavere', 'underenheter'] });

utvid tar roller, regnskap, rettighetshavere, konsern og underenheter. Hvert utvidet felt teller som 0,5 ekstra kall; det er billigere enn separate kall.

Felter du typisk vil bruke:

FeltBruk
navn, organisasjonsformVisningsnavn og juridisk form
forretningsadresse, postadresseFakturaadresse (bruk postadresse hvis den finnes)
mva_registrertOm du skal legge på mva
naeringBransje for segmentering
roller.signaturberettigedeHvem som kan signere avtaler
rettighetshavereReelle eiere for KYC
kan_motta_ehfOm Faktura vil bruke Peppol

Hvem kan signere?

roller.signatur er signaturregelen i klartekst («Daglig leder og styrets leder i fellesskap»). roller.signaturberettigede er den samme regelen som en liste av lister: hver indre liste er én gyldig kombinasjon av personer.

"signaturberettigede": [
  ["Ingrid Åsheim", "Petter Lunde"],
  ["Ingrid Åsheim", "Kari Nilsen"]
]

Sender du en avtale til Signering, bruk én av kombinasjonene som parter. Spire gir deg bare navn og fødselsår for personer, aldri fødselsnummer.

Regnskapstall

GET /v1/virksomheter/{orgnr}/regnskap gir inntil fem år. Tallene er normalisert: samme feltnavn uansett om selskapet rapporterer etter små foretak eller IFRS. Tomme felt er null, ikke 0.

r = spire.virksomheter.regnskap(orgnr)
siste = r[0]  # nyeste år først
print(siste.aar, siste.resultat.driftsinntekter, siste.nokkeltall.egenkapitalandel)

Nøkkeltall er desimaltall (0,131 for 13,1 prosent) fra versjon 2026-09-01.

Overvåk kundene dine

Abonner på hendelser for kundene i registeret ditt. Lag en navngitt liste over organisasjonsnumre, og bruk den som filter:

curl -X PUT https://api.spireapi.com/v1/lister/kunder -d '{"orgnr":["923456789","915123456"]}'
curl -X POST https://api.spireapi.com/v1/webhooks -d '{"url":"…","hendelser":["virksomhet.*"],"filter":{"orgnr_liste":"kunder"}}'

Listen kan ha 50 000 numre og oppdateres med PATCH (legg til / fjern). Du får virksomhet.endret, virksomhet.roller_endret, virksomhet.konkurs og virksomhet.slettet for selskapene i listen, innen 15 minutter etter at kilden endret seg.

Nattlig vask

Webhooks fanger endringer fremover. For å rette opp i et eksisterende register, kjør masseoppslag:

with open("kunder.ndjson", "w") as ut:
    for linje in spire.virksomheter.masse(orgnr_liste, utvid=["roller"]):
        ut.write(linje.json() + "\n")

Svaret strømmes som NDJSON i samme rekkefølge som inn. Linjer for ukjente numre har feil.kode = "ikke_funnet". Masseoppslag teller ett kall per nummer, så 10 000 selskaper er 10 000 kall; planlegg kvoten deretter.

Konsernstruktur

GET /v1/virksomheter/{orgnr}/konsern gir mor, dotre (med eierandel) og topp (øverste morselskap). Hvert kall gir ett nivå; traverser rekursivt for hele treet. Eierandeler kommer fra aksjonærregisteret og er per siste innsending.

Vanlige feil

  • ikke_funnet på et nummer som finnes: nummeret er en underenhet (bedrift), ikke en juridisk enhet. Bruk GET /v1/underenheter/{orgnr} eller slå opp overordnet.
  • Gamle regnskapstall: selskapet har ikke levert. regnskap[0].aar sier siste år som finnes.
  • Roller mangler: enkeltpersonforetak har ikke styre. roller.innehaver er satt i stedet.
Sist oppdatert 2. november 2026 Fant du en feil? Si fra, så retter vi innen en virkedag.