Files
dennis 236053cd7f Initial import: 10 Radix skills across 3 categories
Kategoriserer danske regnskabs-/ERP-skills, ERP-data-afstemnings-
skill og to devops-workflows (gitea-issue-agent, kanban-workflows)
som Radix-medlemmers AI-agenter kan dele.

Struktur:
  skills/<kategori>/<skill-navn>/SKILL.md
  skills/<kategori>/<skill-navn>/{references,templates,scripts}/

Indekseret af index.json (genereret af scripts/rebuild_index.py).
Kør `python3 scripts/rebuild_index.py --check` i CI for at fange
synkroniseringsfejl.
2026-06-15 14:41:04 +02:00

10 KiB
Raw Permalink Blame History

name, description, version, author, license, metadata
name description version author license metadata
e-conomic-integration Integration med e-conomic cloud-bogføring — aktiveres ved "bogfør i e-conomic", "hent fakturaer fra e-conomic", "kassekladde", "sync mod e-conomic", "opret kunde i e-conomic", "kontoudtog e-conomic", "REST API", "AppSecretToken". Dækker auth, kontoplan, kassekladder, bogførte fakturaer, kreditorer, kunder og banktransaktioner. 0.1.0 radix-accountant MIT
hermes
tags related
accounting
e-conomic
dansk-regnskab
api
cloud-bogfoering
integration
resultatopgoerelse
momsafregning
kontoplan-mapping
coop-bankimport
dansk-csv-import

e-conomic-integration

Integration med e-conomic cloud-bogføringssystem via den officielle REST API. Bruges til at hente fakturaer, kunder, kreditorer, bogføre bilag, synce banktransaktioner og afstemme konti — alt på dansk.

Aktiveres ved

  • "Bogfør denne faktura i e-conomic"
  • "Hent åbne fakturaer fra e-conomic"
  • "Synk banktransaktioner til e-conomic"
  • "Opret kunde X i e-conomic"
  • "Hvad er saldi på konto 1010 i e-conomic?"
  • "Generer kassekladdeline for denne betaling"
  • "Vis alle kreditorer med udestående i e-conomic"

API basics

Base-URL

https://restapi.e-conomic.com

Auth (kræver to tokens)

