Add Coop year-end reconciliation workflow
This commit is contained in:
@@ -3,8 +3,9 @@ name: coop-bankimport
|
||||
description: >
|
||||
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".
|
||||
version: 0.2.0
|
||||
"forenel Coop betaling med faktura", "Coop kreditnota", "Coop årsafstemning", "åben post
|
||||
pr. balancedato", "Coop revisorafstemning" eller "Coop årsregnskab".
|
||||
version: 0.3.0
|
||||
author: radix-accountant
|
||||
license: MIT
|
||||
metadata:
|
||||
@@ -17,6 +18,8 @@ metadata:
|
||||
|
||||
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 |
|
||||
@@ -32,6 +35,8 @@ Specifikt workflow til **Coop Danmark ↔ [Uniconta|e-conomic]-afstemning**. Hve
|
||||
- "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
|
||||
|
||||
@@ -42,6 +47,12 @@ Brugeren leverer typisk:
|
||||
- **Uniconta-eksport** (fakturaer, kreditnotaer, åbne poster) — typisk Excel
|
||||
- **e-conomic API-kald** (se `e-conomic-integration` skill): `/invoices/booked?filter=balance$gt:0&filter=customer.name$like:Coop`
|
||||
|
||||
Ved **årsafslutnings-/revisorafstemning** er input typisk:
|
||||
1. **Uniconta debitor-kontoudtog alle** — grupperet pr. TranbergDahl/Coop-butik med debitorsaldo på gruppelinjen og faktura-/kreditnota-detailposter under.
|
||||
2. **Coop kreditor-kontoudtog** — flad SAP-lignende eksport med `Reference`, `Posting Date`, `Clearing Date`, `Amount in Doc. Curr.`, `Document Type`, `Document Number` og evt. `Assignment`.
|
||||
3. **Kontrolsaldo fra Uniconta/finans** pr. balancedato, fx saldo på samlet Coop-tilgodehavende.
|
||||
4. Eventuel kendt liste/antal over fakturaer som mangler i Coop-opgørelsen.
|
||||
|
||||
## Coops bankbetalingsformat (typisk)
|
||||
|
||||
```
|
||||
@@ -142,11 +153,75 @@ Diff: 0,00 ✅ Balanceret
|
||||
4. Vent på "ja, bogfør" — udfør derefter API-kald
|
||||
5. Verificer at svaret er 201 Created og at `entries` indeholder 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
|
||||
|
||||
1. Bekræft balancedato, typisk `31-12-yyyy`.
|
||||
2. Bekræft at alle TranbergDahl/Uniconta-debitorer skal behandles som **én samlet Coop-modpart**.
|
||||
3. Bekræft hvilket felt i Coop-eksporten er fakturanummer. Standard: `Reference`; brug kun `Assignment` som sekundær hjælpekolonne hvis brugeren bekræfter det.
|
||||
4. Bekræft matchregel. Standard til revisor: fakturanr. + beløb med modsat fortegn og tolerance `0,01 kr.`
|
||||
5. 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 `Reference` som fakturanr., når det er bekræftet.
|
||||
- Åben post pr. balancedato defineres som:
|
||||
- `Posting Date <= balancedato`, og
|
||||
- `Clearing Date` er blank eller `Clearing 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
|
||||
|
||||
1. **Høj confidence**: fakturanr. + beløb med modsat fortegn, tolerance `0,01 kr.`
|
||||
2. **Mellem confidence**: fakturanr. findes, men beløbet afviger. Marker som `Beløbsdifference`.
|
||||
3. **Lav confidence / manuel kontrol**: samme beløb, men manglende fakturanr. Brug kun som analysehint, ikke som revisor-konklusion.
|
||||
4. **Mangler i Coop**: fakturanr. findes i Uniconta/TranbergDahl, men ikke i Coop-eksportens fakturanummerfelt.
|
||||
5. **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`, eller `Ikke 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)
|
||||
|
||||
Reference in New Issue
Block a user