HIGH story-reimbursement-approval-workflow-coordinator-004 3 pts
3
Story Points
High
Priority
Reimbursement Approval Workflow
Feature

User Story

As a Coordinator
I want to reject a reimbursement submission with a mandatory reason comment, triggering a push notification to the submitter explaining the rejection
So that So that the peer mentor understands why their claim was rejected and can correct and resubmit if appropriate, while the organisation retains a compliant record of every rejection decision

Acceptance Criteria

  • Given I tap Reject on a pending submission, when the rejection dialog appears, then a comment field is shown and marked as required — the confirm button is disabled until at least one character is entered
  • Given I complete the mandatory reason and confirm, when the RPC call succeeds, then an immutable rejection record is appended with status 'rejected', my identity, timestamp, and the full comment text
  • Given rejection is confirmed, when the record is written, then the submission is removed from the active pending queue and the submitter receives a push notification containing the rejection reason
  • Given the rejection RPC call fails, when the error is returned, then the submission remains in 'pending_attestation' status and the coordinator is prompted to retry — no partial rejection record is created
  • Given a submission has been rejected, when I view its detail screen, then the rejection record is visible in the audit trail and no further Approve/Reject actions are available

Business Value

Rejections with reasons enable peer mentors to correct genuine errors (e.g., mileage exceeding plausible route, missing receipts) rather than abandoning their claims. Mandatory comments enforce coordinator accountability and provide the audit evidence needed to demonstrate that rejections were justified, protecting the organisation in any grant review.