What you need before adding a WooCommerce security deposit
Before configuring a deposit hold workflow, make sure your store meets these requirements. Skipping any of them is the most common source of setup problems.
- WooCommerce installed and running. Any recent version with at least one active product and a working checkout flow.
- Stripe account connected and active. Use test mode during setup and switch to live mode only after validating the full deposit workflow.
- WooCommerce Stripe Gateway active. SecureHold WP works alongside the WooCommerce Stripe Gateway to place pre-authorization holds at checkout.
- SecureHold WP installed and activated. The plugin adds the deposit hold workflow to WooCommerce orders and the order admin screen.
- Stripe webhook configured. Webhook events allow SecureHold WP to receive capture and release confirmations from Stripe. Before going live, set up your Stripe webhook endpoint and use the built-in Health Check to verify delivery.
- At least one test order before going live. Confirm that holds are created, captured and released correctly in Stripe test mode before accepting real orders.
A security deposit does not have to charge the customer upfront. With a Stripe authorization hold, you reserve funds at checkout and decide later whether to capture or release them.
Choose how your deposit should work
Before you start configuring SecureHold WP, decide on the deposit approach that fits your store. The right choice depends on your product types and how much variation exists across orders.
- Fixed deposit amount. A single deposit amount applied to every qualifying order. The simplest approach for stores with consistent product types.
- Percentage-based deposit. A deposit calculated as a percentage of the order total or product price. Useful when order values vary significantly.
- Product or category-specific deposits. Different deposit rules per product or category, requiring SecureHold Pro. This gives stores fine-grained control over which items carry a deposit and at what amount.
- Manual capture workflow. You review each order before deciding whether to capture or release the hold. The most careful approach for stores that always check returns before settlement.
For most stores starting out, a fixed deposit amount with manual capture is the clearest and lowest-risk path.
Step-by-step setup
Follow these steps to configure your first Stripe security deposit hold in WooCommerce.
- 1First, install and configure SecureHold WP from the WooCommerce extensions dashboard or your account download page.
- 2Confirm that the WooCommerce Stripe Gateway is active and connected to your Stripe account. Start in test mode to avoid any risk to live funds.
- 3Open the SecureHold WP settings and configure your global deposit amount or percentage.
- 4Choose when the hold should be created: at checkout, after order confirmation, or at a specific point in the order flow that fits your workflow.
- 5Place a test WooCommerce order using a Stripe test card to confirm the hold appears in both the WooCommerce order screen and your Stripe test dashboard.
- 6From the WooCommerce order admin, test both actions on separate orders: capture the hold on one and release it on another.
Test your first deposit hold
Always test your deposits in Stripe test mode before enabling them for live orders. Testing first confirms that holds are created, captured and released as expected, without any risk to real customer funds.
- Use a Stripe test card (for example, 4242 4242 4242 4242) to place an order through your WooCommerce checkout.
- Check the WooCommerce order screen immediately after checkout: the deposit hold status should appear in the SecureHold WP panel on the order.
- Verify that the hold shows as a pending charge in your Stripe test dashboard under Payments or PaymentIntents.
- Open the SecureHold WP Health Check to confirm webhook delivery, Stripe connectivity and deposit configuration are all working correctly.
- Test both outcomes on separate orders: capture on one and release on another. Confirm the expected state in both Stripe and WooCommerce before switching to live mode.
Common mistakes to avoid
A few setup issues come up repeatedly across WooCommerce stores adding deposit holds for the first time. Knowing them in advance saves troubleshooting time.
- Confusing a hold with a charge. A hold reserves funds without moving them. A charge transfers funds immediately. If you capture when you meant to release, the customer is billed rather than freed. These actions have different consequences and are not symmetrically reversible.
- Testing with unsupported payment methods. Not all payment methods support Stripe authorization holds. Confirm compatibility with Stripe documentation for each method you plan to accept before relying on it in production.
- Missing webhook events. Without a correctly configured Stripe webhook, SecureHold WP cannot receive capture or release confirmations. Use the Health Check to verify webhook delivery before going live.
- Creating holds too early in the booking flow. If a hold is placed long before the rental or service starts, the authorization window may expire before you need to act on it.
- Forgetting authorization windows. Holds do not last indefinitely. Plan your workflow to capture or release holds within the active window, rather than letting them sit unresolved.
- Assuming a hold is permanent or guaranteed. A hold is a temporary reservation. The customer’s card can expire, or a dispute can be raised, before you capture. Always have a process for handling these edge cases.
For many standard card payments, uncaptured PaymentIntents are canceled after a set number of days, 7 days by default. The exact authorization window can depend on the payment method, card network and Stripe configuration. Always check current Stripe documentation for the payment methods you support.
How SecureHold WP simplifies the workflow
SecureHold WP integrates Stripe authorization holds directly into the WooCommerce order admin. Instead of managing holds through the Stripe dashboard or custom payment code, everything lives inside the standard order screen.
- Deposit configuration in WooCommerce. Set your deposit rules, amount and timing directly from the plugin settings, with no code changes needed.
- Capture from the order screen. When a deposit is owed, capture the full or partial hold amount in one click from the WooCommerce order admin.
- Release from the order screen. When no charge is needed, release the hold just as quickly. The customer’s funds are freed without a refund process.
- Health Check tool. Built-in diagnostics that verify Stripe connectivity, webhook delivery and configuration status before and after going live.
- Pro rules and automation. With SecureHold Pro, stores can configure product or category-specific deposits, scheduled captures and release windows without manual intervention on every order.
Start with SecureHold WP
Create real Stripe security deposit holds in WooCommerce without building a custom payment flow.
FAQ
-
Can WooCommerce add security deposits by default?
WooCommerce does not include a complete Stripe authorization hold workflow by default. Adding real pre-authorization deposits to the checkout typically requires a dedicated plugin or custom development. -
Is a security deposit the same as charging the customer?
No. A charge transfers funds from the customer's card to your account immediately. An authorization hold reserves the funds without moving them. The hold can later be captured (turning it into a charge) or released without any money changing hands. -
Can I test deposits before going live?
Yes. You should test the full deposit workflow in Stripe test mode before accepting live orders. Use Stripe test cards to confirm that holds are created, captured and released correctly, then switch to live mode only after validation. -
Do I need Stripe for SecureHold WP?
SecureHold WP is designed around Stripe authorization holds for WooCommerce stores using Stripe. The plugin works alongside the WooCommerce Stripe Gateway to place and manage pre-authorization holds at checkout. -
Can deposits be configured per product?
Basic deposit rules may be set globally for all orders. Advanced product or category-based deposit rules can be configured with SecureHold Pro if enabled, giving stores more granular control over which items carry a deposit.

