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.
9.6 KiB
name, description, version, author, license, metadata
| name | description | version | author | license | metadata | |||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| coop-bankimport | Reconcilier Coop Danmark-bankbetalinger mod Uniconta- eller e-conomic-fakturaer (og kreditnotaer, bonus, modregninger) — aktiveres ved "Coop afstemning", "Coop bankbetaling", "Coop opgørelse", "forenel Coop betaling med faktura", "Coop kreditnota". | 0.2.0 | radix-accountant | MIT |
|
Coop Danmark-bankimport & afstemning (Uniconta eller e-conomic)
Specifikt workflow til Coop Danmark ↔ [Uniconta|e-conomic]-afstemning. Hver bankbetaling fra Coop følges af en specifikation (opgørelse) der viser præcis hvilke fakturaer, kreditnotaer, bonusser og modregninger beløbet dækker. Målet er at matche bankbetalinger (Coop) → opgørelseslinjer → bogføringssystem-bilag og producere bogføringsklare posteringer.
Hvilket bogføringssystem?
| System | Fordel ved Coop-afstemning | Ulempe |
|---|---|---|
| Uniconta | Lokal data, ingen API-rate-limit, kender hele kontohistorik | Manuel CSV-eksport nødvendig |
| e-conomic | Cloud-baseret, kan bogføre direkte via API, kunde 1 (Coop) findes typisk allerede | Rate-limit, kræver AppSecretToken |
Spørg brugeren hvilket system de bruger — svaret bestemmer hvordan data hentes og hvordan bogføringsforslaget præsenteres.
Aktiveres ved
- "Forenel denne Coop-bankbetaling med Uniconta"
- "Importer Coop-opgørelse for uge 22"
- "Hvorfor matcher Coop-bankbetalingen ikke Uniconta-saldoen?"
- "Generer bogføringsforslag for denne Coop-indbetaling"
Forventede input
Brugeren leverer typisk:
- Coop bankbetalings-CSV (Sydbank, Jyske Bank eller Danske Bank — særskilt format for Coop)
- Coop-specifikation (PDF eller Excel) — viser linjer for hver faktura
- Bogføringssystem-data (ét af):
- Uniconta-eksport (fakturaer, kreditnotaer, åbne poster) — typisk Excel
- e-conomic API-kald (se
e-conomic-integrationskill):/invoices/booked?filter=balance$gt:0&filter=customer.name$like:Coop
Coops bankbetalingsformat (typisk)
Bogføringsdato;Posteringstekst;Beløb;Saldo
15-06-2026;"Coop Danmark A/S Bankbetaling 12345678";-23.456,78;100.000,00
- Negativ beløb = du har modtaget penge fra Coop (kredit på din konto)
- Reference = Coops bankaftale-id (8 cifre typisk)
- Dato = afregningsdato
Coops specifikation (Excel/PDF, eksempel)
| Fakturanr | Fakturadato | Beløb | Moms | Total | Type |
|---|---|---|---|---|---|
| 2026-1234 | 01-06-2026 | 1.000,00 | 250,00 | 1.250,00 | Faktura |
| 2026-1235 | 02-06-2026 | 2.500,00 | 625,00 | 3.125,00 | Faktura |
| KN-2026-100 | 03-06-2026 | -500,00 | -125,00 | -625,00 | Kreditnota |
| Bonus-2026-06 | 30-06-2026 | -1.000,00 | 0,00 | -1.000,00 | Bonus |
| Modregning-2026-06 | 30-06-2026 | -250,00 | 0,00 | -250,00 | Modregning |
| Total | 1.750,00 | 750,00 | 2.500,00 |
Bankbetalingen på 2.500,00 kr. dækker altså: 2 fakturaer − 1 kreditnota − bonus − modregning.
Workflow
Fase 1: Importér bankbetaling
- Modtag Coop-CSV (typisk Sydbank-format)
- Filtrér Coop-poster (tekst matcher
Coop Danmark) - Vis hver bankbetaling med reference, dato, beløb
Fase 2: Importér opgørelse (specifikation)
- Modtag specifikationsfil (PDF eller Excel)
- Parse linjer: fakturaer, kreditnotaer, bonus, modregninger
- Beregn totaler og verificer at de matcher bankbetalingen
- Hvis differens: marker som "afventer manuel kontrol"
Fase 3: Match mod bogføringssystem
Variant A: Uniconta
- Hent Uniconta-fakturaer (via API eller eksport) for samme periode
- For hver faktura i opgørelsen: søg i Uniconta efter match på:
- Primær match: fakturanr + beløb (høj confidence)
- Sekundær match: beløb + dato ±7 dage (medium confidence)
- Ingen match: marker som "mangler i Uniconta"
Variant B: e-conomic
- Hent bogførte fakturaer via API:
GET /invoices/booked?filter=balance$gt:0&filter=customer.name$like:Coop - Filtrér på kunde (Coop Danmark A/S) — de fleste Coops kunder findes som kunde 1, men tjek
- For hver faktura i opgørelsen: søg i e-conomic-respons efter match på:
- Primær match:
bookedInvoiceNumber+grossAmount(høj confidence) - Sekundær match:
grossAmount+date±7 dage (medium confidence) - Ingen match: marker som "mangler i e-conomic"
- Primær match:
Vis match-status for hver linje (uanset variant):
- ✅ Matchet (faktura fundet)
- ⚠️ Forskelligt beløb (faktura fundet, men beløb afviger)
- ❌ Manglende (faktura ikke fundet)
Fase 4: Generer bogføringsforslag
For hver matchet bankbetaling:
BOGFØRINGSFORSLAG — Coop bankbetaling [reference]
═══════════════════════════════════════════════════
Dato: [dd-MM-yyyy]
Bankbeløb: 2.500,00 kr. (positivt = indbetaling)
───────────────────────────────────────────────────
DEBET (kontonr / navn) BELØB
───────────────────────────────────────────────────
[56200] Bank, Sydbank 2.500,00
KREDIT (kontonr / navn) BELØB
───────────────────────────────────────────────────
[10120] Tilgodehavender, salg 1.250,00 (faktura 2026-1234)
[10120] Tilgodehavender, salg 3.125,00 (faktura 2026-1235)
[10120] Tilgodehavender, salg −625,00 (kreditnota KN-2026-100)
[52100] Bonus og rabatter 1.000,00 (bonus)
[58000] Modregning 250,00 (modregning)
Total debet: 2.500,00
Total kredit: 2.500,00
═══════════════════════════════════════════════════
Diff: 0,00 ✅ Balanceret
═══════════════════════════════════════════════════
Fase 5: Bruger-godkendelse
⚠️ Vis altid bogføringsforslaget og vent på eksplicit godkendelse før der postes til Radix/Uniconta/e-conomic.
Hvis brugeren vil bogføre direkte i e-conomic (se e-conomic-integration skill):
- Vis bogføringsforslaget med konkrete kontonumre
- Generer
entriesJSON-objekt klar til/journals/:id/vouchers/:n/entriesPOST - Generer et UUID v4 Idempotency-Key
- Vent på "ja, bogfør" — udfør derefter API-kald
- Verificer at svaret er 201 Created og at
entriesindeholder bogførings-ID
Almindelige problemer
- ❌ Bankbeløb matcher ikke opgørelse-total: typisk fordi opgørelsen kun viser netto (efter Coops egne fradrag som emballage-pant, kampagnerabat, mv.)
- ❌ Faktura findes ikke i Uniconta: kan skyldes at fakturaen er bogført i forkert regnskabsår, eller at Uniconta-eksporten er ufuldstændig
- ❌ Kreditnota findes, men med forkert fortegn: dobbelt-negativ bliver positivt — håndtér dette eksplicit
- ❌ Coop-bonus mangler konto: virksomheder der ikke har en dedikeret bonuskonto bruger typisk 52100 (Bonus/rabatter) — bekræft med brugeren
- ❌ Modregning uden specifikation: spørg brugeren — kan være emballage-pant, reklamation, eller andet
- ✅ ALTID verificer at bankbeløb = sum(opgørelseslinjer) ±0,01 kr. (afrundingstolerance)
- ✅ ALTID vis match-status per linje (matchet / afvigende / manglende)
- ✅ ALTID vent på brugerens "ja, bogfør" før API-kald
Kontering (typisk dansk kontoplan)
| Kontotype | Kontonr (SUM/DG) | Bruges til |
|---|---|---|
| Bank | 56200 | Bank, Sydbank/Jyske/Danske (pengebevægelsen) |
| Tilgodehavender | 10120 | Åbne fakturaer der betales af Coop |
| Bonus/rabatter | 52100 | Coops bonus, årsbonus, kampagnerabat |
| Modregning | 58000 | Emballage-pant, reklamation, Cops egne fradrag |
| Kreditnotaer | 10120 (negativ) | Coops kreditnotaer (vareretur mv.) |
Tallene er eksempler — bekræft altid med virksomhedens egen kontoplan.
Eksempel-aktivering
Bruger: "Jeg har lige fået en Coop-betaling på 12.345,67 kr. d. 15-06-2026. Her er opgørelsen — kan du finde ud af hvad der dækker hvad?"
Svar (forkortet):
✅ Bankbetaling genkendt: 12.345,67 kr. d. 15-06-2026
| Opgørelseslinje | Beløb | Uniconta-match | Status |
|---|---|---|---| | Faktura 2026-1234 | 1.250,00 | UN-5678 | ✅ Matchet | | Faktura 2026-1235 | 3.125,00 | UN-5679 | ✅ Matchet | | Faktura 2026-1240 | 5.000,00 | UN-5680 | ✅ Matchet | | Kreditnota KN-2026-100 | -625,00 | UN-5681 | ✅ Matchet | | Bonus Q2 2026 | -1.404,33 | (bogføres direkte) | ⚠️ Ingen reference | | Total | 7.345,67 | | | | Diff vs bank | 5.000,00 | | ⚠️ Mangler 5.000,00 kr. |
Bogføringsforslag:
DEBET 56200 Bank 12.345,67 KREDIT 10120 Tilgodehavender 1.250,00 KREDIT 10120 Tilgodehavender 3.125,00 KREDIT 10120 Tilgodehavender 5.000,00 KREDIT 10120 Tilgodehavender -625,00 KREDIT 52100 Bonus -1.404,33⚠️ Bemærk: Diff på 5.000,00 kr. — enten mangler en faktura i opgørelsen, eller opgørelsen er ufuldstændig. Vil du:
- Indberette bogføringsforslag som det er (med diff markeret)
- Springe bankbetalingen over indtil videre
- Kontakte Coop for komplet specifikation