Nordlet för apputvecklare
Lägg till fakturering, bokföring och EU-skattedeklarationer i din programvara via ett enda JSON-API, typade SDK:er, webhooks, en MCP-server och sandlådeföretag.
Många appar skapar pengaflöden: en order betalas, en prenumeration förnyas, en återbetalning skickas ut. Varje sådan händelse måste bokföras i ett företags räkenskaper.
Nordlet är ett bokföringsprogram som är byggt med API:et i fokus. Allt som webbapplikationen kan göra är också tillgängligt via ett enda JSON-API. Din app skickar händelserna, och Nordlet sköter bokföringen och förbereder skattedeklarationer.
Vad Nordlet gör
- Exponerar varje åtgärd som
POST /v1/{module}/{resource}/{action}med en JSON-textkropp, till exempel/v1/sales/invoices/create. - Autentiserar varje anrop med en API-nyckel som tillhör ett företag. Varje nyckel har behörigheter (scopes), till exempel
sales:readellersales:write, som begränsar vad den kan göra. - Hanterar belopp som decimalsträngar, aldrig som flyttal, vilket förhindrar att ören går förlorade vid avrundning.
- Accepterar en
Idempotency-Key-rubrik vid varje ändring. Ett nytt försök med samma nyckel returnerar det ursprungliga svaret i stället för att utföra arbetet en gång till. Idempotens (idempotency) innebär att en upprepad begäran ger samma resultat som en enda begäran. - Returnerar samtliga fel i ett gemensamt format.
- Tillåter 300 anrop per minut och API-nyckel.
- Registrerar varje ändring i en granskningslogg (audit log).
Guiden om API-konventioner går igenom var och en av dessa regler i detalj.
Korrekta räkenskaper hela tiden
- Utfärdande av en faktura tilldelar ett lückefritt nummer, kontrollerar att redovisningsperioden (accounting period) är öppen och bokför verifikatet (journal entry) i samma databastransaktion.
- Varje bokföringstransaktion måste balansera. Själva databasen kontrollerar detta när transaktionen sparas.
- Utfärdade och registrerade dokument kan inte raderas. En felaktig bankavstämning rättas till med en auktions-/reverseringstransaktion, inte genom att redigera den ursprungliga posten. Det är detta som menas med en oföränderlig huvudbok (immutable ledger).
SDK:er, MCP och webhooks
- Typade SDK:er genereras från samma OpenAPI-beskrivning för TypeScript, Python, Go, Java, C#, Ruby, PHP, Swift och Rust. Tills en SDK publiceras installerar du den från dess källkodsarkiv. Se SDK-guiden.
- En Postman-samling med samtliga slutpunkter finns tillgänglig.
- MCP-servern gör att en AI-assistent som Claude Code kan söka i API:et och anropa det med din API-nyckel. Varje anrop är en vanlig API-begäran med samma behörigheter och begränsningar.
- Webhooks meddelar din app när något inträffar, till exempel
sale_invoice.issuedellersale_invoice.paid. Varje leverans signeras med en HMAC-signatur så att du kan verifiera att den kommer från Nordlet. Misslyckade leveranser görs om i ungefär 24 timmar.
Testning med sandlådeföretag
- Skapa ett företag med
isSandbox: true, eller markera sandlåderutan när du skapar ett företag i appen. - Ett sandlådeföretag fungerar precis som ett riktigt företag med samma moduler och samma API.
- Det är tydligt märkt som testdata, och du kan inte göra om ett riktigt företag till en sandlåda eller tvärtom.
- Deklarationer och e-fakturor (e-invoice) för ett sandlådeföretag skickas till myndigheternas testtjänster.
- Användningen i ett sandlådeföretag mäts och faktureras på samma sätt som för ett riktigt företag.
Kom igång-guiden guidar dig genom den första API-nyckeln, den första fakturan och hela processen.
FAQ
Kan en app betjäna flera företag?
Ja. Varje API-nyckel tillhör ett visst företag, så du skapar en nyckel per företag. Varje webhook-leverans innehåller companyId för det företag som den tillhör, vilket gör att en enda mottagare kan hantera flera företag.
Måste jag bygga skattedeklarationerna själv?
Nej. Nordlet sammanställer deklarationerna utifrån bokföringen. För varje deklaration skickar systemet den automatiskt, skapar en fil som du laddar upp eller visar de belopp du behöver registrera, beroende på land. Tabellen för deklarationsstöd visar vad som gäller för respektive fall.