---
name: dobbel
description: >
  Kobler en AI-agent til Dobbel, et AI-drevet norsk regnskapssystem for
  små aksjeselskap, via MCP over OAuth 2.1. Leser regnskapet, registrerer
  kjøp fra dokumenter, avstemmer bank, henter rapporter og forbereder
  MVA-melding og årsoppgjør gjennom offisielle verktøy. Alt agenten fører
  blir utkast som et menneske godkjenner, med mindre selskapet eksplisitt
  har åpnet for mer.
metadata:
  skill_version: 0.2.0
  mcp_url: https://staging.dobl.no/api/mcp
  update_check: https://staging.dobl.no/skills/manifest.json
  web_fallback: https://staging.dobl.no/skill.md
  agent_page: https://staging.dobl.no/agenter
  language: nb-NO
---

# Dobbel for AI-agenter

Dobbel er et AI-drevet regnskapssystem for små norske aksjeselskap —
driftsselskap så vel som holdingselskap: NS 4102-kontoplan, norsk MVA,
SAF-T, og innlevering til
Altinn (MVA-melding, aksjonærregisteroppgave, årsregnskap). Hele
regnskapet er tilgjengelig som 156 MCP-verktøy. Bruk denne
skill-en når brukeren vil at du skal lese, bokføre, avstemme eller
rapportere i Dobbel.

Alt i Dobbel er på norsk bokmål — verktøybeskrivelser, feilmeldinger og
data. Svar brukeren på det språket de skriver.

## Koble til

MCP-serveren er en remote HTTP-server med OAuth 2.1:

```
https://staging.dobl.no/api/mcp
```

Sjekk først om du allerede har Dobbel-verktøyene (`get_context` finnes
i verktøylisten). Har du det, hopp til neste avsnitt. Har du det ikke,
avhenger veien av klienten du kjører i — og i de fleste klienter er det
**brukeren** som må legge til koblingen, ikke du:

- **Plugin (anbefalt for Claude Code og Codex):** pluginen pakker
  MCP-serveren og arbeidsflyt-skillene, og virker i terminalen, i Claude
  Code på web og i ChatGPT-appen. Be brukeren kjøre:

  ```bash
  # Claude Code
  claude plugin marketplace add dobbel-as/plugins
claude plugin install dobbel@dobbel
  # Codex
  codex plugin marketplace add dobbel-as/plugins
codex plugin add dobbel@dobbel
codex mcp login dobbel
  ```

  Deretter ny økt, og `/mcp` → `dobbel` (Claude Code) for å logge inn.
  Kilde: https://github.com/dobbel-as/plugins
- **claude.ai / Claude Desktop:** du kan ikke legge til koblinger selv.
  Be brukeren gå til Innstillinger → Koblinger → «Legg til egendefinert
  kobling», lime inn URL-en over og klikke «Koble til». Steg for steg:
  https://staging.dobl.no/hjelp/tilkoblinger/koble-claude-til-dobbel
- **Claude Code i terminalen:** be brukeren kjøre
  `claude mcp add --transport http dobbel https://staging.dobl.no/api/mcp`, starte Claude Code på nytt, og kjøre
  `/mcp` → `dobbel` for å logge inn. En kjørende økt plukker ikke opp
  nye MCP-servere.
- **Claude Code på web (claude.ai/code):** MCP-servere leses ved
  oppstart fra repoets `.mcp.json` eller fra plugins brukeren har
  aktivert på kontoen. Foreslå at brukeren legger dette i `.mcp.json`
  og starter en ny økt:

  ```json
  { "mcpServers": { "dobbel": { "type": "http", "url": "https://staging.dobl.no/api/mcp" } } }
  ```

- **Codex (CLI, ChatGPT-appen og IDE-utvidelsen deler konfigurasjon):**
  `codex mcp add dobbel --url https://staging.dobl.no/api/mcp`, deretter
  `codex mcp login dobbel` som brukeren fullfører i nettleseren, og
  omstart. Alternativt i repoets `.codex/config.toml`:

  ```toml
  [mcp_servers.dobbel]
  url = "https://staging.dobl.no/api/mcp"
  ```

- **ChatGPT, Gemini:** egendefinert kobling med URL-en over — brukeren
  legger den til. Guider under https://staging.dobl.no/hjelp/tilkoblinger.
- **Cursor, OpenClaw og andre klienter der du kan redigere din egen
  MCP-konfigurasjon:** legg til serveren som HTTP-transport med URL-en
  over, og be brukeren fullføre innloggingen i nettleseren.
