Use case
Norwegian compliance infrastructure for regnskapsbyrå
Maskinporten, Altinn 3, and Brønnøysund — without your firm rebuilding the integration for every new client.
Apier is the regulatory infrastructure layer for Norwegian regnskapsbyrå operating multi-client portfolios — not a bookkeeping tool, not a client-facing dashboard.
What scales linearly with portfolio size
Running a regnskapsbyrå at multi-client scale exposes three operational surfaces that the per-firm accounting software wasn't designed for:
- Per-client delegation administration. Every new client engagement starts with the client granting your firm an Altinn 3 System User delegation — and that ceremony repeats on every staff change at the client (innehaver / daglig leder turnover invalidates), every scope expansion (new service line needs new access packages), and every renewal cycle. Multiply by N clients and the operational overhead compounds.
- Cross-agency state reconciliation per client. Each client's regulatory state lives across Brønnøysund (entity registry — signaturrett, prokura, NACE code, dissolved status), Skatteetaten (MVA-register status, recent MVA-meldinger, skatteoppgjør), NAV (Aa-registeret aggregates feeding verneombud and HMS-thresholds), and Altinn 3 (which delegations are active, which access packages they cover). Today regnskapsbyrå staff reconcile these manually per client — one canonical view per client is what a competent portfolio dashboard actually needs.
- Quarterly regulatory drift, multiplied by portfolio size. Stortinget updates thresholds (Aksjeloven § 7-6 audittrigger at 27 MNOK; verneombud at 50 ansatte), filing cadence (MVA bimonthly default; yearly opt-in under the small-business threshold), and entity-type rules (AS vs ENK vs NUF behave differently for tax, lønn, audit). Staying current across N clients is a research burden that scales linearly with portfolio.
What Apier provides — nine infrastructure components
Each component is consumable as REST, as MCP, or as both. Your staff and any AI assistants your firm runs see the same verdicts; the determinism contract holds across surfaces.
- Auth Gateway. Maskinporten JWT client-assertion + token caching + Altinn 3 System User delegation flow. One Bearer API key per firm; raw OAuth tokens never leave the gateway. Per-client authority resolved from Altinn delegations at request time.
- Registry Engine. Canonical company state reconciled across Brønnøysund (Tier 1) + Skatteetaten (MVA-register, MVA-meldinger, skatteoppgjør) + NAV (Aa-registeret aggregates) + Altinn (delegations). One canonical view per client, ready for your portfolio dashboard.
- Universal Rulebook. Versioned regulatory rules with legal_reference citations(Aksjeloven § 7-6, MVA-forskriften, A-opplysningsloven § 3, Bokføringsloven § 13). Deterministic evaluation; same input + rulebook_version produces byte-identical output, so your audit trail per client is reproducible.
- Deadline Engine. MVA terminer, A-melding cadence, skattemelding, årsregnskap, revisor-threshold checkpoints — calendar math in Europe/Oslo with full DST-awareness, weekend / holiday adjustments built in. Run nightly across your client portfolio to surface upcoming due dates.
- MCP Server. Every tool above exposed over the Model Context Protocol at
/api/mcp. Live as@apier-no/mcpon npm — see the snippet below. Same auth, same scopes, same determinism contract your REST integration uses. - Intent-to-Action Parser. Filing requests resolved into structured dry-run + live submission pipelines (mva_melding, a_melding, skattemelding). Validation gates run before any upstream call; live submission requires a one-time approval token so portfolio-wide automation never bypasses a human gate.
- AI-Agent Discovery.
llms.txt,llms-full.txt,workflows.json,/api/v1/capabilities,/.well-known/mcp.json,/.well-known/ai-plugin.json— every machine discovery surface populated and stable so any AI tooling your firm adopts can introspect Apier at config time. - Compliance Explainer. Every Apier
error_coderesolves to a Norwegian-bokmål Explanation envelope (summary / why / fix_steps / legal_basis / handover) viaPOST /api/v1/explain. Your staff sees a defensible legal_basis when a client asks why a filing failed. - Sector Rules. Industry-specific obligation overlays (regnskapsbyrå statsautorisasjon, fiskeri salgslagsgebyr, bygg HMS-kort,kraftleverandør NVE-rapportering) layered on top of the universal rulebook for NACE-coded entities — relevant when your portfolio spans multiple sectors.
MCP server — for the AI assistants your staff use
If your firm uses Claude Desktop, Cursor, or another MCP-compatible AI assistant, @apier-no/mcp lights up the full Apier tool surface inside the assistant. Same auth, same per-client scopes, same determinism contract as the REST surface. See /use-cases/ai-agents for the developer-facing detail.
Claude Desktop / Cursor config
{
"mcpServers": {
"apier": {
"command": "npx",
"args": ["-y", "@apier-no/mcp"],
"env": { "APIER_API_KEY": "apier_live_<your_key>" }
}
}
}Source + issues: github.com/PowerLaunch/apier-mcp. Package page: npmjs.com/package/@apier-no/mcp.
What a call looks like
One Bearer API key per firm; the per-client authority comes from each client's active Altinn 3 System User delegation.
REST — curl against the obligations endpoint
curl -H "Authorization: Bearer apier_live_<your_key>" \
"https://www.apier.no/api/v1/company/991825827/obligations"No-auth dry-run against synthetic data: curl https://www.apier.no/api/v1/sandbox/public/company/999999999/obligations.
FAQ
- How is Apier different from Tripletex, Fiken, PowerOffice, or Conta?
- Those are accounting software platforms — your staff enters bookkeeping data and the platform generates filings for one company at a time. Apier is the regulatory infrastructure layer underneath: a single API exposing per-client obligation verdicts, deadline math, Altinn 3 delegations, and centrally-brokered Maskinporten across your full client portfolio. They run alongside Apier, not instead of it. Apier covers the cross-client portfolio operations the per-firm software wasn't designed for.
- Can our staff act on behalf of every client company through one Apier account?
- Yes. Each client grants your firm an Altinn 3 System User delegation (a one-time client-side step, typically by their innehaver or daglig leder). Apier brokers Maskinporten centrally on your account — one enterprise certificate (virksomhetssertifikat), one Maskinporten client, N client delegations. Per-client scopes determine which Apier endpoints your staff can call for that client; expired or revoked delegations fail closed at the gateway.
- What's the easiest way to onboard a new regnskapsbyrå client?
- Client side: their innehaver or daglig leder grants your account a System User delegation in Altinn 3, scoped to the access packages your work requires (regnskap, lønn, MVA-rapportering, skatt — pick the minimum needed). The flow takes about five minutes. Apier side: nothing — your integration sees the client at the next request the moment the delegation is active. No separate Apier-side onboarding, no per-client API key juggling.
- How does Apier handle the revisor-threshold check across our client portfolio?
GET /api/v1/company/{org_number}/obligationsreturns a verdict that includesrevisor_required: true|falseplus thelegal_reference(Aksjeloven § 7-6, theaudit-threshold rule for AS entities — currently 27 MNOK omsetning OR 27 MNOK eiendeler OR 50 ansatte). The verdict carries anexplanationfield so your staff can defend the determination to a client. Run it nightly across your portfolio; threshold crossings emit/api/v1/changesevents you can subscribe to and surface in your internal review queue.- How does the MVA-termin cadence work — bimonthly vs yearly, and what about A-melding?
GET /api/v1/company/{org_number}/deadlinesreturns each filing's next due date in Europe/Oslo timezone with the cadence baked in: MVA bimonthlydefault (Termin 1 jan-feb due 10. april, etc.), yearly for clients under the small-business threshold who've opted in, and the special Skatteforvaltningsloven cases. A-melding (monthly employer disclosure) is on the same surface. DST-aware, weekend / holiday-shifted, with each deadline carrying the relevantlegal_referencefor audit trail.- What happens for our clients on June 19, 2026 when Altinn 2 sunsets?
- DigDir decommissions Altinn 2 on 19 June 2026. Every existing client delegation pointing at Altinn 2 roles stops working that day — there is no automatic carry-over to Altinn 3 access packages. Each of your clients needs to grant a fresh Altinn 3 System User delegation. Apier exposes the Altinn 2 role → Altinn 3 access package mapping as a zero-auth lookup at
/api/v1/tools/altinn-migration, and the /use-cases/altinn-migration page covers the deadline, the mapping logic, and the caveat that one Altinn 2 role often splits across multiple Altinn 3 packages (or vice versa).
Get started
Free tier ships with one API key and enough quota to onboard your first clients. The REST surface is curlable from anywhere; the MCP server is a single npx away if your firm runs MCP-compatible AI assistants.