A saved card can fail for a handful of boring reasons — it expired, the bank was upgrading it, the account was empty that day, or the client needed to re-authenticate (3DS). MassageHub handles all of these the same way: we email the client a secure link to update their card, and we retry the charge on a schedule. You don't have to chase anyone.
What actually happens
When an off-session charge declines — a late-cancel fee, a no-show fee, an appointment balance at approval time, a package purchase, or a membership renewal — three things happen automatically:
- The client gets a warm, non-accusatory email with a single button: Update your card. The page is hosted; card details go straight to Stripe and are never stored by MassageHub.
- A row is opened in Settings → Payments → Outstanding charges, and a little amber card appears on your main dashboard while there's anything pending.
- Once the client updates their card, the retry fires within 15 minutes. If it works, you get a confirmation email and the original charge goes through as if nothing happened.
The retry schedule
After the client updates their card, we try again:
- T+0 — within 15 minutes of the card update.
- +24h if the first retry also declines.
- +72h for the final attempt.
- If all three fail, we stop automatically and send one last "we've stopped trying" email to the client.
If the client never updates their card, reminders go out at 24h and 72h after the original email. After 7 days of no action the charge is closed automatically.
Your options in the outstanding-charges dashboard
- Resend email — re-sends the card-update email with the same link. Use this if the client says they didn't get it.
- Mark as paid (cash) — if the client paid you outside the app. The row closes as resolved.
- Mark abandoned — stops retries immediately and kills the client's update-card link. The client gets a final email explaining that no more attempts will be made. Use this if you've decided to let it go or want to handle it yourself.
What's covered
Every charge MassageHub makes when the client isn't actively on the screen:
- Late cancellation and no-show fees (from your cancellation policy)
- Appointment balances charged at approval time
- Appointment balances charged from the calendar (manual "Charge card")
- Package purchases you send to a client's saved card
- Monthly membership renewals (Stripe subscriptions)
Not covered: charges where the client is actively on the checkout page (e.g. they click "Top up" from their portal) — there they see a retry button in place.