# CLAUDE.md — aamos-ledger > AI-kontext för alla som jobbar i detta repo. ## Vad är detta? **aamos-ledger** är LandveX AB:s bokföringsmotor — en komplett, egenutvecklad redovisningsmotor med: - Dubbel bokföring (debet = kredit, alltid) - BAS 2024 kontoplan (svensk standard) - SIE4-import och export - Multi-tenant isolering (tenant_id på varje rad) - Full audit trail (varje operation sparas i `ledger_audit_log`) - Hermes event-publicering (alla ekonomiska händelser) **Port:** 3250 **Tenant för LandveX AB:** `landvex` **Tjänstnamn (systemd):** `aamos-ledger` --- ## Arkitektur ``` index.mjs — Express-app, alla API-routes schema.sql — PostgreSQL-schema (kör vid start via initSchema()) hermes.mjs — Event-publishing till Hermes fabric sie4-export.mjs — SIE4-exportlogik Dockerfile.migrate — DB-migration container package.json — Node ESM-modul ``` ### Databasschema (nyckelltabeller) | Tabell | Beskrivning | |--------|------------| | `ledger_accounts` | Kontoplan (BAS 2024, IFRS, custom) | | `ledger_journal_entries` | Verifikationer (IMMUTABLE efter `posted`) | | `ledger_entry_lines` | Kontolinjer per verifikat (debet/kredit) | | `ledger_periods` | Perioder (`open`/`closed`/`locked`) | | `ledger_audit_log` | Audit trail för varje operation | | `ledger_reconciliation_items` | Kontoavstämning | | `ledger_period_close_tasks` | Periodeclose workflow | | `ledger_vat_returns` | Momsdeklarationer | | `ledger_fiscal_years` | Räkenskapsår | --- ## API-design Alla endpoints kräver auth (JWT eller API-key). Tenant sätts via: - Header: `X-Tenant-ID: landvex` - Body: `{ "tenant_id": "landvex" }` Exempel: ```bash GET /api/accounts?tenant=landvex POST /api/journal-entries GET /api/periods?tenant=landvex POST /api/sie4/export ``` Trace-propagering via headers: - `X-Trace-ID` — propageras genom hela systemet - `X-Correlation-ID` — korrelation per request-träd - `X-User-ID` — vem som triggar --- ## Designprinciper (OBRYTBARA) 1. **Determinism före AI** — alla bokföringsbeslut reproducerbara 2. **Audit First** — VARJE operation genererar auditpost 3. **Tenant Isolation** — kunddata korsas aldrig, `tenant_id` filtreras alltid 4. **Hermes** — ekonomiska händelser publiceras via event fabric 5. **Inga direktberoenden** — till andra moduler (utom Hermes via events) 6. **IMMUTABLE journal** — poster ändras ALDRIG efter `status=posted`; annullering = ny `voided`-post --- ## Etapp 1 — Vertikal stängning (pågår juni 2026) Checklista: - [x] Chart of Accounts (BAS 2024) - [x] Journal Entries med audit trail - [x] SIE4-import - [ ] **E1-004** Reconciliation Engine - [ ] **E1-005** Period Close Workflow - [ ] **E1-006** SIE4 Export (komplett) - [ ] Auth mot Identity Service - [ ] aamos-audit-engine restart-fix - [ ] **E1-008** Vertikal stängning acceptanstest --- ## LandveX AB — Nuläge (per 2026-06-17) | Mått | Värde | |------|-------| | Journalposter totalt | ~710 | | Alla poster | `posted` (inga drafts) | | Obalanserade poster | **0** | | Aktiva konton | 38 | | Revolut-poster på 1689 (oklassificerade) | ~545 / 966 685 kr | | Q1-moms förfallen | **202 787 kr** — OBETALD | | Leon-fordran | **212 922 kr** (konto 1610) | | Trygg Bil-avtal | 222 916 kr/mån t.o.m. mars 2027 | --- ## Ekonomisystem — Fortnox-klonen i Ouroboros Live-URLer: - **Fortnox-klonen:** https://landvex.com/ouroboros/finance/ - **Verifikatsvy:** https://landvex.com/ouroboros/finance/ledger.html - **CFO-dashboard:** https://landvex.com/public/cfo-dashboard.html Filer på disk: - `/opt/amos/public/ouroboros/finance/index.html` - `/opt/amos/public/ouroboros/finance/ledger.html` - `/opt/amos/public/public/cfo-dashboard.html` --- ## Kör lokalt ```bash cd /home/bernt/.openclaw/workspace/aamos-ledger # eller källkoden live på servern: sudo -n systemctl status aamos-ledger sudo -n journalctl -u aamos-ledger -n 50 # Health check curl -sk http://localhost:3250/health ``` --- ## Bolagsinfo - **Bolag:** LandveX AB (org.nr 559141-7042, f.d. Sommarliden Holding AB) - **Räkenskapsår:** 1 maj – 30 april - **FY 2025/2026:** avslutat, bokslut senast 31 okt 2026 - **Revisor:** Andreas Vretblad, KPMG, +46 70 865 67 27 --- *Senast uppdaterad: 2026-06-17*