
Accounted
MCPOpen-source accounting for Swedish sole traders and limited companies: 150+ MCP tools let AI categorize bank transactions, draft entries, reconcile and prepare VAT, payroll and year-end filings, all writes needing your approval. Hosted (OAuth) or self-hosted; accountant review advised.
Accounted
Open-source Swedish accounting software for sole traders (enskild firma) and limited companies (aktiebolag). Double-entry bookkeeping that complies with Swedish accounting law, built to be operated by you or by your AI agent.
Use Accounted · Self-host · Documentation · Contribute
Why Accounted?
Compliant by construction. Accounted implements double-entry bookkeeping under Swedish accounting law (Bokföringslagen). Voucher immutability, sequential voucher numbering, period locks, and 7-year document retention are enforced by database triggers, not by convention. See the architecture guide for the engine, enforcement, and audited correction paths.
Agent-native. The full bookkeeping engine is exposed as 150+ MCP (Model Context Protocol) tools with scoped API keys or OAuth, so an AI agent can do the books in Accounted: categorize transactions, draft vouchers, reconcile periods, and prepare declarations. Posting is staged for human approval, so the agent proposes and you decide.
Yours to run. AGPL-3.0 licensed and fully self-hostable with Docker and Supabase. Use the hosted version at app.accounted.se or run your own.
Features
- Double-entry bookkeeping -- BAS 2026 chart of accounts, draft/commit workflow, sequential voucher numbering
- Invoicing -- Create, send, and track invoices with mixed VAT rates and PDF generation
- Bank reconciliation -- PSD2 bank connection via Enable Banking, 4-pass automatic matching
- VAT declaration -- SKV 4700 form mapping, per-rate breakdown, EU/export handling
- Tax reports -- NE-bilaga, INK2, SRU export for Skatteverket
- Payroll -- Salary runs, payslips, and AGI (arbetsgivardeklaration) employer declarations
- Supplier invoices -- Registration, payment tracking, input VAT deduction
- Supplier payment files (betalfil) -- Batch supplier payments into ISO 20022 pain.001 files for upload to the bank, rendered byte-identical on every download
- E-invoicing (Peppol) -- Send and receive Peppol BIS Billing 3 e-invoices through Qvalia, a certified Swedish Access Point; received documents land in the supplier invoice inbox
- Skattekonto -- Tax account transactions synced from Skatteverket or imported from statement files, linked to the booked 1630 movements for reconciliation
- Document archive -- SHA-256 integrity, 7-year retention enforcement, full archive ZIP export
- SIE import/export -- Standard Swedish accounting interchange format
- Agent access (MCP) -- 150+ bookkeeping tools over the Model Context Protocol, with scoped API keys and staged approvals; connects to Claude, ChatGPT, Grok and Gemini over OAuth 2.1
- Claude connector and plugin -- Connect Claude.ai or Claude Code over OAuth 2.1 and install approval-gated workflow skills (
/accounted:bookkeep,/accounted:vat,/accounted:year-end, ...) from the Accounted plugin - Extension system -- Opt-in plugins for AI categorization, receipt OCR, email, calendar, and more
Self-Hosting
git clone https://github.com/erp-mafia/accounted.git
cd accounted
./docker/setup.sh # Prompts for Supabase credentials, generates .env
docker compose up -d
You need a Supabase project and must apply the database migrations before first use. See docs/SELF-HOSTING.md for the full step-by-step guide, including Supabase setup, auth configuration, optional features (AI, email, push notifications), and troubleshooting. To run everything on Swedish infrastructure (your own Supabase stack, Swedish hosting, AI on Swedish GPUs), see docs/SOVEREIGN.md.
Development Setup
Prerequisites: Node.js 20 or newer (CI runs Node 20; the Docker image ships Node 22), a Supabase project.
npm install
npm run dev # Start dev server (auto-generates extension registry)
npm test # Run tests
npm run build # Production build
npm run lint # ESLint
See contributing guide for the full development workflow.
Tech Stack
- Framework: Next.js 16 (App Router), React 19, TypeScript (strict)
- Database: Supabase (PostgreSQL + Row Level Security + email/password auth + TOTP MFA)
- Styling: Tailwind CSS 4 + shadcn/ui
- Integrations: Enable Banking (PSD2), Qvalia (Peppol), Skatteverket, Anthropic SDK on Amazon Bedrock (eu-north-1; direct Anthropic or any OpenAI-compatible endpoint for self-hosted via the Vercel AI SDK), Resend, JSZip
Repository map
| Path | Purpose |
|---|---|
src/ | Application routes, components, accounting services, translations, and extensions |
packages/ | MCP bridges, connector contract, and Claude Code plugin |
supabase/ | Database configuration and migration history |
tests/ | Shared fixtures, database suites, and cross-cutting tests; unit tests also live beside their code |
scripts/, docker/ | Development tools and self-hosting internals |
docs/ | Architecture, hosting, operations, and project history |
packs/ holds bookkeeping templates, registry/ holds community content, and skills/ holds installable agent skills. These are maintained inputs, not generated build folders.
Documentation
The documentation index groups the repository guides by task.
- User and API documentation
- Architecture
- Self-hosting and Docker reference
- Extension development
- Contributing and security reporting
Community
- Found a bug or have an idea? Open an issue
- Security vulnerabilities: see SECURITY.md, never a public issue
- Everyone interacting in the project is expected to follow the Code of Conduct
Contributing
Contributions are welcome. See contributing guide for the full guide.
All commits require a DCO sign-off (git commit -s).
License
AGPL-3.0-or-later with an extension exception: third-party extensions that interact solely through the documented Extension API may be licensed under any terms, including proprietary. See LICENSE for details and NOTICE for third-party attributions.
Ressources associées

Norman MCP Server
MCPOfficial MCP for Norman, a German bookkeeping and tax service: create invoices (including ZUGFeRD e-invoices), categorize transactions, match receipts, preview and file VAT returns, and prepare GmbH/UG formation documents. Needs a Norman account (OAuth); a tax advisor should review filings.
norman-finance/norman-mcp-server61
freee-mcp
MCPOfficial MCP and skills from freee, Japan's cloud accounting service: accounting, invoices, HR and payroll, timesheets, fixed assets and tax filings. Remote server with freee OAuth recommended; freee Sign e-contracts are local-only for now. Have an accountant check results.
freee/freee-mcp507
OpenAccountants
MCPMCP for an open-source tax guide library: when answering income tax, VAT and payroll tax questions, agents cite up-to-date guides covering 200+ jurisdictions, some reviewed by named licensed accountants. Hosted, no install. Reference only; check with an accountant before filing.
openaccountants/openaccountants445
QuickBooks Online MCP Server
MCPLets agents read and write QuickBooks Online customers, invoices, bills, journal entries and more, and generate balance sheets, P&L and cash flow reports. Official from Intuit; register a developer app for OAuth, then build from source and run locally.
intuit/quickbooks-online-mcp-server426
Xero MCP Server
MCPLets agents read and write Xero accounting data: contacts, chart of accounts, invoices, payments, journals and reports such as profit and loss; payroll queries work only for NZ and UK organisations. Maintained by Xero; create a Custom Connection in the developer portal.
XeroAPI/xero-mcp-server379
Actual Budget MCP Server
MCPConnects to Actual Budget, the open-source budgeting app: query accounts and transactions, analyze spending by category and payee, compare budget to actual, track cash flow and net worth; --enable-write adds editing of transactions, categories and rules. Needs an Actual server or local data.
s-stefanov/actual-mcp260