- **Egen MCP-klient:** discovery via
  `https://staging.dobl.no/.well-known/oauth-protected-resource` og
  `https://staging.dobl.no/.well-known/oauth-authorization-server`. Dynamisk
  klientregistrering (RFC 7591) på `https://staging.dobl.no/oauth/register`, PKCE S256
  påkrevd, `resource=https://staging.dobl.no/api/mcp`.

Innloggingen skjer alltid i nettleseren: brukeren logger inn i Dobbel,
velger hvilke selskap koblingen skal dekke, og krysser av tilganger
(scopes). Du kan ikke starte eller fullføre innloggingen selv — si
nøyaktig hva brukeren skal gjøre, og fortsett når koblingen er aktiv.

## Første kall i hver samtale

Kall `get_context` først. Svaret gir selskapene tokenet dekker (id,
navn, `company_profile`, `autonomy_level`), standardselskapet og
scopene du har fått. Send riktig `companyId` i alle påfølgende kall,
og hold deg til **ett selskap per samtale** med mindre brukeren
uttrykkelig ber om noe annet.

`company_profile = holding` betyr at salgsverktøyene (faktura, kunder,
produkter) er slått av for selskapet — de finnes ikke i verktøylisten.

## Tilganger (scopes)

Scopes settes av brukeren på samtykkeskjermen, per kobling. Trygge scopes
er forhåndsvalgt; farlige (`vouchers:post`, `invoices:send`, `annual:generate`, `bank:pay`, `bank:reconcile`, `filings:submit`) må brukeren krysse av selv, og
gir irreversible eller utgående effekter.

| Scope | Gir | Klasse | Standard |
|---|---|---|---|
| `vouchers:read` | Lese bilagene dine. Se bilag, bilagslinjer og vedlegg. | trygg | ja |
| `vouchers:write` | Opprette bilag som utkast. Opprette bilagsutkast og laste opp dokumenter til innboksen — alt venter på godkjenning. | trygg | ja |
| `vouchers:post` | Postere og reversere bilag. Postere utkastbilag til hovedboken og reversere posterte bilag. Posterte bilag er immutable og synes i hovedboken. | farlig | nei |
| `invoices:read` | Lese fakturaene dine. Se fakturaer, kredittnotaer og tilhørende linjer. | trygg | ja |
| `invoices:write` | Opprette fakturaer som utkast. Opprette fakturautkast, kreditnota-utkast og gjentakende fakturaer. Ingenting sendes til kunde uten egen tillatelse. | trygg | ja |
| `invoices:send` | Sende fakturaer til kunder. Sende fakturaer via EHF eller e-post og merke dem som betalte. | farlig | nei |
| `reports:read` | Lese regnskapsrapporter. Hente resultat, balanse, saldobalanse, hovedbok, MVA-oppgave og dashboard-tall. | trygg | ja |
| `annual:generate` | Generere årsoppgjør og SAF-T-eksport. Kjøre årsoppgjør og eksportere SAF-T-filer. Gir tilgang til hele regnskapets historikk. | farlig | nei |
| `accounts:read` | Lese stamdata. Se kontoplan, kunder, leverandører, produkter, prosjekter, bankkontoer og MVA-koder. | trygg | ja |
| `accounts:write` | Endre stamdata og registre. Opprette og endre kunder, leverandører, produkter, prosjekter, timeføring, bankkontoer, aksjonærer og MVA-meldingsstatus. Berører ikke hovedboken. | trygg | ja |
| `bank:pay` | Sende betalinger til banken. Opprette betalinger som sendes rett til banken. Den endelige utbetalingen godkjennes av et menneske i bankappen. | farlig | nei |
| `bank:reconcile` | Avstemme og låse bankperioder. Lukke bankavstemmingen for en periode. Avstemmingen er balansedokumentasjon, og lukkingen låser perioden for videre bilagsføring mot kontoen — bare en admin kan gjenåpne den. | farlig | nei |
| `filings:submit` | Sende pliktige oppgaver til Skatteetaten. Sende aksjonærregisteroppgaven og MVA-meldingen på vegne av selskapet. En levert oppgave kan ikke trekkes tilbake — en feil må rettes med en ny oppgave. | farlig | nei |
| `feedback:read` | Lese tilbakemeldingene dine. Se tilbakemeldingene du selv har sendt inn, og hvor de står i triagen. Gir ikke tilgang til andres tilbakemeldinger. | trygg | ja |
| `feedback:write` | Sende tilbakemelding til Dobbel. Melde fra om feil, foreslå funksjonalitet eller sende en kommentar på dine vegne. Går til Dobbels produktteam, aldri til kundene dine, og berører ikke regnskapet. | trygg | ja |

