Deposits and card-on-file - the salon owner's playbook
Guide · 7 min read

Deposits and card-on-file - the salon owner's playbook

When to take a deposit, when card-on-file is enough, how much to charge, and how to write a policy Stripe will actually back you on. A practical guide for barbers, hair salons, beauty salons, and nail techs.

R
Rexabook
Post 4 of 6

A deposit is a $6.50-$25 hurdle that turns a casual “I might come in Friday” into a real booking. Card-on-file is the same hurdle minus the upfront charge - the client commits a card, you only debit it if they break the policy. They’re the same idea in different forms, and most salons should be using one of them.

This guide is the practical playbook: when each works, how much to ask for, who to exempt, and the legal posture that keeps you out of chargeback hell.

What problem each one actually solves

A deposit and a card-on-file solve different parts of the same problem.

  • Deposit ($6.50-$25 charged at booking). Filters speculative bookings before they take the slot. Funds the cancellation penalty if it ever needs to be applied. The cost is friction at booking - some clients drop off rather than enter a card.
  • Card-on-file (card captured, not charged). Keeps the booking page frictionless. Catches the no-shows after the fact. The cost is that you’ll never debit a card for a client who knows their bank will reverse it.

If your problem is too many no-shows from existing regulars, card-on-file is enough. If your problem is speculative bookings that block slots, you need a deposit.

The honest answer for most salons is: card-on-file by default, deposit for new clients only.

How much to charge

Don’t overthink this. Three numbers cover 95% of the market:

  • $6.50 flat for any service under $38. Low enough that nobody balks, high enough to filter the speculative bookings.
  • 20% of service price for services $38-$125. Standard rate across the industry. A $75 haircut takes a $15 deposit.
  • 30% of service price for services over $125 or with high prep cost (color, lash extensions, large nail sets). Higher commitment, deeper pre-booking, more recoverable revenue if canceled late.

Round to the nearest $6.50 in the client’s favor - an awkward figure reads as a trap, a clean number reads as a number. Friction matters more than the rounding.

Who to exempt

Always charge a deposit for:

  • New clients (first ever booking)
  • High-value services (over $100)
  • Friday/Saturday peak slots
  • Group bookings (multiple services or multiple people)

Skip the deposit for:

  • Regulars with 5+ completed bookings and no cancellation history
  • Sub-$31 services with low slot cost (a quick beard trim)
  • Walk-ins or same-day bookings (the friction filters them already)

The Rexabook approach is opt-out for trusted clients: deposit on by default, owner can tag a client “trusted” and the deposit step is skipped for them. Bias toward charging.

Card-on-file - the lower-friction option

Card-on-file means the client enters a card at booking but you don’t take a payment. The card is tokenized and held; you charge it only if the cancellation policy is triggered (late-cancel fee, no-show fee).

This is the better default for most salons because:

  1. Booking conversion stays high. A “card required” line at checkout is much smaller friction than ”$15 will be charged now.”
  2. You still have a financial consequence. A client who knows you can charge the card behaves differently from a client who knows you can’t.
  3. It works for existing clients too. You can ask all repeat clients to add a card the next time they book - one-off prompt, then they’re covered for every booking after.

The trade-off: card-on-file is reactive, not preventive. It doesn’t filter speculative bookings the way a deposit does. If you have a problem with people booking three slots “to see how it goes,” card-on-file alone won’t fix that.

Rexabook’s card-on-file is part of the base. Stripe Connect is required (free to enable). Once configured, every booking form captures a card; the cancellation policy at booking time tells the client exactly when it’ll be charged.

Here is where most salons get this wrong: they take a deposit or charge a no-show fee with no written, agreed policy. The client disputes the charge. Stripe asks for evidence. The salon has nothing. Stripe refunds. Salon loses the money and the $19 dispute fee.

Three things keep you safe:

  1. Written policy displayed at booking. Plain English, 4-6 sentences. Specifies the cancellation window, the fee, and the no-show consequence. Required to be ticked-to-agree before the booking confirms - this is the consent record.
  2. Email confirmation that quotes the policy. Goes to the client’s inbox at booking time. This is your evidence if a dispute lands later.
  3. Reminder messages that reference the policy. “Your appointment is tomorrow at 2:30pm - you can cancel free up to 12h before, late-cancel fee applies after.” Removes the “but I never agreed” defense.

