openchair
FeaturesPricingAbout
Sign InStart Free Trial
Help Centre

Payments

  • Subscription & Billing
  • Buying a Gift Card Online
  • Checkout
  • Customer Credits (Store Credit)
  • Deposits

Payments

Cancellation & No-Show Fees

Last updated 19 May 2026

Cancellation & No-Show Fees

When a client cancels late or no-shows, you can charge a fee against their saved card. The fee equals what their deposit would have been based on your active deposit rule. Charging is always operator-initiated — you pick "with fee" or "without fee" when marking the booking.

Where to find it — Web/Mobile: Booking detail → cancellation/no-show fee banner. Triggered when you Cancel or Mark No-Show via the Booking Actions menu.

TL;DR

  • Fee amount = your active deposit rule × booking price (no separate fee field).
  • Operator-initiated only — you choose "with fee" when cancelling or no-showing.
  • Requires customer card on file, consent, active deposit rule, Stripe Connect.
  • Full audit trail; idempotent against duplicate charges.

What the customer must have

Three requirements:

  1. Card on file with status active — see Saved Payment Methods for how a customer adds one.
  2. Consent to off-session charging (consented status).
  3. Card not expired at time of charge.

If any one isn't true, the fee can't be charged. The cancellation or no-show itself still happens — only the fee charge is skipped, with an explanation in the banner.

What your venue must have

  • An active deposit rule — without it, the fee amount can't be calculated. The system refuses with PRECONDITION_FAILED: "No active deposit rule found for this venue".
  • Stripe Connect active on the venue.

The fee amount inherits from your active deposit rule. If your deposit rule is "50% of service price", the no-show/cancellation fee is 50% of the service price. There's no separate "no-show fee" amount or "cancellation fee" amount to configure — the deposit rule is the single source.

How fees are triggered

Late cancellation fee

  1. Open the booking.
  2. Tap Cancel booking.
  3. Choose Cancel with fee (vs Cancel only).
  4. Confirm.
  5. The booking status changes to cancelled, then the fee is charged via the booking detail banner.

No-show fee

  1. Open the booking after it's passed.
  2. Tap Mark as no-show.
  3. Choose Mark with fee (vs Mark only).
  4. Confirm.
  5. The booking status changes to no-show, then the fee is charged.

If you initially Mark without fee, the banner still appears on the cancelled/no-show booking so you can charge later. Choosing "without fee" doesn't lock you out.

The booking detail banner

When a booking is in cancelled or no_show status AND the customer has an eligible card on file AND the deposit rule produces a non-zero fee, a banner appears in the booking detail:

State Visual Shows
Active Muted border + CreditCard icon "Charge late cancellation fee" + "$45 to Visa ····4242" + Charge $45 button
Pending Spinner "Charging Visa ····4242…"
Success Emerald border + CheckCircle2 "Cancellation fee charged · $45 · Visa ····4242 · {date}"
Failed Destructive border + XCircle "Charge failed: card declined" + Retry button

The banner persists on revisits — even after the charge succeeds, the green success record stays so you can see the history.

What about the cancellation notice window?

Two separate settings can interact here:

  • Booking policy cancellationNoticeHours (default 24) — defines what counts as "late" for the customer-facing cancellation flow.
  • Deposit rule cancellationWindowHours — defines deposit refund behaviour.

There's overlap. The fee-charging action is operator-discretion, not auto-triggered by either window — you're always the one who picks "with fee" or "without fee" when cancelling or marking no-show.

If you want to be consistent ("always charge for cancellations less than 24h before"), align your deposit rule's cancellationWindowHours with your booking policy's cancellationNoticeHours and apply your discretion consistently.

Idempotency

The charge uses an idempotency key of {event_type}_{booking_id} — so retrying a failed charge from the banner can't double-charge the customer. The same booking can't have a no-show fee charged twice.

If a charge succeeds and then you accidentally tap the button again, Stripe returns the original successful charge.

Audit trail

Every charge attempt writes to paymentChargeAudit:

  • Attempt type: no_show_fee or late_cancellation_fee
  • Status: pending → succeeded / failed / requires_action
  • Amount, currency, Stripe payment method ID
  • Triggered by (your user ID)
  • Timestamps

Visible in the booking detail history section, labelled "No-show fee" or "Late cancellation fee" as appropriate.