Mangler du et scope, svarer verktøyet med `insufficient_scope` og
`required_scope`. Ikke prøv omveier — be brukeren koble til på nytt med
riktig tilgang avkrysset.

## Automasjonsnivå — den andre porten

Scope alene avgjør ikke hva du får gjøre. Hvert selskap har et
**automasjonsnivå** satt av admin under «AI-agenter» i appen:

- **Lese (`NONE`)** — du kan lese og foreslå, men ikke opprette noe.
- **Foreslå (`DRAFT`)** — standard. Du oppretter utkast; et menneske
  godkjenner i appen. Postering går kun etter eksplisitt bekreftelse i
  chatten.
- **Gjøre (`FULL`)** — du kan postere, lukke avstemminger og sende
  pliktige oppgaver selv.

Begge porter må åpne. Slik virker scopene nivået styrer, per nivå
(scopes som ikke står her berøres ikke av nivået):

| Scope | Lese (`NONE`) | Foreslå (`DRAFT`) | Gjøre (`FULL`) |
|---|---|---|---|
| `vouchers:write` | avvises | virker | virker |
| `vouchers:post` | avvises | kun etter bekreftelse i chatten | virker |
| `invoices:send` | virker (ikke styrt av nivået) | virker (ikke styrt av nivået) | virker (ikke styrt av nivået) |
| `annual:generate` | virker (ikke styrt av nivået) | virker (ikke styrt av nivået) | virker (ikke styrt av nivået) |
| `bank:pay` | virker (ikke styrt av nivået) | virker (ikke styrt av nivået) | virker (ikke styrt av nivået) |
| `bank:reconcile` | avvises | avvises | virker |
| `filings:submit` | avvises | avvises | virker |

En avvisning kommer som en feil som begynner med «Autonomi-nivå er …».
Da ber du brukeren godkjenne i appen eller heve nivået — du endrer det
ikke selv.

## Regler du aldri bryter

1. **Posterte bilag endres eller slettes aldri.** Feil rettes med
   `post_correction_voucher` (speilbilde av originalen), aldri ved å
   redigere. Utkast kan endres og slettes. En feilført kapitalhendelse
   (utbytte) reverseres med `reverse_capital_event`, som opphever alle
   bilagene dens og holder utbyttet utenfor aksjonærregisteroppgaven.
2. **Ingen tall uten kilde.** Finn aldri på beløp, datoer, MVA-sats,
   leverandør eller kontonummer. Står det ikke i dokumentet, banklinjen
   eller brukerens ord, spør du.
3. **Et kjøp er alltid konsekvens av et dokument.** `create_purchase`
   krever `fileId`. Last opp først (se arbeidsflyt 2), les med
   `extract_purchase_document` eller `get_inbox_item`, og behandle
   AI-forslaget som kandidat: bekreft beløp, dato, leverandør og MVA mot
   dokumentet før du oppretter noe.
4. **Førsteklasses verktøy før fritt bilag.** `create_voucher` med egne
   linjer er siste utvei. Bruk bilagsmal (`list_voucher_templates`,
   `templateId` + `amount`) for bankgebyr, renter og overføringer,
   `create_purchase` for kjøp, `create_invoice` for salg,
   `commit_bank_match` for bank, kapitalhendelser og investeringsverktøy
   for egenkapital og aksjer, `depreciate_asset` for avskrivning.
5. **En banklinje beviser at penger flyttet seg, ikke hvorfor.** Bokfør
   den mot kjøp, faktura eller et bilag som allerede finnes. Mangler
   dokumentasjonen, bruk `request_missing_document` — ikke gjett en
   kostnadskonto for å få avstemmingen til å gå opp. Skal linjen aldri i
   regnskapet, `ignore_bank_transaction` med begrunnelse.
6. **Datoer flyttes ikke** for å få noe til å stemme. Bilagsdato er
   dokumentets dato; bankdato er bankens.
7. **Pliktige oppgaver og betalinger er endelige.** MVA-melding,
   aksjonærregisteroppgave og betalinger til bank kan ikke trekkes
   tilbake. Kjør alltid `preview_*`/`get_*_status` først, vis brukeren
   resultatet, og send bare når brukeren har sagt ja i denne samtalen.
