Attach Receipt Image to Expense Item
Users can open the receipt upload screen from within the expense detail view and attach one or more receipt images to the parent expense item. The screen displays a thumbnail grid of all currently attached receipts and provides action buttons to add more images. The upload is handled in the background by the receipt processing service, which compresses the image, uploads it to Supabase Storage, and stores the resulting path and thumbnail URL in the receipts table linked to the expense item. Both peer mentors submitting their own expenses and coordinators performing proxy registration on behalf of mentors need this capability.
User Story
Acceptance Criteria
- Given an expense item is open for editing, when the user taps the attach receipt action, then the Receipt Upload Screen opens and displays any previously attached receipt thumbnails
- Given the Receipt Upload Screen is open, when a new image is successfully uploaded, then it appears as a thumbnail in the grid with a confirmation indicator
- Given an image is uploading, when the upload completes, then the thumbnail transitions from a pending state to a confirmed state without requiring user interaction
- Given a receipt has been attached, when the user returns to the expense detail view, then the expense item reflects the attached receipt count
- Given the Receipt Upload Screen is open, when no receipt is yet attached, then the screen clearly indicates the user can add images via camera or gallery
Business Value
Receipt attachment is a mandatory compliance requirement for organisational auditing and Bufdir grant reporting. Without digital receipts, peer mentors submit paper receipts that are lost or arrive late, causing reimbursement delays and audit failures. Linking receipts at the point of expense registration eliminates follow-up effort for coordinators and accountants, and provides the documentation trail required for automated accounting system sync with Xledger and Dynamics.
Components
- Receipt Upload Screen ui
- Receipt Processing Service service
- Receipt Storage Repository data
- Image Storage Backend infrastructure