How to Charge Different Prices for Different Services in Your Booking Form
Your services don’t all cost the same — so your deposits shouldn’t either. Here’s how to set up per-service pricing so each customer pays the right amount automatically.
A flat deposit amount works fine if all your services are the same price. But most businesses aren’t like that. A quick haircut costs £30. A colour, cut, and blow dry costs £110. Charging the same £10 deposit for both doesn’t make sense — one deposit is meaningful, the other is almost symbolic.
The NoShow Deposit Payments plugin solves this with a per-service pricing map. You enter each service and its price once, and from then on the correct deposit is calculated automatically based on what the customer selected in the booking form.
Why Per-Service Pricing Matters
Here’s what happens when deposits are correctly proportional to service value:
- High-value appointments are better protected. A £20 deposit on a £100 service creates much stronger commitment than a £5 flat deposit.
- Customers feel it’s fair. They’re paying a percentage of what they owe, not a random fixed number.
- No manual price lookup. You don’t have to check what a customer booked and calculate their deposit yourself — the plugin does it in real time.
How the Deposit Calculation Works
The calculation is straightforward:
Deposit = Service Price × (Deposit Percentage ÷ 100)
Here’s a practical example with a 20% deposit setting:
| Service | Full Price | Deposit (20%) | Balance Due on Day |
|---|---|---|---|
| Hair Cut | £35 | £7.00 | £28.00 |
| Hair Cut + Blow Dry | £55 | £11.00 | £44.00 |
| Colour + Cut | £90 | £18.00 | £72.00 |
| Full Treatment | £130 | £26.00 | £104.00 |
All of this is automatic. You set the service prices and the deposit percentage once — and the plugin handles the rest every time a customer books.
Step-by-Step Setup
Add a Service Dropdown to Your CF7 Form
In your Contact Form 7 booking form, add a select (dropdown) field where customers choose their service. In the CF7 form editor, use the drop-down menu form tag:
The important part is the field name — in this example it’s service_price. The service option labels in quotes must exactly match the service names you’ll enter in the pricing map.
Set the Service Field Name in Settings
Go to NoShow Payments → Settings → Form Field Mapping. In the Service Field input, enter the CF7 field name you used — in our example, that’s service_price.
This tells the plugin which form field to read when looking up the service price.
Enter Your Service Prices
Scroll to the Service Pricing section. Enter one service per line in this format:
Service Name | Price
The service name must exactly match the CF7 dropdown option. The price is a number only — no currency symbol.
Service Pricing
Hair Cut + Blow Dry | 55
Colour + Cut | 90
Full Treatment | 130
Set Your Deposit Percentage
In Settings → Deposit Settings, enter your deposit percentage (e.g. 20 for 20%). This single percentage applies to all services — the plugin multiplies it by each service’s price to get the deposit amount.
Save and Test
Save your settings and submit a test booking using a Stripe test card (4242 4242 4242 4242). Select different services and verify that the correct deposit amount appears on the Stripe checkout page for each one.
Works Across All Service Industries
Per-service pricing works for any business where different services have different values:
- Haircut | 35
- Colour + Cut | 90
- Extensions | 200
- Bridal Hair | 150
- 30 Min Massage | 40
- 60 Min Massage | 70
- Deep Tissue | 85
- Hot Stone | 95
- Portrait Session | 150
- Family Session | 200
- Newborn Session | 250
- Event Coverage | 500
- 30 Min Call | 75
- Strategy Session | 200
- Full Day Workshop | 800
- Monthly Retainer | 500
What the Customer Sees
When a customer selects a service and submits the booking form, they’re taken to a Stripe checkout page that clearly shows:
- The service they selected
- The deposit amount they’re paying now
- Your business name (from settings)
This transparency is important — no customer should be surprised by a charge they didn’t expect. Seeing the service name and deposit amount upfront builds trust and reduces refund disputes.
Common Questions
What if a service isn’t in the pricing map?
If the plugin can’t find a price match for the selected service, the deposit will fall back to £0 and the customer won’t be charged. That’s why it’s important to keep your CF7 dropdown options and pricing map perfectly in sync. If you add a new service to your form, add it to the pricing map at the same time.
Can I have a minimum deposit amount?
Not as a direct setting, but you can achieve this by setting a higher deposit percentage. If your cheapest service is £20 and you want at least £5 as a deposit, set your percentage to 25% (which gives £5 on £20 and scales up proportionally for higher-priced services).
Can two services have the same price?
Yes — they can have the same price but must have different names. Each line in the pricing map is matched by the service name, not the price value.
Set Up Per-Service Deposits Today
NoShow Deposit Payments handles the pricing, deposit calculation, and Stripe checkout automatically. Free to install — works with your existing CF7 form.
Get the Free Plugin →