The simple difference between a hold and a charge
When a payment method is presented at checkout, Stripe can handle it in two fundamentally different ways. Understanding what a Stripe authorization hold is gives you the foundation for any security deposit workflow.
- A charge moves money. It transfers funds from the customer’s card or account to the merchant’s Stripe balance immediately. The transaction is settled.
- A hold reserves funds. The amount is set aside on the customer’s card, but nothing is transferred. The customer sees a pending line on their statement, and the money is unavailable for other purchases.
- Capture turns a hold into a charge. When you capture a hold, all or part of the reserved amount is transferred to the merchant, completing the payment.
- Release lets the reserved funds go. When you release a hold, the pending line drops off the customer’s statement and the funds are available again. No refund is issued because no charge was ever made.
A hold protects the merchant without charging the customer upfront. A charge collects money immediately and may require a refund later if the deposit is not kept.
Stripe hold vs charge: side-by-side comparison
Here is how the two approaches compare across the aspects that matter most for security deposit workflows.
| Authorization hold | Standard charge | |
|---|---|---|
| Customer charged immediately | No | Yes |
| Funds reserved on the card | Yes | Not applicable: money has moved |
| Funds transferred to merchant | Only on capture | Immediately |
| Can be released without a refund | Yes | Refund required |
| Good for security deposits | Designed for it | Works, but charges upfront |
| Customer experience | Pending line on statement, no money leaves the account | Money is taken immediately, refunded later if deposit not kept |
| Best use case | Rentals, bookings, deposits that are usually returned | Standard purchases, digital products, services paid in advance |
When a charge makes sense
A standard charge is the right tool for most commerce transactions. It settles immediately and does not require any follow-up action to collect payment.
- Normal product purchases. The customer buys something and the merchant ships it. Payment should be collected at checkout.
- Digital products and downloads. Instant delivery means instant payment. There is no reason to hold funds when delivery happens immediately.
- One-time services paid upfront. If the service is delivered regardless of outcome and is not refundable by default, a charge is the appropriate mechanism.
- Subscriptions and recurring billing. Charges are used for all recurring payment cycles. Authorization holds are not suitable for subscription flows.
In short: use a charge when the money should move immediately and the transaction is final at the point of purchase.
When an authorization hold makes sense
Authorization holds are the right tool when you need financial protection at checkout but do not necessarily expect to keep the funds. The deposit is a safeguard, not the main payment.
In all these cases, the deposit is a precaution. The customer is not expected to pay it unless something goes wrong, which makes a hold a much better fit than a charge followed by a potential refund. For a deposit-focused comparison, see Stripe security deposit vs traditional deposit.
Why holds can create a better deposit experience
For merchants running rental or booking businesses, authorization holds solve several practical problems that come with the traditional charge-and-refund approach.
- No refund process when nothing happens. If the rental ends cleanly, you simply release the hold. The customer’s funds are freed immediately, with no refund request, no processing time and no waiting.
- Less friction for customers. Customers prefer not seeing a charge hit their account for a deposit they expect to get back. A pending hold feels like less of a commitment, which can reduce checkout abandonment.
- Cleaner accounting. With holds, your books do not include deposits that were collected and returned. Only actual charges appear as settled transactions, which simplifies reconciliation.
- Fewer refund questions. Customers who were charged a deposit and then refunded often contact support asking where their money is. With holds, there is nothing to refund, so support requests around returned deposits drop significantly.
- More professional deposit workflow. A hold-based deposit communicates to customers that you are running a considered process, not simply collecting money you might return later.
Limitations of authorization holds
Authorization holds are a powerful tool for deposit workflows, but they are not without constraints. Store owners should understand these limitations before building a workflow that depends on them.
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.
- A hold is not permanent. Once the authorization window closes, the hold expires and can no longer be captured. If your rental or booking extends beyond that window, plan how you will handle it before it happens.
- Capture is not guaranteed. A customer’s card can expire, or a dispute can be raised, before you capture the hold. A hold gives you a strong position, but it is a reservation, not a binding commitment.
- Partial capture is final. If you capture part of a hold, the remainder is released automatically. You cannot go back and capture the released portion later.
- Long rental or booking periods need a different approach. If a booking extends beyond the authorization window, you may need to re-authorize, switch to a charge model, or use a payment method designed for longer hold periods.
How SecureHold WP uses Stripe holds in WooCommerce
SecureHold WP brings the Stripe authorization hold workflow into the standard WooCommerce order admin. Instead of managing holds through the Stripe dashboard or writing custom code, the full deposit lifecycle is handled from the order screen.
- Creates a Stripe authorization hold at checkout. When a customer completes an order, SecureHold WP places a pre-authorization hold for the configured deposit amount alongside the main payment.
- Capture from the order admin. If a deposit needs to be collected (damage, late return, extras), capture all or part of the hold in one click from the WooCommerce order screen.
- Release from the order admin. When the service ends without issues, release the hold just as easily. The funds are freed for the customer with no refund required.
- Deposit status on every order. The hold status, amount, and action history are visible directly on the order, so there is no need to cross-reference the Stripe dashboard.
- Health Check diagnostics. The built-in Health Check verifies Stripe connectivity, webhook delivery and deposit configuration, helping diagnose issues before they affect live orders.
- Pro rules for product and category logic. With SecureHold Pro, stores can configure different deposit amounts per product or category, and set up automated capture or release rules to reduce manual work.
Use the right payment flow for WooCommerce deposits
SecureHold WP helps WooCommerce stores use Stripe authorization holds instead of charging and refunding deposits manually.
FAQ
-
Is a Stripe hold the same as a charge?
No. A hold reserves funds on the customer's card without transferring them, while a charge moves funds to the merchant immediately. A hold can later be captured (turning it into a charge) or released back to the customer. -
What happens when a Stripe hold is captured?
Capturing a hold converts all or part of the reserved amount into a real charge. The captured funds are transferred to the merchant's Stripe balance, and any uncaptured portion is automatically released. -
What happens when a Stripe hold is released?
The reserved funds are made available again to the customer. Since no charge was ever captured, there is no refund to process. The pending line on the customer's statement simply drops off. -
Should I use a charge or a hold for a WooCommerce security deposit?
For many deposit workflows, a hold can create a cleaner experience because the customer is not charged unless something actually happens. With a charge, you would need to issue a refund when the deposit is returned, which adds friction and processing time. -
How long does a Stripe authorization hold last?
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 methods you accept.

