Accounting API
Feature Detail
Description
This feature connects Meander to each organisation's accounting system (Xledger for Blindeforbundet, Dynamics/Visma for HLF) to automate the export of approved expense reimbursements, reducing manual re-entry and reconciliation work. An admin-facing configuration page allows each organisation to map Meander expense types to their chart of accounts and set export schedules or trigger exports on demand. The accounting adapter abstracts protocol and schema differences so that multiple accounting backends can be supported through a shared interface.
User Flow
Analysis
Manual re-entry of approved expenses into accounting systems is a significant time cost for finance staff and a source of transcription errors. Both Blindeforbundet (Xledger) and HLF (Dynamics-portal) have explicitly requested API-level integration to eliminate this step. Automating expense export reduces processing time per reimbursement, lowers error rates, and accelerates payment cycles for peer mentors — directly improving volunteer satisfaction. From a sales perspective, demonstrating a ready-made accounting integration lowers the perceived switching cost for organisations already using common Norwegian accounting platforms, making Meander a more compelling purchase.
Implement an AccountingApiService backed by a pluggable AccountingAdapter interface with concrete implementations for Xledger and Dynamics. Each adapter handles authentication (OAuth2 or API key), payload mapping from Meander's expense schema to the target system's journal entry format, and idempotency via an external reference ID stored on each reimbursement record. The admin configuration page stores encrypted credentials and allows mapping of Meander expense type IDs to the organisation's account codes. Export operations should be transactional: either all line items in a batch export succeed and are marked as exported, or the entire batch is rolled back and queued for retry. All export events must appear in the audit log. Include a dry-run mode that validates the payload against the target API without committing data, so admins can verify mappings before going live.
Components (118)
Shared Components
These components are reused across multiple features
User Interface (12)
Service Layer (34)
Data Layer (22)
Infrastructure (38)
User Stories
No user stories have been generated for this feature yet.