Accounting API
Feature Detail
Description
The Accounting API feature provides a standardized integration layer between the Meander Admin Web Portal and external accounting systems used by member organizations. This includes Xledger for Blindeforbundet and the Dynamics-based portal for HLF. The API client handles authentication, data mapping, and transport for expense and reimbursement data that must flow into each organization's general ledger. The integration abstracts away per-organization accounting system differences behind a unified internal interface so the rest of the platform remains accounting-system agnostic.
Sources & reasoning
Lines 72 and 353 both explicitly name accounting system integration as a Fase 3 deliverable for HLF and Blindeforbundet. Fase 3 is the third development phase, mapping to v1.1. The API client is the foundational piece required before any export can occur, so it is a distinct feature from the export UI.
-
docs/source/likeperson.md · line 72API-integrasjon mot regnskapssystem (Xledger for Blindeforbundet, Dynamics-portal for HLF).
-
docs/source/likeperson.md · line 353Regnskapsintegrasjon (Xledger for Blindeforbundet, Dynamics accounting for HLF)
Analysis
Manual reconciliation between Meander expense records and organizational accounting systems is a significant administrative burden, particularly for HLF and Blindeforbundet who each operate distinct ERP platforms. A direct API integration eliminates double-entry, reduces errors, and shortens the reimbursement cycle for peer mentors. This directly supports operational efficiency for finance staff and improves trust in the platform as an authoritative source for expense data. Strategically, a clean accounting API makes Meander more attractive to new organizations that already run Xledger or Dynamics, lowering their adoption barrier and reducing onboarding time.
The implementation requires per-organization adapter classes that translate Meander's internal expense and reimbursement model into each accounting system's API contract. Xledger exposes a REST API; Dynamics integration may require OAuth2 and specific entity mapping. A shared AccountingApiClient infrastructure component acts as the dispatcher, with org-specific credentials stored securely in organization settings. Retry logic, idempotency keys, and error logging are mandatory given the financial nature of the data. All transactions must be logged to ExportLogRepository for audit trail compliance.
Quality Assurance
Organization Administrator (primary)Organization Administrator
Quick UAT
- Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Regnskapsintegrasjon i venstremenyen.
- Ă…pne siden for Regnskaps-API-konfigurasjon og bekreft at gjeldende regnskapssystem (f.eks. Xledger eller Dynamics) vises med status.
- GĂĄ til Felttilordninger og bekreft at organisasjonsspesifikke ledger-koder, kostnadssentre og kontokoder er synlige.
- Trykk Test tilkobling og bekreft at en suksessmelding vises med responstid og tilkoblingsstatus.
- Utfør en manuell synkronisering ved å trykke Send til regnskap og bekreft at eksportloggen oppdateres med tidsstempel og antall overførte poster.
- Ă…pne Revisjonslogg og bekreft at synkroniseringshandlingen er registrert med brukeridentitet og tidsstempel.
Quick UAT — Accessibility
-
Logg inn i Admin-portalen som Organisasjonsadministrator. Naviger til Regnskapsintegrasjon i venstremenyen.
- Screen reader Sidenavigasjonen annonseres som landemerke; menylenke 'Regnskapsintegrasjon' leses med tilstandsbeskrivelse.
- Keyboard / focus Tab-rekkefølge: logo → primærnavigasjon → innhold; Enter aktiverer menylenken.
- Focus visibility Synlig fokusring pĂĄ aktiv navigasjonslenke.
-
Ă…pne siden for Regnskaps-API-konfigurasjon og bekreft at gjeldende regnskapssystem (f.eks. Xledger eller Dynamics) vises med status.
- Screen reader Sideoverskrift annonseres; statusindikator leses med tekst, ikke kun farge (f.eks. 'Tilkoblet' ikke bare grønn prikk).
- Zoom Statusbrikker og etiketter forblir lesbare og ikke avskĂĄret ved 200 % zoom.
- Contrast 4.5:1 for statustekst; statustilstand formidles ikke utelukkende med farge.
-
GĂĄ til Felttilordninger og bekreft at organisasjonsspesifikke ledger-koder, kostnadssentre og kontokoder er synlige.
- Screen reader Fanepanel annonseres som role=tablist; aktiv fane leses som 'valgt'; tabellkolonner har overskrifter.
- Keyboard / focus Fanene nĂĄs med Tab; piltaster navigerer mellom faner; innhold oppdateres uten sideinnlasting.
- Focus visibility Fokus flyttes til faneinnhold etter aktivering.
-
Trykk Test tilkobling og bekreft at en suksessmelding vises med responstid og tilkoblingsstatus.
- Focus visibility Fokus forblir på eller returnerer til Test tilkobling-knapp etter fullføring.
- Touch target ≥ 24×24 CSS px for Test tilkobling-knapp.
- Live region 'Tilkobling vellykket. Responstid: X ms.' annonseres via polite live region.
-
Utfør en manuell synkronisering ved å trykke Send til regnskap og bekreft at eksportloggen oppdateres med tidsstempel og antall overførte poster.
- Screen reader Lastindikator under sending annonseres; ferdigmelding leses automatisk.
- Keyboard / focus Enter aktiverer knappen; Escape avbryter eventuell bekreftelsesdialog.
- Touch target ≥ 24×24 CSS px for Send til regnskap-knapp.
- Live region 'Synkronisering fullført. X poster overført.' annonseres via polite live region etter asynkron operasjon.
-
Ă…pne Revisjonslogg og bekreft at synkroniseringshandlingen er registrert med brukeridentitet og tidsstempel.
- Screen reader Loggtabell har kolonneoverskrifter; rader leses i logisk rekkefølge (handling → bruker → tidsstempel).
- Keyboard / focus Tabelrader navigeres med piltaster; sorteringsknapper nĂĄs med Tab og aktiveres med Enter/Space.
- Zoom Tabelloppsett forblir lesbart ved 200 % uten horisontal rulling av innhold.
Role Boundaries
3 role(s) must NOT access this feature-
Peer Mentor
Regnskapsintegrasjon finnes ikke i mobilappen; direkte URL til admin-portalen returnerer 403.
-
Coordinator
Koordinatorer logger ikke inn i Admin-portalen; direkte URL returnerer 403.
-
Prospective Organization Representative
Ingen autentisert tilgang til Admin-portalen; direkte URL returnerer 401.
Expected End State
Regnskaps-API-tilkoblingen er bekreftet aktiv, feltmappinger er verifisert, en vellykket manuell synkronisering er fullført, og handlingen er sporbar i revisjonsloggen med brukeridentitet og tidsstempel.
Components (21)
Shared Components
These components are reused across multiple features
User Stories
No user stories have been generated for this feature yet.