8. **Stopp og spør** når periode, motpart, dokumentasjon eller ønsket
   behandling er uklar. En riktig ubesvart oppgave er bedre enn et
   ferdig bilag som er feil.
9. **Alt du gjør logges** med `actor_type = agent`. Skriv beskrivelser
   som gir mening for et menneske som leser hovedboken senere.
10. **Slå opp i hjelpen framfor å gjette på hvordan Dobbel virker.**
    `search_help` søker i hjelpesenteret vårt og gir deg hele artikler
    tilbake. Spør i hel setning — søket er laget for spørsmål, ikke
    stikkord. Får du `treff: 0`, er emnet ikke dokumentert ennå: si det
    til brukeren i stedet for å finne på et svar.

## Formater

- Beløp er `number` i **NOK med to desimaler** (`1234.56`), aldri øre,
  aldri streng. Vis dem for brukeren som `1 234,56 kr`.
- Datoer er ISO `YYYY-MM-DD`. Vis dem for brukeren som `dd.mm.yyyy`.
- Kontonummer er firesifrede NS 4102-kontoer (`1920`, `6300`, `7770`).
  Reskontro vises som `1500:10001` (hovedkonto:reskontro).
- MVA-koder er SAF-T-standardkoder (1, 3, 5, 6, 11, 13, 21, 81, 86 …).
  `list_vat_codes` gir listen med sats og retning.

## Arbeidsflyter

### 1. Hva gjenstår?

`list_pending_work` gir alt som venter i selskapet: ubehandlet innboks,
kjøpsutkast til godkjenning, banklinjer uten bokføring, linjer som
venter på bilag, registeravvik og MVA-terskler. Hver kategori sier
`agentCapable` — `true` betyr at du kan ta oppgaven med verktøyene,
`false` at den venter på et menneske (typisk godkjenning). Start her
når brukeren spør «hva må jeg gjøre?».

### 2. Registrer et kjøp fra en kvittering eller faktura

1. `prepare_inbox_upload` → signert engangs-URL og `fileId`.
2. Last opp filens bytes med HTTP PUT til URL-en (utenom samtalen).
3. `register_inbox_upload(fileId)` → innbokselement; AI-lesing starter.
4. `get_inbox_item` → forslag til type, dato, beløp, MVA, leverandør og
   linjer. Bekreft mot dokumentet. Er leverandøren ny, opprett den med
   `create_supplier` (slå gjerne opp org.nr med `lookup_brreg`).
5. `create_purchase(fileId, …)` → kjøpsutkast med debet/kredit-linjer.
6. På `DRAFT` stopper du her og sier at utkastet venter på godkjenning i
   appen. På `FULL` kan `approve_voucher` postere.

Ligger dokumentet allerede i innboksen (`list_inbox_items`), hopp til
steg 4.

### 3. Bokfør banken

1. `list_bank_transactions` (ubokførte) eller `get_bank_reconciliation`
   for perioden — `lines.unbooked` er jobben, `closeReadiness.blockers`
   er målet.
2. Per linje, i denne rekkefølgen:
   - gjør den opp et bokført kjøp → `commit_bank_match(purchaseId)`
   - gjør den opp en kundefaktura → `commit_bank_match(invoiceId)`
   - finnes bilaget allerede → `commit_bank_match(voucherId)`
   - er det et gebyr, renter eller intern overføring →
     `commit_bank_match(counterAccountNumber)` eller bilagsmal
   - mangler dokumentasjon → `request_missing_document`
   - skal aldri bokføres → `ignore_bank_transaction` med begrunnelse
3. Gjenstående poster som er reelle, men ikke kan matches ennå, forklares
   med `explain_reconciliation_difference`.
4. `close_bank_reconciliation` krever `FULL` og at
   `closeReadiness.blockers` er tom. Lukkingen låser perioden.

### 4. Svar på spørsmål om tallene

`get_income_statement`, `get_balance_sheet`, `get_trial_balance`,
`get_general_ledger`, `get_account_balance`, `get_customer_ledger`,
`get_vendor_ledger`, `get_vat_report` og `search_vouchers`. Oppgi alltid
periode og hvilket selskap svaret gjelder. For holdingselskap: «hvor mye
kan jeg ta i utbytte?» besvares med `get_distributable_equity` (asl. § 8-1,
med grunnlagsvurdering) — ikke ved å lese balansen selv; kapitalhendelser og
investeringer har egne verktøy.

