- Dokumentasjon
- Produkter
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
poststedi 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:
| Felt | Bruk |
|---|---|
navn, organisasjonsform | Visningsnavn og juridisk form |
forretningsadresse, postadresse | Fakturaadresse (bruk postadresse hvis den finnes) |
mva_registrert | Om du skal legge på mva |
naering | Bransje for segmentering |
roller.signaturberettigede | Hvem som kan signere avtaler |
rettighetshavere | Reelle eiere for KYC |
kan_motta_ehf | Om 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_funnetpå et nummer som finnes: nummeret er en underenhet (bedrift), ikke en juridisk enhet. BrukGET /v1/underenheter/{orgnr}eller slå oppoverordnet.- Gamle regnskapstall: selskapet har ikke levert.
regnskap[0].aarsier siste år som finnes. - Roller mangler: enkeltpersonforetak har ikke styre.
roller.innehaverer satt i stedet.