How to Accept Booking Deposits with CF7 and Stripe

How to Accept Booking Deposits with Contact Form 7 and Stripe

A complete step-by-step guide to setting up automatic deposit collection on your WordPress booking form — no coding needed.

Step-by-Step Guide Contact Form 7 Stripe Payments WordPress

If you use Contact Form 7 for bookings on your WordPress site, you can add automatic Stripe deposit collection without rebuilding your form or writing a single line of code. The NoShow Deposit Payments plugin sits between CF7 and Stripe — when a customer submits your booking form, they’re taken straight to a Stripe payment page to pay the deposit.

This guide walks you through the full setup from start to finish.

What You Need Before You Start

📝
Contact Form 7Already installed and you have a booking form ready
💳
Stripe AccountFree to sign up at stripe.com — takes 5 minutes
🔒
HTTPS on Your SiteStripe requires SSL — most hosts include it free
⚙️
WordPress Admin AccessYou’ll need to install a plugin and update settings

Step-by-Step Setup

1

Install NoShow Deposit Payments

Go to WordPress Admin → Plugins → Add New. Search for NoShow Deposit Payments, click Install Now, then Activate.

After activation, you’ll see a new NoShow Payments menu in your WordPress sidebar.

2

Get Your Stripe Secret Key

Log in to your Stripe Dashboard and go to Developers → API Keys.

Copy your Secret Key. It looks like this:

  • Test mode: sk_test_51ABC…
  • Live mode: sk_live_51ABC…
⚠️
Use test keys first. Start with sk_test_… while you set everything up. Stripe provides test card numbers so you can simulate payments without charging anyone.
3

Enter the Secret Key in Plugin Settings

In WordPress, go to NoShow Payments → Settings. Scroll to the Stripe Keys section and paste your secret key into the Stripe Secret Key field. Save settings.

4

Set Up the Stripe Webhook

The plugin needs a webhook so Stripe can send it a confirmation when a payment is completed. On the settings page, you’ll see a Webhook URL — copy it.

In Stripe: Developers → Webhooks → Add Endpoint. Paste your URL, select the event checkout.session.completed, and save.

Stripe will show you a Signing Secret — copy it and paste it into the Webhook Secret field back in the plugin settings.

💡
Shortcut: The settings page has a “Create Webhook Automatically” button that registers the webhook in Stripe for you in one click.
5

Choose Your CF7 Booking Form

In the Settings page, find the Select CF7 Form dropdown and pick the form you use for bookings. This tells the plugin which form should trigger the deposit payment on submission.

6

Map Your Form Fields

The plugin needs to know which fields in your form hold the meeting date/time, service name, and customer name. In the Form Field Mapping section, enter the field names exactly as they appear in your CF7 form tags.

SettingDescriptionExample
Meeting DateTime FieldSingle field with date and time combinedmeeting_datetime
Meeting Date FieldDate field (if separate from time)meeting_date
Meeting Time FieldTime field (if separate from date)meeting_time
Service FieldThe dropdown/select where customer picks a serviceservice_price
Customer Name FieldThe customer’s name fieldyour-name
💡
Finding field names in CF7: Edit your form in CF7 and look at each field tag. In [select service_price “Hair Cut” “Colour”], the field name is service_price.
7

Set Your Deposit Percentage & Currency

In the Deposit Settings section:

  • Deposit Percentage — what % of the total price to charge upfront (e.g. 20 for 20%)
  • Refund Window — how many hours before the meeting the customer can still cancel for a refund (e.g. 24)
  • Currency — select your currency (GBP, USD, EUR, etc.)
8

Add Your Service Prices

If your services have different prices, enter them in the Service Pricing section — one per line in the format Service Name | Price:

Hair Cut | 35
Hair Cut + Blow Dry | 55
Colour & Cut | 90
Full Treatment | 130

The plugin matches the service the customer selected in the form and calculates the correct deposit automatically.

9

Save Settings and Test

Click Save Settings. Now open your booking form on the front end and submit a test booking. You should be redirected to a Stripe Checkout page.

Use Stripe’s test card number to complete a test payment:

Card number:  4242 4242 4242 4242
Expiry:       Any future date (e.g. 12/26)
CVC:          Any 3 digits

After payment, check your NoShow Payments → Payments dashboard — you should see the test booking recorded there.

Payment recorded? Great. Your setup is working. Switch your Stripe keys to live mode when you’re ready to accept real payments.

What Happens After a Customer Books

Once live, here’s the complete experience from your customer’s point of view:

Fills in
CF7 form
Stripe checkout
shows deposit
Pays by card
Confirmation
email arrives
Booking in
your dashboard

The deposit is credited directly to your Stripe account. You collect the remaining balance yourself on the day and mark it as collected in the dashboard.


Common Setup Questions

My webhook isn’t receiving events — what do I check?

Make sure your site is live and accessible (not under maintenance or behind a login). Also confirm the webhook URL in Stripe exactly matches the one shown in your plugin settings. Check the Stripe Dashboard → Developers → Webhooks → your endpoint → Recent Deliveries tab for error details.

The deposit amount shows as £0 — why?

This usually means the service field name in settings doesn’t match the actual field name in your CF7 form, or the service price isn’t entered in the pricing table. Double-check both match exactly (they’re case-sensitive).

Do I need to change my CF7 form?

No — the plugin works with your existing form. The only thing you might want to add is the service/price dropdown if you don’t have one already, so the plugin can calculate the correct deposit per service.

Install the Plugin and Start Collecting Deposits Today

Free to download. Works with your existing Contact Form 7 form and Stripe account. Setup takes about 15 minutes.

Download Free Plugin →

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top