← alle innlegg

Hvorfor et bibelforlag driver sin egen valutakurstjeneste

Alle selskaper som selger over landegrensene har det samme lille, tilbakevendende problemet: hva er dette beløpet verdt i dag, og hva var det verdt den dagen fakturaen ble skrevet? For et norsk forlag som fakturerer i dollar, euro og pund, dukker det spørsmålet opp flere ganger i uken – i regnskap, i prising, i en kontrakt, i en samtale med en KI-assistent som hjelper til med å utforme et tilbud.

Det finnes hundrevis av valutakurs-API-er. Vi bygde likevel vårt eget. Dette er den ærlige beretningen om hvorfor, hva det kostet, hva det gjør, og når du bør bruke noe annet.

Hva de fleste valutakursguider har rett i – og hva de overser

De fleste sammenligninger av valuta-API-er rangerer leverandører etter antall valutaer, oppdateringsfrekvens og pris per tusen kall. Det er de riktige spørsmålene hvis du er på handletur. Det er feil spørsmål hvis du bygger infrastruktur du har tenkt å beholde.

Det de sjelden spør om, er: hvem er sannhetskilden, og hva skjer på dagene den er taus? Nesten alle kommersielle valutastrømmer glatter over hull. Hvis en sentralbank ikke publiserer noe på en søndag, returnerer API-et likevel et tall, fordi et tomt svar ser ut som en feil for kunden. Det tallet er en interpolering kledd ut som et faktum, og så snart det havner i hovedboken din, kan du ikke skille de to fra hverandre.

Vår konklusjon var at for regnskap og kontrakter er en manglende kurs mer nyttig enn en oppdiktet en.

Hvorfor vi bygde det i stedet for å kjøpe det

Tre grunner, i rekkefølge etter vekt.

Én enkelt sannhetskilde. Norges Bank publiserer de offisielle norske kronesatsene. For et norsk selskap er det disse tallene skattemyndighetene, en revisor og en domstol anerkjenner. Enhver annen datastrøm er en kopi via et mellomledd.

Ingen måling på vår egen regning. Tjenesten svarer på tusenvis av interne kall fra andre Publifye-systemer – prising, fakturering, rapportering – og vi ønsket ikke et telleverk per kall på et tall en sentralbank publiserer gratis.

Våre KI-assistenter trengte det direkte. Hver eneste tjeneste i dette miljøet snakker Model Context Protocol, slik at en assistent kan slå opp en reell kurs midt i en samtale i stedet for å hente en fra treningsdataene. En kurs en KI husker er en kurs fra en ukjent dato, og det er verre enn ingen kurs i det hele tatt.

Hva tjenesten faktisk er

Currency Exchange er den minste tjenesten vi driver. Den synkroniserer daglig fra Norges Banks SDMX-API og leverer resultatet på tre måter: et offentlig nettsted, et lite skrivebeskyttet web-API og MCP-verktøy for KI-assistenter.

Egenskap Hva det er
Kilde Norges Bank SDMX REST API, de offisielle norske kursene
Valutaer 38 mot kronen, inkludert indeksene I-44, TWI og IMFs spesielle trekkrettigheter (SDR)
Historikk Tilbake til rundt 1980, med 326 970 daglige observasjoner lagret
Publisering Norges Bank publiserer rundt 16:00 CET på virkedager
Hull Forblir hull; tjenesten interpolerer aldri
Kjøpekraftindeks 202 land fra Verdensbank-data, 1990 til 2025
Grensesnitt Nettsted, skrivebeskyttet JSON-API og åtte MCP-verktøy

Nektelsen av å fylle hull er designbeslutningen alt annet følger av. På en norsk helligdag finnes det ingen kurs, og tjenesten opplyser om det. Når du konverterer et beløp i en helg, går den opptil fem dager tilbake til den siste reelt publiserte kursen og forteller deg hvilken dato den brukte.

Ingeniørkunsten: hvordan en liten tjeneste holder seg oppe

En tjeneste er bare verdt å bygge hvis den er kjedelig å drifte. Tre valg gjør denne kjedelig.

Den starter uten nettverk

Hele kurshistorikken leveres i binærfilen som komprimerte data, så en fersk container svarer korrekt i samme sekund den starter. Den varmer deretter opp fra databasen sin, og fyller deretter inn eventuelle mangler fra Norges Bank i bakgrunnen. Det finnes ikke noe tidsrom der tjenesten kjører, men tar feil.

Den cacher i to nivåer

Lesinger kommer fra en minneintern struktur (in-memory map) over hver eneste kurs den kjenner til. Databasen bak er varig lagring og skrivebanen, ikke lesebanen. Et kursoppslag er et map-oppslag.

Den feiler mot stillhet, ikke mot oppdiktning

Hvis Norges Bank er utilgjengelig, forblir gårsdagens data korrekte, og dagens er rett og slett fraværende. Ingenting i kodestien kan fabrikkere et tall.

Kjøpekraftindeksen: prising for landet, ikke valutaen

Å konvertere en pris er aritmetikk. Å prise et produkt er det ikke.

