# Fortnox MCP connector

The Fortnox connector lets Claude, ChatGPT, Cursor and the Elaichi Agent look up customers, articles, suppliers and invoices in Fortnox and raise new invoices, each person working inside their own Fortnox access.

Source: https://elaichi.ai/connectors/fortnox/

## Facts

| | |
| --- | --- |
| Application | Fortnox |
| Category | Accounting |
| AI tools | 13 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | Yes |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | Yes |

## What you can ask once Fortnox is connected

- Show me all unpaid invoices for Nordic Byggteknik AB
- Create an invoice for Lundgren Konsult with two hours of consulting
- Which suppliers do we have in Gothenburg?

## Connect Fortnox in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Fortnox.
2. Optionally set Share with, then press Connect.
3. Supply your own Fortnox app, then approve. Fortnox needs an OAuth app you register yourself, so bring its client ID and secret. One person does this once for the organization.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Fortnox tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Fortnox to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Fortnox to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Fortnox to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Fortnox to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Fortnox tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Fortnox through Elaichi

### Raise the invoice straight after the job

Finance. Ask for a new invoice against an existing Fortnox customer with the right articles on it, and it is created in Fortnox ready for review.

### Check whether a customer is already set up

Sales. Before quoting, ask whether a company already exists as a Fortnox customer and what price an article carries, and create the customer if it is missing.

### Find every open invoice for one customer

Accounts receivable. Pull up the invoices for a customer, see which are unpaid and when they were due, and get a plain summary before you chase.

### Look up a supplier before you order

Purchasing. Ask for a supplier's details from Fortnox, organization number, terms and address, without opening the accounting system.

### Catch the customer record up after a call

Customer service. When a customer gives a new invoice address or contact, ask for the Fortnox customer to be updated and it is done while you are still on the line.

### Get a plain-language view of invoicing

Leadership. Ask what was invoiced this month, to whom and for how much, and get an answer built from live Fortnox invoices rather than an exported sheet.

## Frequently asked questions

### How do I connect Fortnox to Claude?

Connect Fortnox in Elaichi first. Fortnox requires an app registered inside your own Fortnox account, so one person brings that client ID and secret once and then signs in to Fortnox to approve access, and nobody has to repeat that step afterwards. Then open Claude, go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Fortnox then appears in Claude for you.

### Does Fortnox work with ChatGPT and Cursor as well as Claude?

Yes. Once Fortnox is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Fortnox once and every client gets it.

### What can an AI agent actually do with my Fortnox data?

With Fortnox connected, an agent can look up customers, articles and suppliers, read invoices, create a new invoice, and add or update a customer. It can also read your Fortnox company information. It cannot delete anything in Fortnox and it cannot change an invoice once it exists, because this connector does not offer those actions.

### Does connecting Fortnox give the AI access to everything in my accounts?

No. Every call runs inside the Fortnox access of the person who signed in, so the agent sees exactly the customers, invoices and suppliers that person can already see in Fortnox. Elaichi can narrow that further, for example to reading only, but it can never widen what Fortnox itself allows.

### Can my team share one Fortnox connection?

Yes. One person connects Fortnox and shares the connection with a team, and nobody else handles the Fortnox app details or a credential of any kind. Each teammate still signs in to Elaichi as themselves, so the audit log names the person who created an invoice or changed a customer.

### Can I stop an agent from changing things in Fortnox?

Yes. Restrictions on a Fortnox connection work per action, so you can allow reading customers and invoices while blocking the creation of invoices or changes to customer records. A blocked action is never shown to Claude, ChatGPT or Cursor at all, so no prompt can reach it.

### What happens to a Fortnox connection when someone leaves?

Offboarding a person in Elaichi ends their Fortnox access at once, in every client. If they had shared a Fortnox connection, it keeps working for everyone else on the team. Disconnecting Fortnox once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

## All 13 Fortnox tools

Every tool below is callable through https://api.elaichi.ai/mcp once Fortnox is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Fortnox companyinformation** (List). 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** (List). 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). 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). 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). 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). 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). 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). 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). 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). List suppliers in Fortnox. Returns each supplier's SupplierNumber, Name, Active, Email, and City.
- **Create a Fortnox invoice** (Create). 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). Get a single Fortnox invoice by id (the invoice number). Returns: InvoiceNumber, CustomerNumber, InvoiceDate, InvoiceRows. Required: id.
- **List all Fortnox invoices** (List). List invoices in Fortnox. Returns invoices with InvoiceNumber, CustomerNumber, InvoiceDate, and InvoiceRows on each record.
