Approve or Reject an Individual Expense Claim
When a coordinator taps a claim in the queue, they are presented with the full claim detail: expense type breakdown, mileage or cost amount, receipt image (if attached), and a status timeline showing the claim's lifecycle. An action sheet provides Approve and Reject actions. Rejection must require a brief reason to be communicated back to the claimant. On approval, the claim is flagged for accounting export and the peer mentor receives a push notification. The claim status timeline updates immediately to reflect the coordinator's decision.
User Story
Acceptance Criteria
- Given a coordinator opens a pending claim, when the detail view loads, then it shows expense type, amount, submission date, receipt thumbnail (if present), and current status
- Given a coordinator taps Approve, when the action is confirmed, then the claim status changes to 'approved', a push notification is sent to the peer mentor, and the claim is queued for accounting export
- Given a coordinator taps Reject, when prompted for a reason and they submit it, then the claim status changes to 'rejected', the reason is stored, and the peer mentor is notified with the rejection reason
- Given a claim has a receipt image attached, when the coordinator views the claim, then the receipt is displayed as a thumbnail that can be tapped to view full size
- Given a coordinator approves or rejects a claim, when the action completes, then the claim is removed from the pending review queue and the queue count updates
Business Value
Individual claim review with receipt inspection is the core compliance control in the expense workflow. Providing a single-screen approve/reject action with receipt visibility ensures coordinators can fulfill their fiduciary duty without switching tools, reducing approval cycle time and lowering the risk of fraudulent or erroneous claims being processed.
Components
- Approval Action Bottom Sheet ui
- Claim Status Audit Timeline ui
- Claim Status Badge ui
- Approval Workflow Service service
- Approval Status Notification Service service
- Claim Events Repository data
- Expense Claim Status Repository data
- Claim Approval Decision Repository data
- Receipt Thumbnail Preview Widget ui
- Supabase Realtime Approval Subscription infrastructure
Dependencies
- Review Pending Expense Claims Queue critical