Asking a client to pay 100% upfront before you deliver a single hour of work is a hard sell. Most clients push back, and some walk away entirely. But handing over your calendar slot with zero financial commitment from the client is how you end up with a full week of no-shows and no income. Deposits solve both problems. They protect your time without scaring away reasonable clients.
This guide covers how to set up deposit payments on your WordPress or WooCommerce site, which deposit structures work for which industries, how the underlying payment technology works, and what your refund and follow-up policies should look like so you stay protected legally and operationally. If you are still evaluating which booking plugin to use, see our comparison of WooCommerce appointment booking plugins before configuring deposits.
Why Deposits Reduce No-Shows and Protect Service Providers
A no-show costs more than the missed revenue from a single appointment. You lose the slot, you lose the opportunity to book someone else, and you often still have preparation costs locked in. Research from the healthcare industry, where appointment no-show rates run between 5% and 30% depending on the specialty, consistently shows that even a small financial commitment drops the no-show rate significantly.
The psychology is straightforward: when someone pays even $50 toward a $500 session, they have a reason to show up or to reschedule rather than simply disappear. The deposit acts as a commitment device. It converts a casual interest into a real booking.
For service providers, deposits serve several practical purposes:
- They cover your preparation costs. A wedding photographer who spends three hours scouting a venue before the engagement session has real costs that exist whether or not the client shows up. A deposit ensures those costs are covered.
- They filter out unserious inquiries. Clients who balk at a 25% deposit are often the same ones who will change requirements mid-project, dispute invoices, or disappear at payment time. The deposit acts as a natural filter for client quality.
- They improve cash flow. Receiving 30% of a project fee at kickoff and 30% at the midpoint means you are not waiting 90 days for your full payment. This matters especially for freelancers and small agencies managing monthly overhead.
- They create a paper trail. A deposit transaction, combined with a clear service agreement, establishes a binding record that the client accepted your terms and committed to the engagement.
Deposits also shift the power dynamic in a healthy direction. When a client has skin in the game, they take meeting times seriously, respond to revision requests promptly, and treat the engagement as a real business relationship rather than a casual experiment.
Common Deposit Structures: 25%, 33%, and 50% Upfront
There is no single correct deposit percentage. The right number depends on your industry, your project timeline, your client base, and how much exposure you carry if the project falls through. Here is how the most common structures work in practice.
25% Deposit: Lower-Risk, Longer-Term Projects
A 25% deposit works well for large contracts where the total value is high and the client relationship is established. General contractors and construction companies typically use this structure. A $40,000 kitchen renovation might collect $10,000 at contract signing, with milestone payments tied to completion of framing, rough-in work, and finishing. The lower initial percentage respects the size of the financial commitment while still creating a binding start to the project.
Home service businesses, commercial cleaning contracts, and landscaping companies with seasonal agreements also tend to work in the 25% range. The logic is that the client needs to see early results before committing more money, and the service provider has ongoing leverage through continued access to the property or equipment. For a concrete example of how cleaning businesses set this up end-to-end, see our guide on selling cleaning services online with booking and payment built in.
33% Deposit: The Freelancer Standard
Web designers, graphic designers, copywriters, and software developers have largely converged on a one-third deposit structure: 33% at kickoff, 33% at a mid-project milestone, and 33% at delivery. This distributes financial risk evenly across the project lifecycle. No single payment is so large that it creates friction, and no party carries all the exposure.
For a $6,000 website redesign, that means $2,000 due before any work begins, $2,000 due when the design mockups are approved, and $2,000 due before the site goes live. Each payment is tied to a clear deliverable, which gives the client natural checkpoints to raise concerns before the project reaches completion.
The three-payment structure also benefits the service provider because it keeps the client engaged throughout the project. A client who has paid twice already has strong motivation to see the project through rather than abandon it and lose their investment.
50% Deposit: Event Services and Creative Work
Photographers, videographers, event planners, and musicians typically require a 50% deposit to hold a date. The reason is specific: a booking blocks out a date that cannot be given to another client. If a couple books a photographer for a June wedding and cancels in February, the photographer has likely turned down other June inquiries. The 50% deposit compensates for that opportunity cost.
Wedding photographers commonly require 50% at booking, with the balance due 30 days before the event. Videographers, photo booth rental companies, and live musicians follow a similar pattern. Hair and makeup artists for events often require 50% as well, since event dates are their entire capacity constraint.
100% Upfront: Consultants and Digital Products
Strategy consultants, business coaches, and course creators often charge 100% upfront, especially for defined-scope engagements. A three-hour strategy session priced at $1,500 has a clear, finite deliverable. Charging in full at booking eliminates billing complexity, reduces late payment risk, and frames the engagement as a product rather than an open-ended service relationship.
High-end consultants who charge $5,000 or more per day often find that requesting full prepayment actually increases perceived value. Clients who pay $15,000 for a two-day intensive show up prepared, take notes, and implement the advice because they have made a significant financial commitment. For the full playbook on packaging and pricing these engagements, see our guide on selling high-priced services online.
How Stripe Partial Capture Works Technically
If you plan to take a deposit and charge the remaining balance later, understanding how Stripe handles partial payments will save you from technical problems and unexpected charges on your clients’ cards.
Payment Intents with Manual Capture
When you create a PaymentIntent in Stripe with capture_method: "manual", Stripe authorizes the full amount on the customer’s card without immediately charging it. You then capture a partial amount later using the amount_to_capture parameter in your capture API call. This is how hotel and car rental businesses handle holds: they authorize $500 but only capture $200 when the service concludes.
For service deposits, the flow works like this: the client enters their card details and authorizes the total service amount. You capture only the deposit portion immediately. Later, when the final balance is due, you create a separate PaymentIntent for the remaining amount. Note that authorization holds expire after 7 days for most card types (Stripe can extend this to up to 31 days for qualifying businesses). For projects spanning several weeks or months, capturing the deposit immediately and billing the balance separately via a saved payment method or new invoice is more reliable than holding an authorization.
Stripe Setup Intents for Saving Payment Methods
A cleaner approach for multi-payment service workflows is to use Stripe Setup Intents. When a client books and pays their deposit, you simultaneously save their payment method for future charges using setup_future_usage: "off_session" on the PaymentIntent. This lets you charge the stored card for the balance payment without the client needing to re-enter their card details.
This approach powers most WooCommerce Subscriptions and WooCommerce Deposits integrations. The deposit is charged at checkout, and the saved payment method handles the automatic balance charge when triggered by a milestone or scheduled date.
WP Sell Services Deposit Mode: A Practical Setup Guide
WP Sell Services is a dedicated WordPress plugin for selling service packages. It handles booking, payment, client communication, and project tracking in a single plugin. Its deposit feature is designed for service-based businesses that want to collect a partial payment at booking and a balance payment at delivery or project completion.
Enabling Deposits in WP Sell Services
Once the plugin is installed and activated, go to WP Sell Services > Settings > Payments. You will see a Deposit Mode toggle. Enable it, then set your deposit percentage. The plugin accepts any percentage between 1 and 99. Set it to 50 for a standard event services deposit or 33 for a freelance project split.
Next, configure the payment gateway. WP Sell Services integrates with Stripe and PayPal. For the deposit workflow, Stripe is recommended because it allows you to charge the saved payment method for the balance without the client having to return to the checkout page. Enter your Stripe API keys under WP Sell Services > Settings > Gateways.
Setting the Deposit Percentage Per Service
WP Sell Services lets you set a global deposit percentage that applies to all services by default, and override it at the individual service level. To set a per-service deposit, open the service in the editor and look for the Pricing metabox. Check Use custom deposit and enter the percentage specific to that service.
This flexibility matters if you offer services at different price points and risk levels. Your $200 consultation might be fully prepaid, while your $5,000 website package uses a 33% deposit structure.
Triggering the Final Invoice
When the work is complete, go to the project in WP Sell Services > Projects, find the relevant booking, and click Send Final Invoice. This sends an automated email to the client with a link to pay the remaining balance. The balance amount is calculated automatically from the original service price minus the deposit already collected.
If the client saved their payment method at booking (Stripe handles this automatically when configured), you also have the option to charge the balance directly from the project screen without requiring the client to take any action. This works well for clients who prefer a hands-off billing experience.
WP Sell Services is purpose-built for service businesses that need a complete booking and payment workflow. Start your deposit setup at woosellservices.com.
WooCommerce Deposits Plugin by Webtomizer: Setup Walkthrough
For WooCommerce store owners who already have a product catalog and want to add deposit functionality without switching to a dedicated service plugin, the WooCommerce Deposits plugin by Webtomizer (available on CodeCanyon) is a feature-complete option that fits directly into your existing WooCommerce setup.
Installation and Initial Configuration
After purchasing and downloading the plugin, upload it through WordPress > Plugins > Add New > Upload Plugin. Once activated, go to WooCommerce > Settings > Deposits. Here you set the global behavior: whether deposits are optional (the customer can choose to pay in full or pay a deposit) or required (all customers must pay the deposit at checkout).
For most service businesses, setting deposits as required prevents customers from selecting full payment at checkout and then disputing charges or requesting refunds after the service is delivered. If you want to offer both options, the optional mode displays a toggle at checkout letting the customer decide.
Configuring Deposit Amounts at the Product Level
In each WooCommerce product or service editor, scroll down to the Product Data section and click the Deposits tab. You can set the deposit type as either a fixed amount (for example, a flat $100 booking fee) or a percentage (for example, 50% of the total price). You also set the payment schedule: when the balance is due. Options typically include immediately, on a specific date, or a set number of days after the order.
Variable products support deposit settings at the variation level, which means a photography package that includes prints can have a different deposit amount than the digital-only version of the same package.
Payment Scheduling and Automatic Balance Charges
When a customer pays a deposit, WooCommerce Deposits creates a payment plan for the order. The plugin tracks the outstanding balance and can automatically charge the saved payment method on the scheduled date using WooCommerce Payments or Stripe. It also generates a separate invoice for the balance, which the customer can pay manually if automatic charging is not configured.
The payment schedule integrates with WooCommerce’s email system. Customers receive automated reminder emails before each payment is due, and you receive notifications when payments are made or when a scheduled charge fails.
The Deposit and Final Invoice Flow: Automating Balance Reminders
A deposit workflow that requires manual follow-up for every balance payment will create more administrative work than it saves in no-show protection. Automation is what makes deposits scale without adding overhead to your day.
The recommended flow for any WordPress deposit system is:
- Customer pays deposit at checkout. The order status in WooCommerce moves to a custom “deposit paid” status, which both WP Sell Services and WooCommerce Deposits handle automatically.
- Confirmation email is sent immediately. This email should include the deposit amount received, the balance due, the payment due date, and a direct link to pay the balance.
- Reminder email is sent 7 days before the balance due date. Keep this email practical. State the amount due, the due date, and provide the payment link. Customers do not need an explanation of why they owe the balance.
- Second reminder is sent 48 hours before the due date. This is the last automated prompt before the due date arrives.
- Automatic charge is attempted on the due date if the customer’s payment method was saved at checkout.
- Failed payment notification is sent if the charge fails. This should include a direct link to update the payment method and a clear deadline by which the balance must be paid to maintain the booking.
You can build this email sequence in WooCommerce using a combination of the built-in order email triggers and a plugin like AutomateWoo or FluentCRM. WP Sell Services handles the sequence within its own email settings panel. The key is to set it up once and let it run without manual intervention for each booking.
Refund Policies: Non-Refundable vs. Refundable Within X Days
Your refund policy on deposits needs to be explicit, visible before checkout, and documented in the order confirmation email. Ambiguous refund policies are the single biggest source of payment disputes for service-based businesses.
Non-Refundable Deposits
A non-refundable deposit is standard for date-specific services like event photography, venue rentals, and catering. The rationale is specific: holding a date prevents you from accepting other clients, so cancellation after booking causes a real financial loss regardless of when it happens.
If you use non-refundable deposits, your checkout page, service description, and confirmation email must all state this explicitly. Something like: “The 50% deposit paid at booking is non-refundable. It secures your booking date and covers costs incurred regardless of cancellation.” This language, repeated in multiple places, significantly reduces the success rate of payment disputes through Stripe or PayPal.
Refundable Within a Window
Many service providers prefer a tiered cancellation policy: full refund of the deposit if cancelled more than 30 days out, 50% refund if cancelled between 14 and 30 days out, no refund within 14 days. This approach acknowledges that early cancellations cause less harm than last-minute ones and tends to result in fewer disputes because clients feel the policy is fair.
In WooCommerce Deposits, you can manage refund rules through the order management screen. WP Sell Services lets you configure refund eligibility in the project settings. For both platforms, the actual refund is processed through your payment gateway, and WooCommerce logs the refund in the order history.
What to Include in Your Deposit Receipt
Every deposit receipt sent to a client should include the following:
- The service name and booking date or project period
- The deposit amount paid and the date of payment
- The balance amount remaining
- The date by which the balance is due
- Your cancellation and refund policy, stated plainly
- A link to your full terms of service
Both WP Sell Services and WooCommerce Deposits generate these receipts automatically. Review the default email templates and customize them to include all of the above items before you go live with deposits.
Real Use Cases by Industry
Different industries have evolved different deposit norms based on their specific risk profiles and client expectations. Here is how the most common service verticals handle deposits in practice.
Photographers: 50% Deposit, Balance 30 Days Before the Event
Wedding photographers book dates 12 to 18 months in advance. A booking that falls through six months before the wedding represents a year of lost planning and turned-away clients. The 50% deposit standard in this industry reflects that reality. Most photographers using WordPress have a booking form connected to a payment gateway that collects the deposit immediately when the contract is signed digitally.
For portrait sessions and commercial shoots, a smaller deposit in the 25% to 33% range is more common, since those sessions can often be rescheduled without the same calendar impact as a wedding date.
Web Designers: 33% at Kickoff, 33% at Approval, 33% at Launch
Web designers deal with scope changes, revision loops, and the occasional client who disappears after seeing the first mockup. The three-payment structure aligns payments with project phases: the kickoff payment confirms commitment, the mid-project payment signals approval of the design direction, and the final payment releases the completed site. No payment, no delivery at each stage.
Designers using WooCommerce to sell packages often set up three separate products or a payment plan to represent each milestone, though dedicated service plugins like WP Sell Services handle this more cleanly with built-in milestone tracking.
Contractors: 25% to 30% at Contract Signing
General contractors, plumbers, electricians, and HVAC companies typically require 25% to 30% at contract signing, with the balance split across milestone completions. This structure is common enough that clients in the home services industry expect it. A contractor who asks for 50% upfront will often face pushback, while 25% is accepted as standard practice across most markets.
Home service businesses that have moved to online booking with WordPress often use WooCommerce Deposits or a bookings plugin with deposit support to collect the initial payment digitally, then issue milestone invoices via email for subsequent payments.
Consultants: 100% Upfront for Defined Engagements
Business strategy consultants, financial advisors, career coaches, and marketing consultants who offer defined-scope sessions typically charge in full at booking. The logic is the same as buying a course: the session has a fixed length, a fixed agenda, and a fixed price. Treating it as a product that is paid in full at purchase removes billing friction and sets a clear professional tone from day one.
For ongoing retainer relationships, consultants often switch to a monthly invoice model, but the initial engagement is almost always paid in full before the first session begins.
What Happens When the Client Does Not Pay the Balance
Even with automated reminders, some clients will not pay the balance on time. Having a clear policy and a systematic response process prevents this from becoming an ongoing negotiation that drains your time.
Automated Follow-Up After a Missed Payment
When a scheduled balance payment fails or is not made by the due date, your system should trigger an immediate automated notification to the client. This notification should state:
- That the payment was not received
- The exact amount due
- A new deadline, typically 48 to 72 hours from the notification
- What happens if the deadline is missed, such as service suspension or booking cancellation
Do not soften this email with excessive apologetic language. A plain, factual notice with a clear deadline gets a faster response than a diplomatic message that buries the deadline in polite phrasing.
Service Suspension
If the balance remains unpaid after the follow-up deadline, pause delivery of the service. For ongoing projects, this means halting work until payment is received. For event-based services, it means the booking is considered unconfirmed and the date may be released to other clients.
WP Sell Services lets you set the project status to “On Hold” from the project management screen, which triggers an automated notification to the client. This creates a documented record that you communicated the pause and the reason for it.
When to Issue a Formal Demand
If the client has not responded to three automated notifications and a direct personal email or phone call within 10 business days of the missed payment, issue a formal payment demand via email with a read receipt. This email should reference the original agreement, the deposit paid, and the outstanding amount. At this point, the full order history in WooCommerce or WP Sell Services serves as your documentation trail for any small claims action or collection agency referral.
Making Deposit Agreements Legally Binding
A deposit payment alone does not constitute a complete legal agreement. To make your deposit arrangement binding, you need the supporting documentation in place before the client pays.
What Makes a Deposit Agreement Enforceable
In most jurisdictions, a binding contract requires offer, acceptance, consideration, and mutual intent. A deposit payment typically satisfies the consideration requirement, but you also need evidence that the client accepted your terms before paying. This is why a checkbox on the checkout page that links to your terms of service is not optional, it is the acceptance element of your contract.
WooCommerce includes a terms and conditions checkbox at checkout by default. Enable it under WooCommerce > Settings > Advanced > Account and privacy and link it to a page containing your full service agreement, refund policy, and deposit terms. WP Sell Services has a terms acceptance checkbox built into its booking form as well.
Digital Signatures for Higher-Value Projects
For higher-value engagements, require a digital signature on a service agreement before the deposit payment link is issued. Tools like Dropbox Sign and SignNow integrate with WordPress via Zapier or direct API connections. The signed agreement, combined with the deposit payment record, gives you a complete paper trail that holds up in small claims court and most commercial dispute resolution processes.
Deposit Receipt Wording That Protects You
The language in your deposit receipt matters. Avoid vague descriptions like “Booking Fee” that could be argued to mean something different from a deposit. Use specific language such as:
“Deposit payment of $X received on [date] toward [Service Name] scheduled for [date/period]. This deposit is [non-refundable / refundable under the conditions stated in the service agreement]. The remaining balance of $Y is due on [date]. Payment of this deposit constitutes acceptance of the service agreement and cancellation policy.”
Both WP Sell Services and WooCommerce Deposits allow you to customize the email templates for deposit receipts. Update the default language to match the wording above before you accept your first deposit payment.
Comparing WP Sell Services and WooCommerce Deposits
Both options work well for deposit collection, but they suit different business setups. Here is a side-by-side look at the key differences:
| Feature | WP Sell Services | WooCommerce Deposits (Webtomizer) |
|---|---|---|
| Best for | Service-only businesses | WooCommerce stores adding services |
| Deposit type | Percentage or fixed | Percentage or fixed |
| Per-service override | Yes | Yes (per product) |
| Automatic balance charge | Yes (Stripe) | Yes (WooCommerce Payments / Stripe) |
| Project management | Built in | Not included |
| Client communication | Built-in email system | WooCommerce email triggers |
| Digital signatures | Via integration | Via integration |
| Variable product support | Service variations | Yes, at variation level |
If you run a business where all of your revenue comes from services, WP Sell Services gives you a purpose-built toolkit that includes client management, project tracking, and deposit billing in one place. If you already have a WooCommerce store selling physical or digital products and want to add bookable services with deposit billing, WooCommerce Deposits slots into your existing setup without requiring a platform change.
Getting Started: Set Up Deposits on Your WordPress Site Today
If you are selling services on WordPress and want a system that handles deposits, booking management, client communication, and final invoicing in a single, purpose-built plugin, WP Sell Services is the place to start. It is designed for service-based businesses and handles the full booking-to-payment workflow without requiring you to stitch together multiple plugins.
For businesses already running WooCommerce stores with product-based sales and adding services on top, WooCommerce Deposits by Webtomizer fits into your existing setup and lets you add deposit functionality to any product in your catalog without disrupting what you already have in place.
The deposit workflow is not complicated. Set your percentage, configure your payment gateway, write clear terms, and let the automation handle reminders and balance collection. Your calendar stays protected, your cash flow improves, and clients who book with a deposit are meaningfully more committed to seeing the project through. Set it up once and stop chasing payments.
