Attach Receipt Photo to Expense Claim
For expenses above the configured threshold (100 NOK per HLF policy), a receipt image must be attached. The app should allow the peer mentor to take a photo with the device camera or select from the gallery, display a thumbnail preview for confirmation, compress the image before upload to reduce storage costs, and clearly indicate on the expense form whether a receipt is required and whether one has been attached. The receipt attachment status must persist through draft saves and be visible in the claim status view.
User Story
Acceptance Criteria
- Given my expense amount exceeds the receipt threshold, when I view the expense form, then a receipt attachment section is displayed with a 'Required' indicator
- Given I tap 'Add Receipt', when the camera sheet opens, then I can take a new photo or select an existing image from my gallery
- Given I capture a photo, when the image is processed, then it is compressed to reduce file size and a thumbnail preview is shown for confirmation
- Given a receipt is attached, when I view the expense form, then the attachment indicator shows a thumbnail and the claim can be submitted
- Given my expense amount is below the receipt threshold, when I view the expense form, then the receipt section is displayed as optional rather than required
- Given I submit a claim with a required receipt but none attached, when I attempt to submit, then validation blocks submission and shows a clear error message
Business Value
Receipt attachment is required for compliance with HLF reimbursement policy and Norwegian accounting regulations. Enabling in-app photo capture removes a significant friction point — previously mentors had to scan and email receipts separately — which directly reduces underreporting of legitimate expenses and protects the organization from audit risks by maintaining complete documentation.
Components
- Receipt Capture Widget ui
- Receipt Camera Sheet ui
- Receipt Thumbnail Preview Widget ui
- Receipt Attachment Indicator ui
- Receipt Attachment Service service
- Receipt Threshold Validator service
- Receipt Image Compressor service
- Receipt Storage Repository data
- Claim Receipt Repository data
- Receipt Image Picker Integration infrastructure
- Receipt Storage Adapter data
- Expense Form BLoC service
- Expense Validation Service service