# Government Customer Portal — Specification ## Core Principle **Myndigheter ska själva administrera:** - Betalningssätt (kort, faktura, autogiro) - Fakturaadress och referenser - Kostnadsramar och budgetbevakning - Användare och behörigheter - Vilka områden de vill bevaka ## Self-Service Model | Funktion | Beskrivning | |----------|-------------| | **Betalningsinställningar** | Välj kort, faktura, autogiro. Ange fakturaadress, OCR/er referens, attestflöde | | **Kostnadsramar** | Sätt månads-/årsbudget. Få varning vid 80%. Blockera vid 100% (kan överridas) | | **Användarhantering** | Lägg till kollegor, tilldela roller (beställare, attestant, tittare) | | **Bevakningsområden** | Rita på karta, välj fastigheter, adresser, eller kommunala objekt | | **Fakturahistorik** | Se alla fakturor, ladda ner PDF, exportera till Excel | | **Avtalsöversikt** | Se aktiva avtal, förbrukning, förnyelsedatum | ## Integrationer ### Stripe - Kortbetalning (automatiskt) - Sätta upp autogiro - Faktura via Stripe (alternativ till PEPPOL) ### PEPPOL (för myndigheter som kräver det) - Elektronisk faktura direkt till deras ekonomisystem - Stöd för Svefaktura 1.0 / PEPPOL BIS Billing 3.0 - Org-nr validering mot Skatteverket ### AAMOS Ledger (port 3250) - Bokföring av alla transaktioner - SIE4-export för myndighetens redovisning - Momsredovisning ## Teknisk Arkitektur ``` ┌─────────────────────────────────────────┐ │ Government Portal (React/Vue) │ │ - Självbetjäning │ │ - Kostnadsöversikt │ │ - Fakturahistorik │ └─────────────────┬───────────────────────┘ │ ┌─────────────────▼───────────────────────┐ │ LandveX Gateway (port 3004) │ │ - Auth & API-nycklar │ │ - Routing till rätt tjänst │ └─────────────────┬───────────────────────┘ │ ┌─────────────┼─────────────┐ │ │ │ ┌───▼───┐ ┌────▼────┐ ┌────▼────┐ │Stripe │ │ PEPPOL │ │AAMOS │ │ │ │ Gateway │ │Ledger │ │3250 │ │ │ │(3250) │ └───────┘ └─────────┘ └─────────┘ ``` ## Data Model ```typescript interface GovernmentCustomer { id: string; // org-nr som ID name: string; type: 'kommun' | 'region' | 'myndighet' | 'bolag'; // Betalningsinställningar paymentSettings: { method: 'card' | 'invoice' | 'autogiro'; invoiceAddress: string; invoiceEmail: string; reference: string; // "Ert referensnummer" ocrNumber?: string; costCenter?: string; }; // Kostnadsramar budgetLimits: { monthly?: number; yearly?: number; alertAtPercent: number; // default 80 blockAtPercent: number; // default 100 }; // Bevakningsområden watchAreas: Array<{ id: string; name: string; geometry: GeoJSON.Polygon; // Rita på karta type: 'custom' | 'property' | 'municipal'; }>; // Användare users: Array<{ email: string; role: 'admin' | 'orderer' | 'approver' | 'viewer'; name: string; }>; } ``` ## API Endpoints ``` GET /api/v1/government/me → Min profil PUT /api/v1/government/payment → Uppdatera betalningsinställningar GET /api/v1/government/invoices → Fakturahistorik GET /api/v1/government/budget → Kostnadsöversikt POST /api/v1/government/areas → Lägg till bevakningsområde GET /api/v1/government/areas → Lista bevakningsområden DELETE /api/v1/government/areas/:id → Ta bort bevakningsområde POST /api/v1/government/users → Bjud in användare ``` ## Fakturaflöde ``` 1. Myndighet beställer tjänst 2. Uppdrag genomförs 3. Faktura genereras (PDF + PEPPOL) 4. Faktura skickas till angiven adress/epost 5. Myndighet ser faktura i portalen 6. Betalning registreras i AAMOS Ledger 7. SIE4-export för redovisning ``` ## Kostnadsöversikt (Dashboard) | Widget | Data | |--------|------| | **Denna månad** | Förbrukat / Budget | | **Prognos** | Årsprognos baserat på nuvarande takt | | **Per tjänst** | Uppdelning per typ av uppdrag | | **Per område** | Kostnad per bevakningsområde | | **Jämförelse** | Denna månad vs förra månaden | ## MVP-0: Government Portal ### Sprint 1: Grund - [ ] Inloggning med BankID (Svensk E-legitimation) - [ ] Profilsida med org-nr och adress - [ ] Betalningsinställningar (fakturaadress, referens) ### Sprint 2: Bevakning - [ ] Karta med ritverktyg - [ ] Spara bevakningsområden - [ ] Lista bevakade områden ### Sprint 3: Ekonomi - [ ] Kostnadsöversikt - [ ] Fakturahistorik - [ ] Budgetvarningar ### Sprint 4: Användare - [ ] Bjud in kollegor - [ ] Roller och behörigheter - [ ] Attestflöde ## Status **Specifikation:** ✅ KLAR **Implementation:** 🔄 EJ PÅBÖRJAD **Beroenden:** - AAMOS Ledger (3250) — måste vara igång - Stripe — måste konfigureras - PEPPOL — kan vänta till efter MVP