How to Handle Booking Cancellations and Refund Requests Automatically
Stop managing cancellations by email and phone. Here’s how to give customers a self-service cancel flow while keeping you in full control of every refund decision.
Every service business has to deal with cancellations. The question isn’t whether they’ll happen — it’s how much of your time and energy they consume when they do. Without a system, a single cancellation can mean a back-and-forth of emails, a manual Stripe refund, and an update to your calendar. Multiplied by every cancellation in a month, that’s a significant admin burden.
The NoShow Deposit Payments plugin handles the full cancellation and refund flow automatically — from the customer’s cancel request through to the refund in their bank account — while keeping you in control of when and whether a refund is issued.
The Problem with Manual Cancellation Handling
Here’s what typically happens without a system:
- Customer emails to say they need to cancel
- You reply to confirm the cancellation and explain your refund policy
- Customer asks for a refund
- You check whether they’re within the cancellation window
- You log into Stripe and issue the refund manually
- You update your schedule
- You send a confirmation that the refund has been processed
Seven steps, multiple logins, and several messages — for a transaction that should take 30 seconds. And that’s assuming the customer actually emails. Many just don’t show up.
How the Automatic Cancellation Flow Works
When you use NoShow Deposit Payments, every booking confirmation email contains a secure cancel link. The entire cancellation flow is handled from there.
The link is unique to their booking and signed — it can only be used for that specific appointment.
They see a summary of what they booked, your cancellation policy, and a reason dropdown before confirming.
The booking is flagged as Refund Requested in your dashboard, with their reason recorded.
The notification includes the customer’s name, service, date, and their cancellation reason.
One click in the Payments dashboard triggers the Stripe refund. No need to log into Stripe separately.
Setting Your Refund Window
The refund window is the number of hours before the appointment within which a customer can cancel and receive a refund. Set it in NoShow Payments → Settings → Deposit Settings → Refund Window.
For example, if you set it to 24 hours:
✅ Refund available
- Customer cancels more than 24 hours before the appointment
- Refund button is active in your dashboard
- You can process it in one click
🔒 Refund window closed
- Customer cancels within 24 hours of the appointment
- Refund button is locked — deposit is yours to keep
- Request is still recorded; you can override manually if you choose
What Customers See on the Cancellation Page
When a customer clicks their cancel link, they land on a clean cancellation page that shows:
- Their appointment details (service, date, time)
- Your cancellation policy (derived from your refund window setting)
- A reason dropdown — they select why they’re cancelling
- A confirmation button to submit the request
After submitting, they see a confirmation screen so they know the request was received. No guessing, no chasing, no confusion.
How Refund Requests Appear in Your Dashboard
In NoShow Payments → Payments, refund-requested rows are highlighted in amber so you can spot them immediately. Here’s what the dashboard looks like:
A counter at the top of the dashboard shows the total number of pending refund requests so you can see at a glance if there’s anything that needs attention.
Processing a Refund — Step by Step
- Go to NoShow Payments → Payments
- Find the amber-highlighted row with status Refund Req.
- Click Process Refund
- Confirm in the popup — the refund is sent to Stripe immediately
- The row status updates to Refunded
The refund is processed directly via your Stripe account — you don’t need to open Stripe separately. The deposit is returned to the customer’s original payment method, typically within 5–10 business days depending on their bank.
What Happens When the Refund Window Is Closed?
If a customer submits a cancellation request within the refund window (e.g. less than 24 hours before the appointment), the Process Refund button is locked. The request is still recorded in the dashboard — you can see it, see the reason, and make a judgement call.
If you decide to refund despite the window being closed (e.g. for a returning customer or a genuine emergency), you can process the refund directly from your Stripe dashboard as a manual override.
Configuring the Cancel Link in Your Email
The cancel link is included in your customer confirmation email using the {cancel_url} token. Make sure it’s in your email template as a proper link:
<a href="{cancel_url}" style="color:#0f3460">Click here to cancel or reschedule your appointment</a>
Or as a button:
<a href="{cancel_url}" style="background:#c0392b;color:#fff;padding:10px 22px;border-radius:6px;text-decoration:none;font-weight:600">Cancel Booking</a>
Automate Your Cancellation Flow Today
NoShow Deposit Payments handles the entire refund and cancellation lifecycle — for free. No more back-and-forth emails or manual Stripe refunds.
Get the Free Plugin →