Expense Service
Component Detail
Service Layer
medium complexity
backend
0
Dependencies
0
Dependents
5
Entities
0
Integrations
Description
Backend service that receives expense submissions, applies approval rules, and routes entries to auto-approval or coordinator attestation. Acts as the entry point for the wider expense pipeline feeding the Reimbursement Overview and Bufdir capture.
expense-service
Sources & reasoning
Section 2.1 and the priority matrix mark travel expense registration as SHOULD HAVE in Phase 2 (Core Product) for HLF and Blindeforbundet, with explicit requirements for fixed expense types. Phase 5 roadmap also lists 'Reiserefusjonshåndtering' under Core Product.
-
docs/source/likeperson.md · line 40-42Begge organisasjoner har behov for registrering av kilometergodtgjørelse, bompenger, parkering og kollektivt. ... Faste valg for utleggstype - ikke fritekst - for å hindre feilkombinasjon (f.eks. både km og bussbillett).
-
docs/source/likeperson.md · line 98Reiserefusjon / utleggsregistrering | - | - | ✓ | ✓ | ✓ | SHOULD HAVE | 2
Responsibilities
- Accept and validate expense submissions from the mobile client
- Apply configured threshold rules to decide auto-approve vs manual attestation
- Route entries requiring approval to a coordinator queue
- Enforce role-based access control on submission and approval actions
- Emit events to downstream reimbursement and reporting pipelines
Interfaces
submitExpense(userId, expense): ExpenseId
evaluateApproval(expenseId): ApprovalDecision
approveExpense(expenseId, coordinatorId): void
listPendingForCoordinator(coordinatorId): Expense[]
Related Data Entities (5)
Data entities managed by this component