På norsk →

API and MCP — connect your own tools to your accounts

Macct has a documented REST API and an MCP server. With an API token you create yourself, scripts, integrations and AI assistants such as Claude can read your accounts and add vouchers — under the same rules as the app. It is included in the subscription.

REST API

Vouchers, invoices, reports, bank, ledgers, payroll and more — described in a public OpenAPI specification.

What is available →
MCP

Claude and other AI assistants connect directly to your accounts and can add vouchers you approve.

How it works with Claude →
API tokens

Create a token in Settings, choose full or read-only access, and delete it whenever you like.

Create and use a token →

REST API: the same things you can do in the app

The app is built on the same API you get access to. Every endpoint under /api/ is described in an OpenAPI 3 specification that is publicly available, no login required:

  • Swagger UI — browse the endpoints and see parameters and responses.
  • /v3/api-docs — machine-readable specification (JSON) for code generators and Postman.
AreaExamples
Vouchers and chart of accountsRecord and search vouchers, look up accounts
ReportsTrial balance, income statement, balance sheet, general ledger and VAT for any period
Invoices and ledgersOutgoing invoices, open items for customers and suppliers
Documents inUpload a PDF or image that becomes a posting suggestion in the Inbox
BankStatement import and reconciliation
Payroll, hours, travel and expensesEmployees, payroll runs, time tracking, travel claims
Fixed assets, year-end and tax returnDepreciation, year-end closing and the status flow towards filing

Every call works on the company of the user who owns the token. No parameter can point to another company — ask for something that is not yours and the API answers 404.

curl -H "Authorization: Bearer <token>" \
  "https://macct.no/api/rapport/saldobalanse?fra=2026-01-01&til=2026-09-30"

MCP: let Claude work in your accounts

MCP (Model Context Protocol) is an open standard for giving AI assistants access to tools. Macct is an MCP server at https://macct.no/api/mcp. Connect Claude to it and you can say “here is the invoice from Adobe — add it to Macct”, and Claude sends it through the same flow as the Inbox: reading, supplier lookup, posting suggestion and checks. Claude shows you the suggestion and posts it only when you say yes — unless you switch on automatic posting in Settings yourself.

The tools

ToolWhat it does
last_opp_bilagSends in an invoice or receipt and creates a suggestion
hent_innboks, hent_forslagShows the suggestions: account, VAT, warnings and an explanation of why
godkjenn_forslag, forkast_forslagPosts or discards — only after you have confirmed
hent_noekkeltall, hent_saldobalanse, hent_hovedbok, sok_bilagAnswers questions about your numbers
hent_reskontro, hent_aapne_fakturaer, hent_uavstemt_bankWho owes what, and what is unreconciled in the bank
hent_frister, hent_mva_terminDeadlines and VAT for the current term
sok_kontoplan, foreslaa_konteringFinds the right account for an expense

The server also offers the prompt behandle_innboks. In Claude Code it becomes the command /mcp__macct__behandle_innboks, which walks through the Inbox suggestion by suggestion and asks you about each one.

Connect

Claude Code (terminal):

claude mcp add --transport http macct https://macct.no/api/mcp \
  --header "Authorization: Bearer <token>"

Claude Desktop — through the mcp-remote bridge in claude_desktop_config.json (requires Node.js):

{ "mcpServers": { "macct": {
    "command": "npx",
    "args": ["-y", "mcp-remote", "https://macct.no/api/mcp",
             "--header", "Authorization: Bearer <token>"] } } }

Once you have created a token, Settings shows both snippets with the token filled in. Other MCP clients that support HTTP transport with an Authorization header connect the same way.

Not yet: Claude in the browser (claude.ai) and the mobile app connect to external servers with sign-in via OAuth. Macct does not support that yet, so the MCP connection does not work there. Use Claude Code or Claude Desktop.

Create and use an API token

  1. Log in and go to Settings → Integrations and reporting → API tokens.
  2. Give the token a name, for example “Claude on the work laptop”.
  3. Tick Read-only if the client should only read and answer questions.
  4. Copy the token straight away — it is shown only once.

The token is sent as Authorization: Bearer <token> on every call, both to the REST API and to the MCP server. It is valid for one year, and you can delete it in the same list at any time — the client loses access immediately. Both creation and deletion are recorded in the company's security log.

AccessWhat the token can do
Read-onlyRead reports, inbox, ledgers and vouchers. Anything that changes data is refused — both over REST and in MCP.
FullThe same as you can do in the app with your user, including recording and deleting.

A token is tied to you and your company. Treat it like a password — anyone who has it can use your access.

Limits and requirements

  • MCP does not post without your yes — unless you switch on automatic posting in Settings yourself. Then a document with no warnings is posted straight away, just as when you upload it in the app or send it by email. Otherwise: godkjenn_forslag requires the client to state that you have confirmed, that the suggestion has not changed since you saw it, and — if the suggestion has a blocking warning, such as a possible duplicate — that you have confirmed that specifically. This is checked in code, not just in an instruction.
  • REST with a full token is like using the app. A script with a full token can record vouchers directly, without suggestion and approval. If an AI should only answer questions, give it a read-only token.
  • Filing goes through approval. The MCP server has no tool for sending anything to Altinn. Over REST, the tax return follows the same status flow as in the app: draft → ready → approved → submitted.
  • 100 calls per minute per IP address to /api/. Above the limit the API answers 429.
  • Large files: last_opp_bilag takes the file as base64 inside the call. That suits scripts; for files on disk, curl -F fil=@invoice.pdf https://macct.no/api/ocr/scan-faktura or the email intake is simpler. Reading a document typically takes 10–15 seconds.
  • No webhooks yet: to find out about something new, ask the API.

Examples of use

  • Vouchers from the conversation: drop an invoice into Claude and say “add it to Macct”. You see account and VAT before anything is posted — unless you switch on automatic posting in Settings yourself.
  • Questions about the numbers: “Who owes us money?”, “What will VAT be this term?”, “What did we spend on software last year?” — the answers come from your own accounts.
  • The inbox round: run /mcp__macct__behandle_innboks on Friday and go through the week's documents one by one.
  • Receipts from a folder: a small script that sends every PDF in a folder to /api/ocr/scan-faktura, so they are waiting in the Inbox.
  • Your own dashboard: fetch the trial balance or income statement every month with a read-only token and put the numbers in your spreadsheet or BI tool.
Try it on your own accounts

API and MCP are included in the subscription. Create a token, connect Claude and add your first voucher.

Try free for 30 days See the price