### 5. MVA-termin

`get_vat_report` for terminen → gå gjennom avvik → `upsert_vat_return`
lagrer meldingen. `submit_vat_return` leverer til Skatteetaten og
krever `filings:submit`, `FULL` og at brukeren er pålogget med ID-porten
i appen — du kan ikke starte den påloggingen. Selskaper uten
MVA-registrering: `preview_reverse_charge_vat` og
`create_reverse_charge_vat_return` dekker omvendt avgiftsplikt over
2 000 kr per kvartal.

### 6. Årsavslutning

Alltid preview først: `preview_year_end_close`,
`preview_year_end_disposition`, `preview_year_roll_forward`. Vis
brukeren hva som posteres. `close_fiscal_year`, `dispose_fiscal_year`
og `roll_forward_year` posterer bilag og krever `vouchers:post`.
`generate_annual_report` lager årsregnskapet;
`prepare_annual_accounts_submission` klargjør innsending til
Regnskapsregisteret (signeres av et menneske i Altinn).

### 7. Fakturering (kun selskap med drift)

`create_invoice` lager utkast. `send_invoice` krever `invoices:send` og
sender via EHF eller e-post — bekreft mottaker og beløp med brukeren
først. `lookup_peppol_recipient` sier om kunden kan motta EHF.

### 8. Gjennomgå en periode uavhengig

Kontrollen, ikke bokføringen: en annen agent (eller du i en ny økt)
sammenligner det som er ført med originaldokumentene. Du endrer
ingenting, og du låner ingenting fra den som førte.

1. `review_period_evidence(from, to)` → scope-registeret: hvert bilag,
   kjøp, hver banklinje og hvert innbokselement i perioden, med
   `files` bak hvert objekt. `total` er nevneren — rapporten din skal
   ha nøyaktig så mange rader. Er `truncated` satt, snevre inn periode
   eller `scope` til alt er med.
2. Per objekt: `get_file(fileId)` for dokumentet, `get_voucher` for
   linjene. Bekreft dato, motpart, beløp, MVA og konto mot dokumentet —
   ikke mot `get_inbox_item`-forslaget, som er kandidaten du
   kontrollerer.
3. Gi hvert objekt én status: `ok`, `advarsel`, `feil`,
   `trenger deg` eller `ukjent`. Noter proveniens per felt: bekreftet
   mot dokument, kun i regnskapet, støttet av banklinje, forklart av
   bruker. Uten dokumentert vesentlighetsgrense er et avvik et avvik.
4. `get_bank_reconciliation`, `get_vat_report` og `get_trial_balance`
   viser om totalene henger sammen — bruk dem til å finne hvor du skal
   se nøyere, ikke som bevis for enkeltbilag.
5. Rapporten foreslår rettelser (`post_correction_voucher`, nytt kjøp,
   `request_missing_document`). Utfør ingen av dem i samme økt; det er
   en egen oppgave der godkjenningsreglene gjelder.

### 9. Utbytte til aksjonærene

To vedtak, to bilag — og rekkefølgen er lovbestemt.

1. Rammen først: `get_distributable_equity(date)` gir taket etter
   asl. § 8-1 med grunnlagets merknad, og `get_distribution_prudence`
   viser om egenkapital og likviditet er forsvarlig **etter** utdelingen
   (§ 8-1 fjerde ledd, jf. § 3-4). Gjengi begge for brukeren; den siste
   er styrets skjønn, ikke din konklusjon.
2. Avsetningen: `create_capital_event` med `eventType: "dividend"` og
   `dividendKind` (ordinary, additional eller extraordinary). Motoren
   posterer D 89xx / K 2800 og fordeler beløpet på aksjonærene per
   vedtaksdatoen, slik at RF-1086 post 21 stemmer. Overstiges rammen,
   får du `exceeds_distributable` — spør brukeren, og gjenta kun med
   `acknowledgeExceedsDistributable` når årets resultat dekker det.
3. Ekstraordinært utbytte midt i året bygger på en mellombalanse
   (§ 8-2 a): `create_interim_balance` → `advance_interim_balance` til
   `adopted` når styret har fastsatt den → `list_interim_balances`
   viser `kanBesluttes`. Send `interimBalanceId` med i både
   `get_distributable_equity` og `create_capital_event`.
