How to Set Up NoShow Deposit Payments
Collect booking deposits automatically via Stripe, send branded confirmation emails, and manage all payments from your WordPress dashboard — in under 15 minutes.
What Does This Plugin Do?
NoShow Deposit Payments connects your Contact Form 7 booking form to Stripe so customers pay a deposit at the time of booking. It handles the full cycle — payment, email confirmations, refund requests, and dashboard management.
Stripe Deposits
Charge a percentage of the total as a deposit on booking submission.
CF7 Integration
Works with your existing Contact Form 7 booking form — no rebuilding needed.
Branded Emails
Send confirmation emails to customers with your logo, meeting details, and a cancel link.
Refund Flow
Customers can request a cancellation via a secure link. You process refunds from the dashboard.
Payments Dashboard
See all bookings, statuses, and process refunds in one place.
Per-Service Pricing
Set different prices for different services — the deposit is calculated automatically.
Before You Start — Requirements
- WordPress 5.8 or higher
- Contact Form 7 plugin installed and active
- A Stripe account (free to create at stripe.com)
- Your site must use HTTPS (required by Stripe)
Installation
Install the Plugin
Go to WordPress Admin → Plugins → Add New. Search for “NoShow Deposit Payments”, click Install, then Activate.
Alternatively, download the .zip file and upload it via Plugins → Add New → Upload Plugin.
Find the Plugin Menu
After activation, look for NoShow Payments in your WordPress left sidebar. This is your main hub — it has sub-menus for Payments, Settings, and more.
Step 1 — Connect Your Stripe Account
Get Your Stripe API Keys
Log in to your Stripe Dashboard and navigate to Developers → API Keys.
- Copy your Secret Key — it starts with sk_live_… (or sk_test_… for testing)
Enter Keys in Plugin Settings
Go to NoShow Payments → Settings → Stripe Keys section and paste:
| Field | Where to find it |
|---|---|
| Stripe Secret Key | Stripe Dashboard → Developers → API Keys |
| Webhook Secret | Created in the next step below |
Set Up the Stripe Webhook
The plugin needs a webhook so Stripe can notify it when a payment is confirmed. In your Settings page, you’ll see your Webhook URL — copy it.
In Stripe: go to Developers → Webhooks → Add Endpoint. Paste the URL and select the event checkout.session.completed.
After creating it, copy the Signing Secret and paste it back into the plugin’s Webhook Secret field.
Step 2 — Connect Your Contact Form 7 Booking Form
Select Your Booking Form
In NoShow Payments → Settings → General, find the Select CF7 Form dropdown. Choose the CF7 form you use for bookings.
Map Your Form Fields
Tell the plugin which CF7 field names hold the meeting date/time and service name. These are the name attributes you gave the fields when building your form in CF7.
| Setting | Description | Example value |
|---|---|---|
| Meeting DateTime Field | Single field holding both date and time | meeting_datetime |
| Meeting Date Field | If your form has separate date and time fields — the date field name | meeting_date |
| Meeting Time Field | The time field name (used with the date field above) | meeting_time |
| Service Field | The field where the customer picks their service | service_price |
| Customer Name Field | The field holding the customer’s full name (for emails) | your-name |
Step 3 — Set Deposit Amount & Currency
| Setting | What it does | Default |
|---|---|---|
| Deposit Percentage | What % of the total price is charged as a deposit on booking | 10% |
| Refund Window (hours) | How many hours before the meeting the customer can still cancel and get a refund | 24 hours |
| Currency | The currency used for all payments (GBP, USD, EUR, etc.) | GBP |
Per-Service Pricing
If your services have different prices, you can enter them in the Service Pricing section. Add one service per line in the format:
Service Name | Price
For example:
Hair Cut | 40 Hair Cut + Colour | 80 Full Treatment | 120
The plugin reads the service the customer selected in the form and charges the correct deposit automatically.
Step 4 — Add Your Company Branding
Your company name and logo appear in the confirmation email sent to customers and on the cancellation page.
| Setting | Where it appears |
|---|---|
| Company Name | Email greeting, email footer, cancellation page |
| Company Logo | Top of the confirmation email, cancellation page header |
Step 5 — Configure Email Notifications
The plugin sends two types of emails: one to the customer confirming their booking, and one to you (admin) notifying you of a new deposit.
Customer Email
Customise the subject line and body under Settings → Email Templates → Customer Email. Use these tokens in the body — they are replaced with real values automatically:
Admin Notification Email
Set the email address to notify under Admin Notification Email. You can use the same tokens in the subject and body to include booking details in the notification you receive.
SMTP (Optional but Recommended)
By default, emails are sent using WordPress’s built-in mail function, which can be unreliable. For better deliverability, enable Custom SMTP in the settings and enter your mail provider details (e.g. Gmail, SendGrid, Mailgun).
| Field | Example value |
|---|---|
| SMTP Host | smtp.gmail.com |
| Port | 587 |
| Encryption | TLS |
| Username | Your email address |
| Password | App password (not your login password) |
How the Booking Flow Works
Once set up, here is exactly what happens from your customer’s perspective:
CF7 form
Stripe checkout
via card
email sent
admin alert
The deposit amount is shown to the customer before they pay, along with the service name and total price so there are no surprises.
How the Cancellation & Refund Flow Works
Customers don’t need to call or email you to cancel. The plugin handles it automatically via a secure link in the confirmation email.
{cancel_url} in email
selects reason
in dashboard
admin email
from dashboard
Refund Window Rules
- If the customer cancels before the refund window closes (e.g. more than 24 hours before the meeting), the refund button is available.
- If they cancel inside the window, the button is locked — but the request is still recorded so you can review it and decide.
- Once a refund request is received, the timer is frozen — you can process it at any time from the dashboard at your own pace.
Managing Payments in the Dashboard
Go to NoShow Payments → Payments to see all bookings. Each row shows:
- Customer — name and email
- Service — what they booked
- Meeting date & time
- Deposit amount and total price
- Status — Pending, Paid, Refunded, or Refund Requested
From each row you can:
- Click Process Refund to refund the deposit back to the customer via Stripe
- Click Mark Full Payment Collected once the remaining balance is paid in person
Go Further with NoShow Deposit Payments Pro Pro
The free plugin handles all the essentials. The Pro add-on unlocks additional tools for growing businesses:
Analytics Dashboard Pro
Charts showing revenue, deposit totals, refund rates, and booking trends over time.
Slot Calendar Pro
Define available time slots per day of the week. Customers can only book open slots.
Schedule Overview Pro
A daily view of all upcoming bookings shown inside the Payments dashboard.
Frequently Asked Questions
Do customers pay the full price or just the deposit?
Customers pay only the deposit at booking time via Stripe. You collect the remaining balance yourself (in person, by invoice, etc.) and then mark it as collected in the dashboard.
What happens if Stripe payment fails?
If the customer abandons the Stripe checkout or the payment fails, no booking is recorded. The form submission is not saved until the payment is confirmed via webhook.
Can I use this with multiple CF7 forms?
In the current version, you select one primary CF7 form in settings. The deposit flow is applied to that form only.
Will customers get a receipt from Stripe?
Yes — Stripe automatically sends a payment receipt to the customer’s email when the deposit is charged (you can configure this in your Stripe Dashboard settings).
Is the cancel link safe to include in emails?
Yes. Each link is cryptographically signed and tied to a specific booking. Even if someone else sees the email, they can’t use it to cancel a different booking.