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.

Feature: Travel Expense Registration

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.

  • Begge 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).
  • Reiserefusjon / 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[]