What a booking deposit actually holds

A no-show is the one loss you cannot recover. The hour is gone, the person who wanted it booked elsewhere, and there is nothing to sell. A deposit is the standard answer, and everybody understands the idea in one sentence: take some money when they book, and they turn up.

The idea is easy. The plumbing decides whether it works. Here is what happens between the moment someone taps a time and the moment money is actually held, because most of the design decisions in that gap are about the ways a deposit can quietly fail to hold anything.

The deposit belongs to the service, not to the booking

Each service carries its own deposit: a flat amount in your currency, stored to the cent, empty or zero meaning no deposit for that one. A thirty minute trim and a four hour color are not the same risk, and a business that sets one blanket deposit either scares people off the cheap appointment or barely covers the expensive one.

It is a flat amount, not a percentage. A deposit that tracks the price is set per service by hand.

The browser never gets to say what the deposit is

When someone taps the book button on a service that carries a deposit, the page does not know the amount in any way that matters. It sends one thing to the server: the service id. The server reads the deposit off that service's row, and creates the payment for that figure.

This sounds like paranoia until you consider what the alternative permits. If the page sends the amount, then the amount is a number in a form on a stranger's computer, and a $200 deposit becomes a $2 deposit for anyone willing to spend a minute on it. Amounts are resolved server side or they are suggestions.

The card is charged before the appointment exists

The order of operations is deliberate. The payment is confirmed first, and only then does the booking get written.

Doing it the other way around is easier to build and worse to run. If the booking is written first and the payment fails, you have an appointment that looks held and is not, and somebody has to find it. A failed payment that leaves nothing behind is a customer who tries again.

The payment is checked again on the server, to the cent

When the booking request finally arrives carrying a payment reference, the server does not take that reference on trust. It asks the card processor directly, using the secret key that only the server has, and applies two tests: the payment must have actually succeeded, and the amount received must equal the expected deposit exactly, in cents.

The exact match is the part that matters. Without it, a payment for a $10 deposit on a cheap service can be replayed against a $200 one, and the reference looks perfectly valid because it is. Comparing to the cent closes that.

The other half of the defense is what happens when someone simply skips the payment step. Nothing crashes. The booking is accepted, and it lands as an unconfirmed request that you decide on by hand, because a paid deposit is the only thing that promotes a booking to confirmed. Forging your way past the payment gets you the same status as filling in the free form, which is to say, nothing worth the effort.

The deposit is stored as a payment, not as a note on the booking

A paid deposit is written as its own small order, numbered in its own series, marked paid, carrying the processor's payment reference and a note saying what it is and which service it was for. The appointment points at it.

The reason is refunds. Refunding money is a job that already existed for regular sales, and it works by looking up an order and its payment reference. Recording the deposit as an order means the refund path is the tested one rather than a second implementation written for bookings that only runs on the day somebody cancels. It also means the deposit shows up in the same place as the rest of your takings, instead of hiding inside an appointment record.

What it does not do is subtract itself from the final bill automatically. The deposit is a payment the customer has made and can be seen as one; the balance at the end of the job is yours to charge.

Three ways an appointment ends, and who keeps the money

This is the part worth getting straight before you turn deposits on, because it is what you will end up explaining to somebody.

  • You cancel. The deposit is refunded, regardless of timing. You changed the plan, so you do not keep their money.
  • They cancel in time. If the cancellation lands inside your notice period, and automatic refunds are on, the deposit goes back. Both of those are settings, and both ship on.
  • They cancel late, or do not show. The deposit is forfeit. A no-show is recorded as its own outcome rather than as a cancellation, specifically so that it never touches the refund path by accident.

The notice period is a single setting, twenty four hours out of the box, and it is doing two jobs: it is the deadline for a customer cancelling themselves, and it is the line between a refunded deposit and a kept one. When a refund does go through, the order is marked refunded and the appointment is stamped with the time it happened, so there is a record on both sides of a conversation you may have weeks later.

If deposits are not appearing, it is almost always one of three switches

Deposits engage only when all three of these are true: the card processor is connected, payment is set to required, and the service in question has a deposit above zero. Miss any one and the payment step is not shown at all. The form still works and bookings still arrive, they just arrive without money attached and waiting for you to confirm them.

That silence is intentional, because the alternative is a booking form that breaks when a key expires. It does mean the check is on you: book an appointment on your own site, from your phone, and see whether you are asked to pay. Two minutes, and it is the only test that proves the thing is armed.

Setting the amount

Match the deposit to what the empty hour costs you, not to the price of the service. Those are different numbers. A slot you could have sold twice over on a Saturday needs more holding than a Tuesday morning you would not have filled anyway. And the deposit only has to be large enough that skipping the appointment feels like a decision.

If you want the plain version of all this, there is a guide on how to take deposits online, one on appointment reminders, which are the other half of the same job, and a longer look at whether your customers want to book online or call you before you ask any of them for money up front.

Instinctor