På norsk →

API and MCP — connect your own tools to your accounts

Macct is an MCP server with a documented REST API. Connect claude.ai, Claude Desktop, the mobile app or ChatGPT to your accounts with an ordinary sign-in — you log in to Macct, approve the access and choose whether the assistant may read or also post. Your own scripts and integrations use an API token you create yourself. All under the same rules as the app, and 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.ai, Claude Desktop, the mobile app and ChatGPT connect with an ordinary sign-in, read your accounts and add vouchers you approve.

How to connect →
API tokens

For scripts and Claude Code: create a token in Settings, choose full or read-only access, and delete it whenever you like. Access granted via claude.ai appears in the same list.

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
Register sales (v1)Daily settlements and receipts from cash registers, POS and web shops: /api/v1/salgsimport
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"

Register sales from cash registers, POS and web shops

POST /api/v1/salgsimport/batcher accepts daily settlements or individual sales as JSON, with totals per VAT code and per payment method. Macct validates and stores the submission but posts nothing: posting is confirmed by a signed-in user under Register sales. Send an Idempotency-Key — the same key and content return the same submission, and the same external ID is never posted twice, whether it arrives through the API or a file. Create the token with "Sales import only (POS system)" under Settings → API tokens: the POS system can then only send sales and read the status of its own submissions, not read the accounts or do anything else.

curl -X POST -H "Authorization: Bearer <token>" -H "Idempotency-Key: z-2026-10-10-k1" \
  -H "Content-Type: application/json" https://macct.no/api/v1/salgsimport/batcher -d '{
  "kilde": "Kassesystem", "importtype": "DAGSOPPGJOR",
  "transaksjoner": [{ "eksternId": "Z-1042", "dato": "2026-10-10", "kasse": "K1",
    "mvaLinjer": [{ "mvaKode": "3", "netto": 1000.00, "mva": 250.00, "brutto": 1250.00 }],
    "betalinger": [{ "betalingsmaate": "KORT", "belop": 1000.00 }, { "betalingsmaate": "KONTANT", "belop": 250.00 }] }]
}'

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 same applies in ChatGPT and other MCP clients.

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
hent_regnskapshelseAccounting health: which of the eight checks are red, what is wrong, and where to fix it
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 from claude.ai, Claude Desktop, the mobile app or ChatGPT — with sign-in

This is the simplest route, and the one that works in the browser and on your phone. You paste no token — the connection uses the same sign-in as the app (OAuth 2.1), including Macct’s own two-factor code if you have turned it on under Security — if you sign in with Google, your Google account’s two-step verification applies instead.

  1. In claude.ai: Settings → Connectors → Add custom connector, and paste https://macct.no/api/mcp. In ChatGPT: add Macct as an app. Claude Desktop and the mobile app share the connectors you add in claude.ai.
  2. You are sent to Macct and sign in as usual.
  3. Macct shows a consent page: who is asking, which company it concerns, and whether the access should be read or read and post. Press Accept.
  4. Done. Ask Claude about your numbers, or drop an invoice into the conversation.

The access covers exactly one company — if you are an accounting firm, pick the client under Agency → Clients before connecting. It appears under Settings → API tokens marked “OAuth” with the client name, and you can delete it there whenever you like. The client loses access immediately. The access renews itself for up to 90 days without a new sign-in.

New 08.10.2026. Sign-in from claude.ai and ChatGPT is in production. If you have Macct installed as an app in your browser and “Accept” does not send you onwards, reload the page once.

Connect from Claude Code — with a token

Claude Code in the terminal connects with an API token you create under Settings (see below):

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

Once you have created a token, Settings shows the snippet with the token filled in. Other MCP clients that support HTTP transport with an Authorization header connect the same way. Claude Desktop can also be connected like this, through the mcp-remote bridge — but the sign-in above is simpler.

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.
  • One access, one company. A connection from claude.ai or ChatGPT covers the company you chose on the consent page. To work in another company, connect again and pick it there. A “read” access can never post, whatever the assistant is asked to do.
  • 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.ai 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. Connect from claude.ai, sign in and add your first voucher.

Try free for 30 days See the price