15 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", "Coop årsafstemning", "åben post pr. balancedato", "Coop revisorafstemning" eller "Coop årsregnskab". | 0.3.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.
Skillen dækker også årsafslutnings-/åben-post-afstemning til revisor, hvor alle TranbergDahl/Uniconta-debitorer behandles som én samlet Coop-modpart, selv om Uniconta-eksporten er grupperet pr. butik/debitor.
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"
- "Afstem åbne Coop-poster pr. 31-12 til revisor"
- "Sammenlign TranbergDahls Uniconta-debitorer med Coop kreditor-kontoudtog"
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
Ved årsafslutnings-/revisorafstemning er input typisk:
- Uniconta debitor-kontoudtog alle — grupperet pr. TranbergDahl/Coop-butik med debitorsaldo på gruppelinjen og faktura-/kreditnota-detailposter under.
- Coop kreditor-kontoudtog — flad SAP-lignende eksport med
Reference,Posting Date,Clearing Date,Amount in Doc. Curr.,Document Type,Document Numberog evt.Assignment. - Kontrolsaldo fra Uniconta/finans pr. balancedato, fx saldo på samlet Coop-tilgodehavende.
- Eventuel kendt liste/antal over fakturaer som mangler i Coop-opgørelsen.
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
Årsafslutningsflow: åben post pr. balancedato
Brug dette flow når målet er dokumentation til revisor eller årsregnskab, ikke bogføring af en enkelt bankbetaling.
Afklar før analyse
- Bekræft balancedato, typisk
31-12-yyyy. - Bekræft at alle TranbergDahl/Uniconta-debitorer skal behandles som én samlet Coop-modpart.
- Bekræft hvilket felt i Coop-eksporten er fakturanummer. Standard:
Reference; brug kunAssignmentsom sekundær hjælpekolonne hvis brugeren bekræfter det. - Bekræft matchregel. Standard til revisor: fakturanr. + beløb med modsat fortegn og tolerance
0,01 kr. - Bekræft kontrolsaldo fra Uniconta/finans og om kendte manglende fakturaer i Coop-opgørelsen skal vises separat.
Datamodellering
Uniconta/TranbergDahl-debitorfil
- Læs gruppelinjer som debitor-masterdata: debitor nr., navn, by og debitorsaldo.
- Læs detailposter som faktura-/kreditnota-linjer: dato, fakturanr., bilag, tekst, beløb, resterende, forfalden og type.
- Brug sum af debitorsaldi fra gruppelinjerne som primær saldo mod Uniconta/finans. Brug ikke blindt sum af detailkolonnen
Resterende, da den kan være ufuldstændig eller blank på udlignede/regulerede linjer.
Coop kreditor-kontoudtog
- Brug
Referencesom fakturanr., når det er bekræftet. - Åben post pr. balancedato defineres som:
Posting Date <= balancedato, ogClearing Dateer blank ellerClearing Date > balancedato.
- Forvent modsat fortegn mellem TranbergDahl-debitorbeløb og Coop-kreditorbeløb.
- Medtag kreditnotaer på samme måde som fakturaer; forskellen ligger i fortegnet, ikke i afstemningsmetoden.
Matchhierarki
- Høj confidence: fakturanr. + beløb med modsat fortegn, tolerance
0,01 kr. - Mellem confidence: fakturanr. findes, men beløbet afviger. Marker som
Beløbsdifference. - Lav confidence / manuel kontrol: samme beløb, men manglende fakturanr. Brug kun som analysehint, ikke som revisor-konklusion.
- Mangler i Coop: fakturanr. findes i Uniconta/TranbergDahl, men ikke i Coop-eksportens fakturanummerfelt.
- Kun i Coop: fakturanr. findes i Coop-eksporten, men ikke i Uniconta/TranbergDahl-eksporten.
Revisor-egnet output
Lav altid en arbejdsbog eller rapport med disse faner/sektioner:
| Sektion | Indhold |
|---|---|
Forside / Konklusion |
Formål, balancedato, kilder, kontrolsaldo, samlet konklusion, væsentlige forbehold |
Metode |
Matchregel, cutoff-regel, fortegnskonvention, tolerance og felter brugt |
Saldoafstemning |
Uniconta/finans-saldo, sum af debitorsaldi, Coop åbne poster, kendte mangler/reguleringer og uforklaret difference |
Debitorsaldi |
Alle TranbergDahl/Uniconta-butikker som underposter til én samlet Coop-modpart |
Matchede poster |
Fakturanr. + beløb matcher med høj confidence |
Beløbsdifferencer |
Fakturanr. findes begge steder, men beløb matcher ikke |
Mangler i Coop |
Fakturaer/kreditnotaer i Uniconta/TranbergDahl som ikke findes i Coop-kontoudtog |
Kun i Coop |
Coop-reference som ikke findes i Uniconta/TranbergDahl |
Kendte mangler |
Brugeroplyste kendte mangler, fx antal eller liste over fakturaer der mangler i Coop |
Checks |
Maskinelle checks: saldo binder, antal binder, ingen dubletter uden forklaring, dato-cutoff anvendt |
Kvalitetskrav
- Vis beløb med dansk formatering og
kr. - Brug både antal og beløb i alle opsummeringer.
- Bevar debitor nr. og debitor navn på alle Uniconta-linjer, selv om rapportens konklusion er én samlet Coop-modpart.
- Marker kendte Coop-reguleringer som forklaringstype, ikke som automatisk match.
- Skriv tydeligt hvis saldoafstemningen bygger på en ekstern kontrolsaldo, og vis difference mod kildesaldoerne.
- Slut med en revisor-egnet konklusion:
Afstemt,Afstemt med kendte differencer, ellerIkke fuldt afstemt - kræver dokumentation.
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
- ❌ Sum af detailposter matcher ikke Uniconta-saldo: ved debitor-kontoudtog kan gruppelinjens debitorsaldo være den saldo, der binder til finans, mens detailkolonnen kun viser restbeløb på udvalgte linjer.
- ❌ Coop viser kun hovedkontoret, mens Uniconta viser butikker: behandl butikkerne som underposter til én samlet Coop-modpart og rapportér både samlet saldo og debitorfordeling.
- ❌ Faktura findes i Coop, men ikke åben pr. balancedato: forklares ofte af
Clearing Date; klassificér den efter cutoff, ikke bare efter om fakturanr. findes i hele filen. - ❌ 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