Role gating

Owner-only and Manager-only — Stylists can't charge fees. The mutation is venueOwnerProcedure server-side.

What customers receive

The standard receipt pipeline runs after a successful charge — your customer gets an emailed receipt for the fee just like any other charge. There's no separate "fee charged" template; receipts use the standard branded template.

If the customer disputes

If a customer disputes the fee via their bank:

  1. Card-on-file status flips to Disputed.
  2. Further charging against that card is paused until resolution.
  3. Standard Stripe chargeback flow applies — resolve via Stripe Dashboard.

Disputes won't reverse automatically; you decide whether to accept the chargeback or fight it with evidence.

Refund flow

The fee charge can be refunded the standard way via Stripe Dashboard (or via the receipt's refund link). OpenChair doesn't auto-refund fees; you handle the refund decision case-by-case.

Tier

All plans, requires:

  • Stripe Connect active
  • Active deposit rule
  • Customer card on file

No PRO subscription requirement.

Common mistakes

Problem What to check
Banner doesn't appear after marking cancelled/no-show Confirm the customer has a card on file with active status. Confirm you have an active deposit rule.
"No active deposit rule found" error Go to Settings → Deposits and activate a rule for the venue. Without one, no fee can be calculated.
"Customer has no saved card on file" Send the customer a card-update link before processing the fee. Or accept the cancellation without fee.
Charge failed with "card declined" Card-on-file is active but the bank declined. Try Retry once; if it fails again, the card may need updating.
Customer says they cancelled within the window The fee is operator-discretion — you can choose to refund via Stripe Dashboard if you agree. The banner doesn't enforce the window.
Want to charge a custom fee amount Not supported — fee = deposit rule amount. If your active rule isn't producing the right number, adjust the deposit rule.

FAQ

How is the fee amount calculated?

It equals what the deposit would have been for this booking — based on your active deposit rule applied to the booking price. There's no separate 'no-show fee' amount field. If your deposit rule is 50%, the no-show fee is 50% of the booking price.

Can fees be charged automatically?

Not today — fee charging is always operator-initiated. When you mark a booking as cancelled or no-show, you choose 'with fee' or 'without fee'. The fee is then charged against the customer's saved card via the booking detail banner.

What's required for the fee to go through?

Active deposit rule on the venue, Stripe Connect active, customer has a saved card with status 'active' and consent status 'consented', card not expired. The system pre-flights all of these before attempting the charge.

What if the customer disputes the fee?

Standard Stripe chargeback flow. The card-on-file status flips to 'Disputed' and further charging is paused for that customer until you resolve the dispute via Stripe Dashboard.

Does the customer get notified before the fee is charged?

The system doesn't auto-send a heads-up. If your cancellation/no-show policy is clearly communicated at booking time (deposit agreement, terms acceptance), the customer is technically on notice. Consider sending a personal SMS via the inbox before charging a significant fee as good practice.

Can I charge a different fee for different services?

Not directly — fees inherit your active deposit rule. If your deposit rule is per-service (e.g. different rules for short vs long appointments), the fee follows whichever rule is active when the no-show happens.

Related Articles

  • Saved Payment Methods (Card on File)
  • Walk-Out Checkout
  • Deposits
  • Cancellation & Rescheduling Policy
  • Booking Rules & Policies
openchair

The operating system for high-end service venues. Built in Australia for the world.

Product

  • Features
  • Pricing
  • AI Features
  • Mobile App
  • Online Booking
  • AI Concierge
  • Sign In

Solutions

  • Hair Salons
  • Barbers
  • Beauty
  • Wellness & Spa
  • Nail Salons
  • Tattoo Studios

Compare

  • All comparisons
  • vs Fresha
  • vs Timely
  • vs Square
  • vs Booksy
  • vs Mindbody
  • vs Boulevard
  • vs Phorest
  • vs Mangomint
  • vs GlossGenius
  • vs Vagaro
  • vs Shortcuts
  • vs Acuity

Resources

  • Blog
  • Help Centre
  • Guides
  • Glossary

Company

  • About
  • Contact
  • Book a Demo
  • Founding Members

Legal

  • Privacy
  • Terms
  • Cookie Policy
  • Sub-processors
  • Accessibility
  • Privacy Request

© 2026 OpenChair Platform. All rights reserved.

Made on the Goldie.