Payment Failure Categorization: Added logic to classify payment failures as Soft vs. Hard declines and generate contextual customer guidance.
Dynamic Multi-Stage Customer Emails: Customized email subjects, warnings, and retry dates dynamically for Attempt #1, Attempt #2, and Attempt #3 Final Warning.
Actionable Admin Alert Filtering: Filtered admin payment failure alerts to notify only on high-risk events (Attempt 3+ final warnings, final attempts, or hard declines).
Manual Payment Link Email Endpoint: Added backend route and controller action to let administrators manually trigger the payment link email to the customer.
UI Send Email Action: Added "Send Email to Customer" action buttons with loading states in both the subscriber table rows and expanded details section.
Automated Service Job Holds: Implemented automatic transition of upcoming visits to On-Hold status upon recurring payment failure.
Automatic Visit Restoration & Reschedule Flagging: Implemented automatic visit un-holding upon successful payment recovery, marking past missed dates as needing rescheduling.
Needs Reschedule Jobs Ticker: Built a dedicated ticker component to display on-hold and missed service visits requiring dispatcher rescheduling.
Settlements & Past Due Ticker Integration: Updated the top settlement ticker to surface past-due payment failure alerts alongside pending settlement reconciliations.
Automated Stripe Settlement Card Reversals: Added direct Stripe charge refund automation to credit overpaid customers directly to their original payment card.
Unified Settlement Refund Modal: Created a reusable settlement refund modal supporting both manual recording and automated Stripe refunds.