4. Utbetalingen: `pay_dividend(eventId, paymentDate)` posterer D 2800 /
   K bank og lukker hendelsen. Bygger utbyttet på en mellombalanse, må
   den først være `announced` — kunngjort av Regnskapsregisteret (femte
   ledd). Sperren er lovens, ikke en innstilling; be brukeren melde inn
   mellombalansen, ikke let etter en omvei.

Begge bilagene er utkast til et menneske godkjenner dem.

## Feil

- `insufficient_scope` — tokenet mangler scopet. Be brukeren koble til
  på nytt med tilgangen avkrysset.
- «Autonomi-nivå er '…'» — selskapets nivå stopper handlingen. Be om
  godkjenning i appen eller at nivået heves.
- `cross_tenant_denied` — `companyId` er utenfor tokenet. Bruk id-ene
  fra `get_context`.
- `module_disabled` — verktøyet er slått av for selskapsprofilen
  (typisk salgsverktøy på holding).

Feilmeldinger er norske og ment å vises til brukeren. Ikke gjenta et
kall som ble avvist av en av portene over.

## Oppdatering

Denne skill-en er versjon **0.2.0**. Sjekk
`https://staging.dobl.no/skills/manifest.json` når du starter en økt: er
`latest_version` nyere enn versjonen du har lest, les
`web_fallback` på nytt før du gjør skrivende kall. `critical_update`
betyr at du skal stoppe og lese før *enhver* skriving.

## Verktøy

156 verktøy, gruppert etter scopet de krever. «skriver» betyr
at verktøyet endrer tilstand i Dobbel; «leser» at det ikke gjør det.
Verktøybeskrivelsene i `tools/list` er alltid mer presise enn denne
tabellen.

### Uten scope (alle tokens)

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `get_context` | Hent selskapsoversikt | leser |
| `search_help` | Søk i hjelpesenteret | leser |

### `vouchers:read` — Lese bilagene dine

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `list_voucher_templates` | Vis bilagsmaler | leser |
| `get_voucher` | Vis bilag | leser |
| `search_vouchers` | Søk i bilag | leser |
| `get_purchase` | Vis kjøpsdetaljer | leser |
| `list_purchases` | Vis kjøp | leser |
| `review_period_evidence` | Hent kontrollgrunnlag for periode | leser |
| `get_file` | Hent dokument | leser |

### `vouchers:write` — Opprette bilag som utkast

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `create_voucher` | Opprett bilag | skriver |
| `update_draft_voucher` | Endre bilagsutkast | skriver |
| `delete_draft_voucher` | Slett bilagsutkast | skriver |
| `create_purchase` | Registrer kjøp | skriver |
| `delete_draft_purchase` | Slett kjøpsutkast | skriver |
| `extract_purchase_document` | Les kvittering eller faktura | skriver |
| `ignore_bank_transaction` | Ignorer banklinje | skriver |
| `explain_reconciliation_difference` | Forklar avstemmingsdifferanse | skriver |
| `request_missing_document` | Be om manglende bilag | skriver |
| `prepare_inbox_upload` | Forbered filopplasting til innboksen | skriver |
| `register_inbox_upload` | Registrer fil i innboksen | skriver |
| `create_loan` | Registrer lån | skriver |
| `create_investment` | Registrer investering | skriver |
| `record_investment_purchase` | Registrer aksjekjøp | skriver |
| `record_investment_sale` | Registrer aksjesalg | skriver |
| `record_investment_dividend` | Registrer utbytte på investering | skriver |
| `record_investment_revaluation` | Registrer verdijustering | skriver |
| `record_investment_share_issue` | Registrer emisjon | skriver |
| `record_investment_capital_change` | Registrer kapitalendring | skriver |
| `record_investment_split` | Registrer splitt/spleis | skriver |
| `record_investment_founding` | Registrer stiftelse | skriver |
| `record_investment_bankruptcy` | Registrer konkurs | skriver |
| `reverse_investment_event` | Reverser investeringshendelse | skriver |
| `create_capital_event` | Opprett kapitalhendelse | skriver |
| `register_capital_increase` | Registrer kapitalforhøyelse | skriver |
| `reverse_capital_event` | Reverser kapitalhendelse | skriver |
| `pay_dividend` | Utbetal utbytte | skriver |