En bok til 249 kroner er ordinært i Oslo og dyrt i Manila, og valutakursen forteller deg ikke det. Derfor har tjenesten også en kjøpekraftindeks bygget på Verdensbank-data som dekker 202 land, noe som lar nettbutikkene våre justere en pris til lokal kjøpekraft i stedet for bare å konvertere tallet.

Dette er brikken et generisk valuta-API ikke kan gi deg, fordi det ikke er et valutaspørsmål. Det er forskjellen mellom å selge i et land og bare være synlig der.

Hvordan din KI bruker det

Koble tjenesten til en assistent, og den kan bruke disse direkte:

Verktøy Hva det svarer på
get_rate Kursen for én valuta på én dato
convert Et beløp fra én valuta til en annen, krysset via kronen
get_rates_range En serie over et datointervall, for diagrammer og trender
get_all_rates Alle kurser på en enkeltdato
list_currencies De 38 kodene og navnene deres
get_buying_power Kjøpekraftindeksen for ett land
list_buying_power Hele landindeksen
service_status Helse, versjon og når den sist ble synkronisert

Det er ingen API-nøkkel å opprette og ingen klient å installere. Tilkoblingen fungerer på samme måte som resten av miljøet, som vi forklarer i Hvordan din KI kobler seg til Darash, Junifye og Lexifye.

Når du bør bruke noe annet

Vi vil heller si dette rett ut enn at du må oppdage det selv.

Du trenger handelskurser i sanntid. Dette er daglige referansekurser som publiseres én gang per virkedag. Hvis du utfører handler, trenger du en markedsdatastrøm, ikke en sentralbankreferanse.

Du er ikke forankret i kronen. Hver eneste kurs her er oppgitt mot den norske kronen. Krysskurser mellom to andre valutaer beregnes via den, noe som er korrekt, men legger til et ekstra konverteringstrinn. Hvis virksomheten din aldri er i berøring med Norge, passer en euro- eller dollarforankret kilde bedre.

Du trenger valutaer vi ikke har. Trettiåtte er hva Norges Bank publiserer. Det er ikke hele verden.

Hva dette har med et forlag å gjøre

Det er rimelig å spørre hvorfor et selskap som gir ut bibler driver en valutatjeneste.

Svaret er at infrastrukturen også er produktet. Vi selger bøker i mange land, i mange valutaer, gjennom våre egne nettbutikker. For å prise dem riktig trengs det kurser og kjøpekraft. Fakturering trenger en kurs på en spesifikk historisk dato som en revisor vil godta. Våre egne KI-assistenter må kunne svare på pengespørsmål uten å hallusinere et tall.

Hver eneste tjeneste i miljøet finnes av en slik grunn. Bibelmotorene er den synlige halvparten. Darash gjør hebraisk og gresk forskning. Junifye publiserer bøkene. Og en liten tjeneste svarer stille på hva en dollar var verdt den dagen kontrakten ble signert.

Ofte stilte spørsmål

Hvor kommer kursene fra?

Norges Bank, Norges sentralbank, gjennom sitt offentlige SDMX-API. De er de offisielle norske referansekursene.

Hvor ofte oppdateres de?

Én gang per virkedag, publisert rundt 16:00 CET. Det finnes ingen kurser i helger eller på norske helligdager, fordi ingen blir publisert.

Hva skjer hvis jeg ber om en helgedato?

Konverteringen går opptil fem dager tilbake til den sist publiserte kursen og forteller deg hvilken dato den faktisk brukte. Du blir aldri servert et oppdiktet tall uten å få beskjed.

Hvor langt tilbake går historikken?

Til rundt 1980, som er så langt Norges Banks serie strekker seg. Det er rundt 326 970 daglige observasjoner på tvers av de 38 valutaene.

Er den gratis å bruke?

Nettstedet og det skrivebeskyttede API-et er offentlige og krever ingen innlogging. KI-tilgang over MCP har et gratis nivå for evaluering og et betalt nivå utover det.

Kan jeg bruke den til regnskap?

Det er det den ble bygget for. Kursene er de offisielle norske, på de nøyaktige datoene de ble publisert, og tjenesten vil ikke fabrikkere en kurs for en dato som ikke har noen.

Hva brukes kjøpekraftindeksen til?

Prising. Den uttrykker hva et gitt beløp er verdt i praksis i et land, ved hjelp av Verdensbank-data på tvers av 202 land, slik at en pris kan tilpasses lokal kjøpekraft i stedet for bare å bli konvertert.

Konklusjon

Currency Exchange er ikke en smart tjeneste. Den henter et offentlig datasett én gang om dagen, nekter å gjette, og leverer resultatet til et nettsted, et API og en KI-assistent.

Det er hele poenget. Innen infrastruktur er komponentene du aldri tenker over, de som ble bygget riktig. Hvis du vil se den i aksjon, er kursene og konverteren offentlige, og du trenger ingen konto for å ta en titt.

Få en e-post når vi lanserer noe nytt. Abonner på nyhetsbrevet