FortnoxFortnox API

Fortnox API — praktisk guide från ett team som kör det i produktion

Fortnox API (api.fortnox.se) är Fortnox REST-gränssnitt för fakturor, kunder, bokföring och leverantörsfakturor. Den här guiden går igenom hur du kommer igång, vilka gränser du behöver planera för och var de vanligaste felen kommer ifrån — skriven av teamet bakom Nordsynk, som driftar en Fortnox-integration med tusentals anrop om dagen.

Sidan kompletterar Fortnox egen utvecklardokumentation på api.fortnox.se. Den ersätter den inte — varje avsnitt länkar vidare till originalkällan.

Fortnox API

Bas-URLapi.fortnox.se/3
AutentiseringOAuth 2.0
Hastighetsgräns25 / 5 s
Paginering?page=

Har Fortnox ett API?

Ja, Fortnox har ett REST-API (api.fortnox.se) med OAuth 2.0; integrationer registreras i Fortnox Developer Portal och aktiveras av kunden i sin egen Fortnox-portal. API:t är organiserat kring resurs-URL:er under /3/ — fakturor, kunder, leverantörsfakturor, bokföring, löner och mer — och svarar i JSON som standard.

Ytan är stor: 233 sökvägar fördelat på 377 operationer, grupperade i namngivna scopes som styr vad en given integration får läsa och skriva. En kund ser bara den data som hör till de scopes integrationen begärde när den aktiverades, inte hela Fortnox API automatiskt.

Så kommer du igång

Att bygga mot Fortnox API kräver fem steg innan du kan hämta din första faktura. Fortnox egen dokumentation går igenom varje del i detalj — här är ordningen i korthet.

  1. 1

    Skapa ett konto i Fortnox Developer Portal

    Du behöver en Fortnox-användare med utvecklarlicens, vilket nya konton får automatiskt. Portalen nås via Meny → Developer Portal i din Fortnox-inloggning.

  2. 2

    Registrera en integration

    Namnge integrationen och välj vilka scopes den ska begära åtkomst till, till exempel bokföring, fakturor eller leverantörsfakturor. Här anger du också din redirect-URI, sidan dit kunden skickas efter godkännande.

  3. 3

    Implementera OAuth 2.0-flödet

    Skicka användaren till Fortnox inloggning, ta emot auktoriseringskoden — giltig i tio minuter — och växla den mot en access-token och en refresh-token med ditt Client ID och Client Secret som legitimation.

  4. 4

    Låt kunden aktivera integrationen

    Kunden godkänner integrationen i sin egen Fortnox-portal eller via Fortnox Integrationsmarknad. Aktiveringen låser fast vilka scopes du faktiskt får använda mot just det företaget.

  5. 5

    Gör ditt första anrop

    Skicka ett GET-anrop mot en resurs, till exempel /3/invoices, med access-token som Bearer-token i Authorization-headern. Fungerar anropet är du igång.

Hastighetsgränser och paginering

Fortnox API tillåter 25 anrop per 5 sekunder per access-token, vilket motsvarar 300 anrop per minut. Fortnox egen OpenAPI-specifikation anger exakt detta, och Nordsynks resiliens-mellanlager är konfigurerat med samma gränser som standardvärde — 25 per 5 sekunder och 300 per minut — så vi utgår aldrig från en siffra vi inte kan verifiera i koden.

Gränsen är ett sliding window: överanvänder du den under en period fortsätter strypningen tills snittet är nere i 25 anrop per 5 sekunder igen. Fortnox svarar med HTTP 429 när gränsen nås, och en robust klient väntar och försöker igen istället för att bara ge upp.

Paginering sker med frågeparametern page, till exempel /3/invoices?page=3. Många klassiska listsvarsmodeller innehåller MetaInformation med @CurrentPage, @TotalPages och @TotalResources, men det beror på resursen: kontrollera responsmodellen och läs dessa exakta fält endast där de finns.

Hela genomgången av rate limits och paginering →

Autentisering: OAuth 2.0, inga api-nycklar

