Accounting · Beta
Fortnox
API integration
Ship Accounting features without building the integration. Full Fortnox API access via Proxy and 10+ MCP-ready tools for AI agents — extend models and mappings to fit your product.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Fortnox
Common scenarios for SaaS companies building Fortnox integrations for their customers.
Automate Quote-to-Cash for Nordic SMBs
CRM and CPQ platforms selling into Sweden can turn closed-won deals into Fortnox invoices instantly, eliminating manual re-entry between sales and finance teams.
Push E-commerce and POS Orders into Accounting
E-commerce and point-of-sale products can sync daily orders into Fortnox as invoices, mapping SKUs to Fortnox Articles so revenue lands correctly in the books.
Bill Field Service Jobs Without Double Entry
Field service and project management SaaS can convert logged hours and consumed materials into itemized Fortnox invoices the moment a job is marked complete.
Categorize Expenses Against the Real Vendor Ledger
Spend management and AP automation tools can fetch the connected company's Fortnox suppliers so employees categorize expenses against the exact supplier records finance already uses.
Serve Accounting Agencies Managing Multiple Clients
Because most Swedish SMBs are supported by external bookkeepers, verifying the connected legal entity via company information lets your product safely route data to the correct client tenant.
What You Can Build
Ship these features with Truto + Fortnox
Concrete product features your team can ship faster by leveraging Truto’s Fortnox integration instead of building from scratch.
One-click customer creation from your app
Detect whether a customer already exists in Fortnox by listing customers, and either create a new record or update the existing one with fresh billing details.
Automated invoice generation from deals, orders, or jobs
Build multi-line Fortnox invoices programmatically, populating InvoiceRows with quantities, descriptions, and prices tied to your users' workflows.
Article-aware line item mapping
Let users map their internal products or services to Fortnox Articles so every invoice line references the correct SKU and revenue account.
Supplier picker for expense categorization
Surface the connected company's Fortnox supplier list inside your UI so employees or AP workflows tag expenses against real SupplierNumbers.
Multi-entity tenant verification
Use Fortnox company information to display the connected OrganizationNumber and DatabaseNumber, so accountants managing multiple clients always know which entity they're syncing to.
Invoice status lookups and receipts in-app
Fetch a specific invoice by ID to display its status, number, and details inside your product so users don't have to switch to Fortnox to confirm a push succeeded.
SuperAI
Fortnox AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_fortnox_companyinformation
Retrieve the Fortnox company information for the connected account. Returns: Address, City, CompanyName, CountryCode, DatabaseNumber, OrganizationNumber, VisitAddress, VisitCity, VisitCountryCode, VisitZipCode, ZipCode. Takes no parameters.
list_all_fortnox_me
Get the Fortnox user information tied to the access token used for the request. Returns a single me record with the user details associated with the used access token.
get_single_fortnox_customer_by_id
Get a single Fortnox customer by its customer number. Returns the full customer record including CustomerNumber, Name, Email, OrganisationNumber, Active, and address details. Required: id (customer number).
list_all_fortnox_customers
List Fortnox customers sorted by customer number, lowest number first. Returns each customer's CustomerNumber, Name, Email, OrganisationNumber, Active, and address details. Filterable by active/inactive status, customernumber, name, city, email, and phone.
create_a_fortnox_customer
Create a customer in Fortnox. Returns the created customer including CustomerNumber, Name, Email, OrganisationNumber, and Active. Requires name.
update_a_fortnox_customer_by_id
Update a Fortnox customer identified by its customer number. Returns the updated customer including CustomerNumber, Name, Email, OrganisationNumber, and Active. Required: id (customer number).
get_single_fortnox_article_by_id
Get a single Fortnox article by its unique article number. Returns the article record with its id (the article number) plus article-specific detail fields. Required: id (article number).
list_all_fortnox_articles
List Fortnox articles, sorted by article number with the lowest number appearing first. Returns a collection of article records, each with its id (the article number) plus article-specific detail fields.
get_single_fortnox_supplier_by_id
Get a single supplier in Fortnox by id. Returns the full supplier object including SupplierNumber, Name, Active, Email, City, CountryCode, and VATNumber. Required: id (the supplier's SupplierNumber).
list_all_fortnox_suppliers
List suppliers in Fortnox. Returns each supplier's SupplierNumber, Name, Active, Email, and City.
create_a_fortnox_invoice
Create an invoice in Fortnox for a customer. Returns the created invoice including InvoiceNumber, CustomerNumber, InvoiceDate, and InvoiceRows. Required: customer_number, invoice_date, invoice_rows.
get_single_fortnox_invoice_by_id
Get a single Fortnox invoice by id (the invoice number). Returns: InvoiceNumber, CustomerNumber, InvoiceDate, InvoiceRows. Required: id.
list_all_fortnox_invoices
List invoices in Fortnox. Returns invoices with InvoiceNumber, CustomerNumber, InvoiceDate, and InvoiceRows on each record.
Why Truto
Why use Truto’s MCP server for Fortnox
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 750+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
How It Works
From zero to integrated
Go live with Fortnox in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Fortnox account
Use Truto’s frontend SDK to connect your customer’s Fortnox account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Fortnox
Truto’s Proxy API is a 1-to-1 mapping of the Fortnox API. You call us, we call Fortnox, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Fortnox’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Fortnox on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How does authentication with Fortnox work through Truto?
Truto handles the full Fortnox OAuth flow, including token exchange and refresh. Your end users connect their Fortnox account through a Truto-managed link, and you make API calls without ever touching credentials or refresh tokens.
Can I support customers who use external bookkeepers managing multiple companies?
Yes. Each Fortnox connection corresponds to a single company tenant. You can call list_all_fortnox_companyinformation to confirm the OrganizationNumber and DatabaseNumber of the connected entity, which is essential when an accountant manages several client companies.
What Fortnox resources are supported today?
The current inventory covers Customers (list, get, create, update), Articles (list, get), Suppliers (list, get), Invoices (list, get, create), the authenticated user (me), and company information. If you need additional resources like vouchers, orders, or supplier invoices, Truto can add them on request.
How do I keep customer data in sync between my app and Fortnox?
Use list_all_fortnox_customers to detect existing records, create_a_fortnox_customer for new ones, and update_a_fortnox_customer_by_id to keep billing details current. Truto normalizes pagination so you can iterate the full customer list reliably.
How does invoice creation handle line items and product mapping?
create_a_fortnox_invoice accepts InvoiceRows where each row can reference an existing Fortnox Article. Use list_all_fortnox_articles or get_single_fortnox_article_by_id to resolve the correct ArticleNumber before building the payload so invoices post cleanly into the ledger.
How does Truto handle Fortnox rate limits and API quirks?
Truto abstracts Fortnox's per-token rate limits, request retries, and response normalization. You get consistent JSON responses and standardized error handling, so you don't have to build custom backoff or parsing logic for Fortnox specifically.
Fortnox
Get Fortnox integrated into your app
Our team understands what it takes to make a Fortnox integration successful. A short, crisp 30 minute call with folks who understand the problem.