Header Værdi Hvad det er
X-AppSecretToken ${ECONOMIC_APP_SECRET_TOKEN} App-identifikation (din app's hemmelige token)
X-AgreementGrantToken ${ECONOMIC_AGREEMENT_GRANT_TOKEN} Aftale-specifik adgang (bruger-godkendt)
Content-Type application/json Altid JSON
Idempotency-Key <unik UUID> Forhindrer dobbeltbogføring ved netværksfejl (POST/PUT)

⚠️ Tokens skal ALDRIG hardcodes — brug miljøvariabler eller en secret manager.

Demo-mode (sandbox)

Til test/udvikling, tilføj ?demo=true til URL — alle writes deaktiveres (kun GET).

Vigtigste endpoints

Formål Endpoint HTTP
List konti (kontoplan) /accounts?pagesize=N GET
Hent én konto /accounts/:accountNumber GET
List bogføringsår /accounting-years GET
List perioder (måneder) i et år /accounting-years/:year/periods GET
Hent kontosaldo for en periode /accounts/:accountNumber/accounting-years/:year/periods/:period/totals GET
List kassekladder /journals GET
Hent kassekladdeline /journals/:id/vouchers?voucherNumber=:n GET
Opret kassekladdeline (bilag) /journals/:id/vouchers/:n/entries POST
Bogfør voucher /journals/:id/vouchers/:n/book POST
List bogførte fakturaer /invoices/booked GET
Opret bogført faktura /invoices/booked POST
Hent kunde /customers/:customerNumber GET
Opret kunde /customers POST
List kreditorer /suppliers GET
Opret kreditor /suppliers POST
List moms-konti /vat-accounts GET
Hent valutakurser /currencies GET

⚠️ Rate limit: e-conomic har et fair-use loft. Hold dig under 10 requests/sekund.

e-conomics standardkontoplan (4-cifret)

Kontointerval Type Bruges til
1000-1099 Heading/profitAndLoss Indtægter, overskrifter
1100-1199 ProfitAndLoss Omsætning undergrupper (varekategorier)
1200-1299 ProfitAndLoss Diverse indtægter
1300-1399 ProfitAndLoss Produktionsomkostninger (COGS)
1500-1599 ProfitAndLoss Lokaleomkostninger
1600-1699 ProfitAndLoss Salgsomkostninger
1700-1799 ProfitAndLoss Administrationsomkostninger
1800-1899 ProfitAndLoss Personaleomkostninger (løn)
2000-2099 ProfitAndLoss Andre driftsomkostninger
2100-2199 ProfitAndLoss Afskrivninger
2200-2299 ProfitAndLoss Finansielle indtægter
2300-2399 ProfitAndLoss Finansielle udgifter
5500-5899 Balance Bank, kasse, tilgodehavender
5800-5899 Balance Bankkonti (typisk 5820 = drift)
6000-6899 Balance Leverandørgæld, moms, A-skat
6500-6599 Balance Moms (6500 = indgående, 6600 = udgående)
6900-6999 Balance Diverse statuskonti

⚠️ Dette er e-conomics STANDARD kontoplan — ikke alle kunder har den. Hent altid kundens egen kontoplan via /accounts endpoint.

Momskoder (VAT-accounts)

Kode Type Sats Bruges til
U25 Udgående 25% Salg af varer/ydelser i DK (momspligtig)
I25 Indgående 25% Køb af varer/ydelser i DK (momsfradrag)
U0 Udgående 0% Eksport, EU-salg med VIES, moms-fritagne ydelser
I0 Indgående 0% Køb uden moms (import under bagatelgrænse)
UEU25 Udgående 25% EU-varesalg (vareleverance til andet EU-land)
UV25 Udgående 25% Byggeydelser i andre EU-lande (omvendt betalingspligt)

⚠️ Korrekt momskode er afgørende for momsangivelsen — forkert kode kan give skattesmæk.

Kassekladder (Journals)

Journal-ID Navn (typisk) Bruges til
1 Daglig / Kassekladde Almindelige bilag (køb, salg, bank)
2 Indbetalinger Kundeindbetalinger (kontra-konto typisk 5820 bank)
3 Lønninger Lønbogføring (entryType financeVoucher)
4 Moms Momsafregning
5 Afskrivninger Anlægsaktiver

Journal-ID'er varierer fra kunde til kunde — hent altid /journals først.

Workflow: Bogfør et bilag (kassekladdeline)

Eksempel: bogfør kontantkøb af kontorartikler for 1.250,00 kr. inkl. moms (15-06-2026)

Trin 1: Hent kunde-/kassekladde-info

GET /journals
→ Find journal-ID for "Daglig" (typisk 1)
GET /journals/1/vouchers?voucherNumber=42
→ Find næste ledige bilagsnummer

Trin 2: Opret kassekladdeline (visuelt, FØR API-kald)

{
  "accountingYear": {
    "year": 2026
  },
  "entries": [
    {
      "customerInvoiceNumber": "",
      "date": "2026-06-15",
      "voucherNumber": 42,
      "text": "Kontorartikler — Kontorbutikken A/S",
      "amount": -1250.00,
      "amountInBaseCurrency": -1250.00,
      "currency": "DKK",
      "account": {
        "accountNumber": 1690
      },
      "contraAccount": {
        "accountNumber": 5820
      },
      "vatAccount": {
        "vatCode": "I25"
      }
    }
  ]
}

Trin 3: Vis brugeren og bekræft

⚠️ Klar til at bogføre:
  Kassekladde: Daglig (#1)
  Bilagsnr: 42
  Dato: 15-06-2026
  Tekst: Kontorartikler — Kontorbutikken A/S
  Debet:  1690 Kontorartikler        1.250,00 kr.
  Kredit: 5820 Bank, drift         1.250,00 kr.
  Momskode: I25 (25% indgående)
  Total: 1.250,00 kr. (inkl. 250,00 kr. moms)

Vil du bogføre? (ja/nej)

Trin 4: POST med Idempotency-Key

POST /journals/1/vouchers/42/entries
Headers:
  X-AppSecretToken: ${ECONOMIC_APP_SECRET_TOKEN}
  X-AgreementGrantToken: ${ECONOMIC_AGREEMENT_GRANT_TOKEN}
  Content-Type: application/json
  Idempotency-Key: <UUID v4>

Body: [ovenstående entries-array]

⚠️ Bogfør IKKE før brugeren har bekræftet.

Workflow: Synk banktransaktioner

  1. Hent konti for bank (/accounts?filter=accountType$eq:balance&pagesize=100) — find bank-konto (typisk 5820)
  2. Hent kontosaldo for indeværende periode:
    GET /accounts/5820/accounting-years/2026/periods/6/totals
    
  3. Sammenlign med bankens faktiske saldo (fra CSV-import eller bank-API)
  4. Vis diff og identificer manglende/ukorrekte transaktioner
  5. Foreslå kassekladdeline for hver manglende transaktion

Workflow: Hent åbne fakturaer (kunder)

GET /invoices/booked?filter=balance$gt:0&pagesize=50

Returnerer alle bogførte fakturaer med ubetalt saldo > 0.

For hver faktura:

  • bookedInvoiceNumber — fakturanr
  • customer.name — kundenavn
  • netAmount / grossAmount — beløb ekskl./inkl. moms
  • balance — udestående
  • dueDate — forfaldsdato (udledes af termsNetDays + date)
  • currency — DKK/EUR/USD

Bruges typisk til:

  • Inkasso-rapporter (forfaldne >30 dage)
  • Aldersopdelt fordringsliste (0-30, 31-60, 61-90, 90+)
  • Likviditetsforecast

Workflow: Opret kunde

POST /customers
{
  "name": "Coop Danmark A/S",
  "customerGroup": { "customerGroupNumber": 1 },
  "paymentTerms": { "paymentTermsNumber": 1 },
  "vatZone": { "vatZoneNumber": 1 },
  "currency": "DKK",
  "address": "Roskildevej 65",
  "zip": "2620",
  "city": "Albertslund",
  "country": "Denmark"
}

⚠️ Tjek altid for duplikat (søg eksisterende kunder først):

GET /customers?filter=name$like:Coop$Danmark

Almindelige fejl

  • Glemmer Idempotency-Key ved POST → netværksfejl kan give dobbeltbogføring
  • Forkert momskode (U25 vs UEU25) → SKAT fanger det i krydstjek
  • Brug danske datoer i API — e-conomic bruger ISO yyyy-MM-dd i JSON, IKKE dansk dd-MM-yyyy
  • Beløb uden fortegn-konvention — negativ = debet, positiv = kredit (modsat dansk regnskabstradition)
  • PageSize > 1000 uden pagination
  • POST uden først at have hentet den aktuelle voucher → 409 Conflict
  • ALTID brug Idempotency-Key ved alle writes
  • ALTID konverter dansk dd-MM-yyyy → ISO yyyy-MM-dd FØR API-kald
  • ALTID verificer kontoplanen (/accounts) før bogføring — kunden kan have egne konti
  • ALTID tjek eksisterende kunder/leverandører før oprettelse (dublet-forebyggelse)
  • ALTID vis bogføringsforslag til brugeren FØR API-kald

Demo-mode anbefaling

Brug ALTID ?demo=true under udvikling:

  • Læs-data virker (GET)
  • Skrive-data deaktiveret (POST/PUT returnerer 405)
  • Forhindrer utilsigtet bogføring i produktion
  • Kan derfor frit browse konti, fakturaer, kunder uden risiko

Eksempel på aktivering

Bruger: "Bogfør et køb af kontorartikler for 1.250 kr. inkl. moms i e-conomic"

Svar (forkortet):

Forbinder e-conomic...

Klar til bogføring:

Felt Værdi
Kassekladde Daglig (#1)
Bilagsnr 42
Dato 15-06-2026
Tekst Kontorartikler — Kontorbutikken A/S
Debet (1690 Kontorartikler) 1.250,00 kr.
Kredit (5820 Bank) 1.250,00 kr.
Momskode I25 (indgående 25%)

⚠️ Bekræft før jeg bogfører. Svaret "ja, bogfør" udløser API-kald med Idempotency-Key.