Fortnox API använder OAuth 2.0. Mänskliga användaranslutningar växlar en auktoriseringskod mot access- och refresh-token; Fortnox dokumenterar också client credentials grant för förhandsgodkända servicekonton med tenant-avgränsad åtkomst. Båda använder integrationens Client ID och Client Secret mot token-endpointen.

Varje anrop mot en resurs skickar access-token som Bearer-token i Authorization-headern. Scopes du begärde när integrationen skapades avgör vilka resurser token faktiskt kommer åt, så ett 403-svar betyder oftast ett scope- eller licensproblem snarare än ett fel i själva anropet.

Hela OAuth-flödet, steg för steg →

Kodexempel

Ett minimalt GET-anrop mot fakturor via curl:

curl https://api.fortnox.se/3/invoices \
  -H "Authorization: Bearer $ACCESS_TOKEN"

Svaret paketeras i en Invoices-array. Skrivoperationer, fler språk och kompletta exempel i Python och TypeScript finns på exempelsidan.

Fler kodexempel i Python och TypeScript →

Vanliga fel

De flesta felsökningar mot Fortnox API landar i en av de här fyra.

401 Unauthorized

Access-token saknas, är felstavad eller har gått ut. Token är bara giltig i en timme, så en integration som inte förnyar den automatiskt med sin refresh-token stöter på det här regelbundet.

403 Forbidden

Oftast ett scope-, licens- eller behörighetsproblem — till exempel error_missing_app_license när företaget saknar en licens för integrationen, eller ett scope som aldrig begärdes vid aktivering.

429 Too Many Requests

Hastighetsgränsen på 25 anrop per 5 sekunder är nådd. Vänta och försök igen med backoff — ett direkt omförsök förlänger bara strypningen.

400 Bad Request

Fältvalidering har misslyckats. Fortnox svarar med ett numeriskt ErrorInformation-objekt (Code och Message), till exempel kod 2000106 när ett fält måste vara alfanumeriskt men innehåller andra tecken.

Slipp limmet: prata med Fortnox via MCP istället

Allt ovan — OAuth-flöde, token-förnyelse, hastighetsgränser, paginering och felnormalisering — är infrastruktur du behöver bygga och underhålla innan du skrivit en rad affärslogik. I praktiken blir det ofta en sprint av limkod för ett team som egentligen bara vill fråga vilka fakturor som är obetalda den här månaden.

Nordsynk exponerar hela Fortnox-ytan — 233 sökvägar, 377 operationer — via en enda MCP-endpoint. Klistra in https://mcp.nordsynk.se/mcp i Claude, ChatGPT eller Cursor så sköter Nordsynk OAuth, token-förnyelse och hastighetsgränser åt dig; du ställer frågan i klartext istället för att skriva klienten.

Vanliga frågor om Fortnox API

Har Fortnox ett API?

Ja, Fortnox har ett REST-API på api.fortnox.se med OAuth 2.0. Du registrerar en integration i Fortnox Developer Portal, men varje kund måste själv aktivera den i sin Fortnox-portal innan den kan användas mot företagets data.

Hur kommer jag igång med Fortnox API?

Skapa ett konto i Fortnox Developer Portal, registrera en integration med rätt scopes och implementera OAuth 2.0-flödet för att hämta en access-token. Kunden aktiverar sedan integrationen i sin egen Fortnox-portal innan du kan anropa API:t mot företagets data.

Vilka hastighetsgränser har Fortnox API?

Fortnox API tillåter 25 anrop per 5 sekunder per access-token, vilket motsvarar 300 anrop per minut. Överskrider du gränsen svarar API:t med HTTP 429 tills anropstakten hunnit sjunka tillbaka.

Hur autentiserar jag mot Fortnox API?

Fortnox API använder OAuth 2.0. Använd authorization code grant för en mänsklig användaranslutning eller client credentials grant för ett förhandsgodkänt servicekonto. Skicka sedan access-token som Bearer-token i Authorization-headern.

Läs vidare

Redo att sluta bygga infrastruktur och börja ställa frågor?

Aktivera Nordsynk i Fortnox-portalen. Under en minut.