### `vouchers:post` — Postere og reversere bilag

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `approve_voucher` | Godkjenn bilag | skriver |
| `post_correction_voucher` | Postér korreksjonsbilag | skriver |
| `close_fiscal_year` | Avslutt regnskapsåret | skriver |
| `dispose_fiscal_year` | Disponer årsresultatet | skriver |
| `roll_forward_year` | Rull balansen til nytt år | skriver |
| `depreciate_asset` | Kjør avskrivning | skriver |
| `commit_bank_match` | Bokfør banktransaksjon | skriver |
| `upsert_vat_return` | Lagre MVA-melding | skriver |
| `create_reverse_charge_vat_return` | Bokfør omvendt avgiftsplikt | skriver |

### `invoices:read` — Lese fakturaene dine

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `list_invoices` | Vis fakturaer | leser |
| `get_invoice` | Vis faktura | leser |
| `preview_invoice_reminder` | Forhåndsvis purring | leser |
| `get_invoice_recipients` | Mottakere for faktura | leser |
| `list_sales_documents` | Tilbud og ordrebekreftelser | leser |
| `get_sales_document` | Hent tilbud/ordrebekreftelse | leser |
| `list_recurring_invoices` | Vis repeterende fakturaer | leser |

### `invoices:write` — Opprette fakturaer som utkast

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `create_invoice` | Opprett faktura | skriver |
| `update_draft_invoice` | Endre fakturautkast | skriver |
| `delete_draft_invoice` | Slett fakturautkast | skriver |
| `approve_invoice` | Godkjenn faktura | skriver |
| `credit_invoice` | Krediter faktura | skriver |
| `create_sales_document` | Opprett tilbud/ordrebekreftelse | skriver |
| `decide_sales_document` | Registrer svar på tilbud | skriver |
| `convert_sales_document` | Gjør om til faktura eller ordre | skriver |
| `create_recurring_invoice` | Opprett repeterende faktura | skriver |
| `match_payment_to_invoice` | Koble betaling mot faktura | skriver |
| `invoice_time_entries` | Fakturer timer | skriver |

### `invoices:send` — Sende fakturaer til kunder

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `send_invoice` | Send faktura | skriver |
| `send_invoice_reminder` | Send purring | skriver |
| `issue_invoice` | Bokfør faktura | skriver |
| `deliver_invoice` | Lever faktura | skriver |
| `send_sales_document` | Send tilbud/ordrebekreftelse | skriver |
| `mark_invoice_as_paid` | Merk faktura som betalt | skriver |

### `reports:read` — Lese regnskapsrapporter

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `get_trial_balance` | Vis saldobalanse | leser |
| `get_general_ledger` | Vis hovedbok | leser |
| `get_income_statement` | Vis resultatregnskap | leser |
| `get_balance_sheet` | Vis balanse | leser |
| `get_vat_report` | Vis MVA-rapport | leser |
| `get_account_balance` | Vis kontosaldo | leser |
| `get_customer_ledger` | Vis kundereskontro | leser |
| `get_vendor_ledger` | Vis leverandørreskontro | leser |
| `get_bank_account_ledger` | Vis bankkontobevegelser | leser |
| `get_annual_accounts_submission_status` | Status for årsregnskapsinnsending | leser |
| `preview_year_end_close` | Forhåndsvis årsavslutning | leser |
| `preview_year_end_disposition` | Forhåndsvis disponering | leser |
| `preview_year_roll_forward` | Forhåndsvis årsrulling | leser |
| `get_project_accounting` | Vis prosjektregnskap | leser |
| `list_bank_transactions` | Vis banktransaksjoner | leser |
| `list_bank_payments` | Vis kommende betalinger | leser |
| `get_bank_reconciliation` | Vis bankavstemming | leser |
| `list_vat_returns` | Vis MVA-meldinger | leser |
| `preview_reverse_charge_vat` | Forhåndsvis omvendt avgiftsplikt | leser |
| `generate_shareholder_register_report` | Lag aksjonærregisteroppgave | leser |
| `preview_shareholder_register` | Forhåndsvis aksjonærregisteroppgave | leser |
| `get_shareholder_register_receipt` | Kvittering for aksjonærregisteroppgave | leser |
| `get_shareholder_register_status` | Status for aksjonærregisteroppgave | leser |
| `get_shareholder_register_opening` | Vis åpningsbalanse for aksjeeierboka | leser |
| `get_vat_return_status` | Status for MVA-melding | leser |

### `annual:generate` — Generere årsoppgjør og SAF-T-eksport

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `generate_annual_report` | Generer årsregnskap | leser |
| `prepare_annual_accounts_submission` | Klargjør årsregnskap for innsending | skriver |
| `generate_saft_export` | Eksporter SAF-T | leser |

