Så skapar jag fakturor i Fortnox med Claude

Jag byggde en egen Fortnox MCP som gör fakturautkast från mina tider i Toggl. Så fungerar den, vad den inte får göra och vad som strulade på vägen.

· Nils Agerberg

Jag har byggt mot Fortnox API åt kunder sedan 2014. Den här gången byggde jag något åt mig själv. Det är en egen Fortnox MCP som låter mig skapa fakturor i Fortnox genom att skriva en mening till Claude, med tiderna hämtade från Toggl. Här berättar jag hur jag gjorde förut, vad den gör nu, var gränserna går och vad som strulade på vägen.

Så gick det från Toggl till Fortnox förut

Varje månad gjorde jag samma sak för varje kund. Jag öppnade Toggl, tog fram en sammanfattande rapport för kunden och månaden och sparade den som PDF. Sedan skapade jag fakturan i Fortnox med en enda rad, ”September enl. bifogad spec”, 1 st och hela beloppet från rapporten. Till sist bifogade jag PDF:en.

Det tar inte lång tid för en faktura. Men det är samma klick för varje kund, och med många kunder blir det ändå en del tid som går åt till att flytta siffror från ett program till ett annat. Det är precis den sortens jobb jag hjälper andra att automatisera, så det var dags att automatisera faktureringen hemma också.

Vad min Fortnox MCP gör nu

Nu skriver jag ”Gör fakturautkast för oktober” i Claude Desktop, och sedan händer det här:

  1. Claude hämtar de debiterbara timmarna och beloppen per kund från Toggl. Den använder Toggls egna timpriser, så summan blir densamma som i Toggl-rapporten.
  2. Varje kund i Toggl matchas mot den kund i Fortnox som har samma eller tydligt liknande namn. Om det står AB eller Aktiebolag spelar ingen roll. Finns det två kunder som är lika nära, eller ingen alls, gissar den inte utan listar kunden för mig i stället.
  3. Jag får se en förhandsvisning av fakturorna innan något skapas, och den väntar på mitt ja.
  4. När jag svarat ja skapas en ej bokförd faktura per kund i Fortnox, med samma rad som förut. Det blir ”Oktober enl. bifogad spec”, 1 st och hela beloppet.
  5. PDF-rapporten från Toggl bifogas och är inställd på att följa med när fakturan skickas.

Sedan går jag in i Fortnox, tittar igenom fakturorna och skickar dem själv. De ser ut precis som de jag gjorde för hand, så för kunden är allt som vanligt.

Den får skapa utkast, men aldrig skicka

MCP-servern kan inte bokföra, skicka eller ta bort fakturor. De verktygen finns helt enkelt inte i den, så det spelar ingen roll hur jag formulerar mig eller om Claude missförstår mig. Att skapa fakturor kräver dessutom att jag bekräftar det uttryckligen, och kör jag samma sak två gånger blir det inga dubbletter.

Utöver det finns några verktyg som bara läser. Jag kan fråga vilka kunder som finns och vilka fakturor som är obetalda, förfallna eller ligger kvar obokförda.

Det här var ett medvetet val. I Fortnox ger varje scope både läs- och skrivrätt, som jag skriver om på sidan om Fortnox MCP, så gränsen måste sitta i MCP-servern. Jag vill gärna att AI:n förbereder mina fakturor, men det är jag som ska skicka dem.

Så fungerade det på riktigt

Den 7 oktober testade jag den mot mitt eget Fortnox med tiderna från september. Utkastet till Profilbutiken blev rätt, med PDF:en från Toggl bifogad. Sedan körde jag hela flödet i Claude Desktop, och det fungerar riktigt bra. Har du många kunder kommer det att spara en hel del tid.

Inloggning med tjänstekonto

MCP:n loggar in i Fortnox med ett tjänstekonto och client credentials, alltså samma modell som Profilbutiken kör på sedan 2026. Ett tjänstekonto är en egen användare för integrationen, så den hänger inte på min personliga inloggning. Den har de här scopes:

  • invoice
  • customer
  • article
  • companyinformation
  • inbox
  • connectfile

De två sista behövs för att kunna bifoga PDF:en till fakturan. Vill du veta mer om hur inloggningen fungerar har jag skrivit en genomgång av Fortnox API på svenska, med OAuth, scopes och tjänstekonton.

Två saker som strulade

Det gick inte helt utan problem, och båda sakerna är bra att känna till om du själv bygger mot Fortnox.

Den första gällde scopes. När jag hade bockat i de nya behörigheterna i Fortnox utvecklarportal tog det en stund innan Fortnox godtog dem. Fram till dess misslyckades inloggningen med felet invalid_scope, fast allt var rätt inställt. Det löste sig efter en stund, så börja inte ändra i sådant som redan stämmer.

Den andra gällde bilagan. För att bifoga en fil till en faktura laddar du först upp den till inkorgen i Fortnox. Men när du kopplar filen till fakturan ska du använda filens id i arkivet, inte det id du fick från inkorgen. Tar du fel id svarar Fortnox file_not_found, vilket inte säger så mycket om vad som faktiskt är fel.

Toggl är bara en av kontakterna

Den del som hämtar tiderna är byggd för att kunna bytas ut. Toggl är en sådan del, och det finns en till som läser en CSV-fil. Använder du Harvest, Clockify eller ett projektverktyg med egen tidrapportering blir det ytterligare en liten del, medan resten är densamma. Därför går det att koppla till i stort sett vad som helst som vet hur mycket tid som ska faktureras.

Samma kärna kan också köras utan Claude. Den kan startas den första varje månad och lämna utkasten klara i Fortnox, så att du bara behöver titta igenom dem. Den delen är byggd, men jag har inte slagit på den än.

Vill du ha samma sak?

Vill du mest fråga Claude om bokföringen, eller skapa en faktura då och då, räcker oftast en färdig app. Jag har jämfört de som finns på sidan om Fortnox MCP och apparna på marknadsplatsen. En egen blir intressant när du har ett bestämt flöde, som mitt, där underlaget kommer från ett annat system och fakturan ska se ut på samma sätt varje gång.

Det jag bygger är samma sak åt dig, kopplad till ditt tidrapporteringsverktyg eller ditt eget system. Har ditt företag redan en MCP kan jag lägga till Fortnox i den. Du får ett fast pris efter ett samtal. Mer om hur jag jobbar med Fortnox i stort hittar du på sidan om Fortnox-integration.

Undrar du om det skulle fungera med det du använder? Hör av dig så tar vi ett samtal, helt förutsättningslöst.

Läs vidare

Alla artiklar

Vad är det som skaver?

Jag älskar att höra om företags problem, det brukar dyka upp idéer ganska snabbt om hur man kan lösa dem. Förutsättningslöst, så klart.

Finns i
Älvsbyn, Norrbotten
Till kontaktsidan