Skip to content
Payments

No-show fees: setting your policy + how the agent charges them

How to set your no-show fee, how the saved card flow works (Stripe SetupIntent), and how the agent collects automatically.

Updated May 17, 2026·18 min read

Service businesses lose 8-12% of revenue to no-shows industry-wide. The most effective deterrent isn't shaming or guilt — it's just charging the fee. Most operators never do, because the workflow is painful: track who didn't show, find their card, manually charge it, deal with the angry text. The agent handles all four steps.

How to set your policy (3 minutes)

Settings > Payments > No-show policy. Pick:

  • Grace period: how late before a slot counts as a no-show. Default 15 minutes. Some verticals (med spa, dental) use 10; mobile services use 30.
  • Fee amount: percentage of the service price. Default 100%. Some operators use 50% to feel less harsh.
  • Late cancellation window: cancellations within X hours are treated as no-shows. Default 12 hours. (Lash artists sometimes use 24; HVAC often uses 4.)
  • Repeat policy: after N no-shows, switch the client to 100% upfront deposits for all future bookings. Default 2.

How the saved card flow works (Stripe SetupIntent)

When a client books, they enter their card. Even if no deposit is charged upfront (smart scoring decided $0), the card is saved via Stripe SetupIntent — a Stripe primitive specifically designed for "hold a card for later, charge if needed." The client sees one line in the confirmation: "Card on file: ending in 4242."

The legal + technical: SetupIntent attaches the card to a Customer object in your Stripe account with explicit client consent. You can charge that card later (for the no-show fee) without re-prompting the client. This is the same primitive Uber uses to charge for the ride at the end.

If a client refuses to save a card, the agent will either require an upfront deposit instead (matching the would-be no-show fee) or escalate the booking to you for manual handling. You set this fallback in Settings > Payments.

The auto-charge flow

  1. Client books, card saved.
  2. Slot start time arrives.
  3. Grace period (default 15 min) starts ticking.
  4. Agent sends "Hey, running late? We're still holding your spot" at 5 minutes in.
  5. At grace + 0, agent waits 60 more seconds for a reply.
  6. If no reply: agent charges the no-show fee + sends "Sorry we missed you today. Per our booking policy, we've charged the no-show fee of $X. Happy to rebook anytime."
  7. Slot is auto-posted to your waitlist for a same-day rebook.

If the client replies during the grace window ("running 10 min late"), the agent holds and extends. If they reply after the charge has happened, the agent shows you the conversation so you can decide whether to refund.

Handling angry texts

Most no-show charges don't generate complaints, because the client knows they no-showed. The ones that do are usually clients who think they cancelled but didn't (or cancelled outside the window). The agent surfaces these to you with a Disputed tag, the full conversation, and a one-click Refund button. You decide. Most operators refund first-time disputes and hold the line on second offenses.

Disclosing the policy

The agent surfaces your no-show policy in the booking confirmation — clients see it before they confirm. This is both legally cleaner and reduces disputes. The default phrasing is one short line: "No-shows or late cancels (under 12h) are charged the full service price." Editable in Settings > Voice.

Operators on the Enterprise plan see their no-show rate drop from ~10% to ~1.8% within 60 days of enabling auto-charge no-show fees. The behavioral effect is the same as a restaurant taking a credit card to hold a table — people show up.

Frequently asked

Is auto-charging legally allowed?

Yes, with explicit disclosure at booking time. The agent surfaces the policy before the client confirms, and Stripe SetupIntent captures their explicit consent for off-session charges. Standard practice across hotels, restaurants, and service businesses.

What if the card declines when we try to charge?

The agent retries 3 times over 48 hours (Stripe Smart Retries). If the card still declines, the conversation surfaces to your inbox with a Failed Charge tag. Most operators send a quick text and the client updates their card.

Can I waive the fee for one client without changing my global policy?

Yes — click the conversation and hit Waive fee. The charge reverses immediately and the agent notes it in the client's profile so you don't get asked to do it again next time.

Related in Payments

Didn’t answer your question?

Email contact@deskwise.coand we’ll get back within 4 business hours. Or book a 15-min call.