### `accounts:read` — Lese stamdata

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `list_accounts` | Vis kontoplan | leser |
| `suggest_account` | Foreslå konto | leser |
| `list_customers` | Vis kunder | leser |
| `get_customer` | Vis kunde | leser |
| `list_suppliers` | Vis leverandører | leser |
| `get_supplier` | Vis leverandør | leser |
| `list_products` | Vis produkter | leser |
| `list_projects` | Vis prosjekter | leser |
| `list_activities` | Vis aktiviteter | leser |
| `list_time_entries` | Vis timeføringer | leser |
| `get_uninvoiced_time` | Vis ufakturerte timer | leser |
| `list_assets` | Vis driftsmidler | leser |
| `get_asset` | Vis driftsmiddel | leser |
| `list_bank_accounts` | Vis bankkontoer | leser |
| `list_vat_codes` | Vis MVA-koder | leser |
| `list_inbox_items` | Vis innboks | leser |
| `get_inbox_item` | Vis innbokselement | leser |
| `list_shareholders` | Vis aksjonærer | leser |
| `list_loans` | Vis lån | leser |
| `list_investments` | Vis investeringer | leser |
| `get_investment_tax_check` | Avstem investeringer mot skattemelding | leser |
| `list_capital_events` | Vis kapitalhendelser | leser |
| `get_distributable_equity` | Vis utbytteramme | leser |
| `get_distribution_prudence` | Vis forsvarlighetsvurdering | leser |
| `list_interim_balances` | Vis mellombalanser | leser |
| `get_register_reconciliation` | Avstem registre mot hovedbok | leser |
| `list_pending_work` | Vis hva som venter | leser |
| `lookup_brreg` | Søk i Brønnøysundregistrene | leser |
| `lookup_brreg_roles` | Hent roller fra Brønnøysund | leser |
| `lookup_brreg_annual_accounts` | Hent årsregnskap fra Brønnøysund | leser |
| `lookup_peppol_recipient` | Sjekk EHF-mottaker | leser |

### `accounts:write` — Endre stamdata og registre

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `create_customer` | Opprett kunde | skriver |
| `update_customer` | Oppdater kunde | skriver |
| `create_supplier` | Opprett leverandør | skriver |
| `update_supplier` | Oppdater leverandør | skriver |
| `create_product` | Opprett produkt | skriver |
| `update_product` | Oppdater produkt | skriver |
| `create_project` | Opprett prosjekt | skriver |
| `update_project` | Oppdater prosjekt | skriver |
| `create_activity` | Opprett aktivitet | skriver |
| `update_activity` | Oppdater aktivitet | skriver |
| `create_time_entry` | Før timer | skriver |
| `create_asset` | Registrer driftsmiddel | skriver |
| `create_bank_account` | Opprett bankkonto | skriver |
| `import_bank_statement` | Importer kontoutskrift | skriver |
| `create_shareholder` | Registrer aksjonær | skriver |
| `update_shareholder` | Oppdater aksjonær | skriver |
| `set_loan_agreement` | Koble låneavtale til lån | skriver |
| `set_investment_agreement` | Koble avtale til investering | skriver |
| `transfer_shares` | Overdra aksjer | skriver |
| `create_interim_balance` | Registrer mellombalanse | skriver |
| `advance_interim_balance` | Oppdater mellombalanse | skriver |
| `set_shareholder_register_opening` | Registrer åpningsbalanse for aksjeeierboka | skriver |

### `bank:pay` — Sende betalinger til banken

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `create_bank_payment` | Send betaling | skriver |

### `bank:reconcile` — Avstemme og låse bankperioder

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `close_bank_reconciliation` | Lukk bankavstemming | skriver |

### `filings:submit` — Sende pliktige oppgaver til Skatteetaten

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `submit_shareholder_register` | Send aksjonærregisteroppgave | skriver |
| `submit_vat_return` | Send MVA-melding | skriver |

### `feedback:read` — Lese tilbakemeldingene dine

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `list_feedback` | Vis dine tilbakemeldinger | leser |

### `feedback:write` — Sende tilbakemelding til Dobbel

| Verktøy | Norsk tittel | Type |
|---|---|---|
| `submit_feedback` | Send tilbakemelding | skriver |

## Mer

- Menneskelig oversikt: https://staging.dobl.no/agenter
- Hjelpesenter for tilkoblinger: https://staging.dobl.no/hjelp/tilkoblinger
- Om Dobbel: https://staging.dobl.no/llms.txt