If you do all three and a client still disputes, Stripe will side with you 90%+ of the time. If you do none of them, you’ll lose 90%+ of disputes. The policy itself does the work; charging without one is the actual risk.

Sample policy text

This is the text in use across thousands of U.S. salons. Copy, paste, adjust the figures, done:

Cancellation policy. If you need to change or cancel your appointment, please give us at least 12 hours’ notice - you can do this from your booking confirmation email or by replying to any reminder. Cancellations inside the 12-hour window will be charged a $25 late-cancel fee. No-shows will be charged the full appointment cost. Your card details are held securely by our payment processor and only charged if this policy is triggered.

That’s it. Six sentences. U.S. English, plain, no legal hedging. Tick-to-agree at booking, quoted in the confirmation email. The simplest possible thing that works.

What goes wrong

The three failure modes I see most often:

  • Policy too aggressive. Charging for every cancellation regardless of timing, or charging more than the booking value. Clients churn, leave one-star reviews, and the lost lifetime value swamps the recovered fees. The 12-hour cutoff exists because that’s roughly when the slot becomes unrecoverable - charging outside it punishes legitimate behavior.

  • No deposit refund path. A client cancels at 23h (outside the policy window) and asks for their deposit back. The salon’s payments stack can’t refund a partial Stripe payment without an owner manually doing it from the Stripe dashboard. Half the time it gets forgotten. The client posts a review. Solution: refund is one tap from the booking detail page - never make the client follow up.

  • Different policy on different services. “Hair services £20 cancel fee, beauty services 50% fee, lashes full prepayment” - too many rules, nobody reads them, the inconsistency itself feels like a trap. Pick one policy, apply it universally, exempt by service category only if you genuinely need to.

The setup, end to end

Rexabook’s deposit and card-on-file are in the base subscription. No add-ons. The flow:

  1. Enable Rexabook Payments. Payments → Connect Stripe. Five minutes including the Stripe onboarding. Free to enable. Card-on-file lights up automatically once Connect is live.
  2. Set the policy text. Payments → No-show protection. Paste the template above, adjust the figures. This is also where you set the cancellation window and the grace period.
  3. Set the deposit per service. Service editor → Deposit. Pick a flat amount or a percentage of the service price - or leave it off, and the service runs on card-on-file only. New services start with a small default deposit turned on; adjust or clear it to taste.
  4. Use the guidance above as a rule of thumb. Card-on-file across the board, no deposit for services under $38, 20% deposit for services over that, 30% for high-prep or high-value work. The product doesn’t enforce this - you do.
  5. Mark trusted clients exempt. Clients → tag → Trusted. Deposit step is skipped for them and the no-show auto-charge is waived automatically.

The booking page now collects card details for every booking. The confirmation email quotes the policy. The reminders quote the policy. If a no-show happens, the no-show charge fires automatically after a short grace period (2 hours by default, in case the client is just running late).

What we’d measure

Track these monthly to know whether the policy is doing its job:

  • No-show rate, before and after introducing card-on-file. Target: a 60-70% reduction within 90 days.
  • Booking abandonment at the payment step. Target: under 8%. If higher, the deposit is too aggressive for the service price.
  • Disputed charges per 100 paid fees. Target: under 2%. If higher, your policy text or evidence trail is weak - fix the policy, not the enforcement.
  • Late-cancel fees collected vs forgiven. Some legitimate emergencies will arrive; forgiving 20-30% of fees is fine and good for retention. Forgiving 80%+ means the policy isn’t really in place.

The honest summary

A deposit is the better preventive lever; card-on-file is the better default. Most salons should start with card-on-file across the board, then add a 20% deposit for new clients once they’re sure the booking page converts. The policy text is what makes either of them survive a Stripe dispute - written, agreed, quoted in the emails.

The whole setup is 15 minutes. The first no-show charge it prevents pays for the month.

Stop eating the cost of no-shows

Rexabook's base includes card-on-file, deposits, written cancellation policies, and automatic no-show charging. 7-day free trial. No card required.

Start free trial

No card required. Set up in under 4 minutes.

Get started with Rexabook, free

Set up in 4 minutes. Every feature, free to start. No card required.

Get started free

No card required. Set up in under 4 minutes.