What Stripe pre-authorization means
A Stripe pre-authorization is a temporary reservation of funds on a customer’s card. When a merchant requests a pre-authorization, Stripe contacts the customer’s bank and asks it to set aside a specific amount. The bank marks those funds as unavailable to the customer, but no money is transferred to the merchant at this point.
Pre-authorization gives the merchant a window to decide what to do with the reserved funds:
- Capture: Collect the reserved amount in full or in part. This converts the reservation into a real charge and moves funds to the merchant’s Stripe balance.
- Release: Cancel the reservation without collecting anything. The funds become available on the customer’s card again, with no charge processed.
- Expiration: If neither action is taken within the allowed window, the authorization expires automatically and the funds are released.
The key distinction from a standard charge is that no money moves at authorization time. The merchant retains flexibility to decide later, based on what actually happens with the order or rental.
Stripe pre-authorization lets a merchant reserve funds first and decide later whether to capture or release them.
The pre-authorization lifecycle
A Stripe pre-authorization follows a defined sequence of events. Understanding each step helps you configure your deposit workflow correctly and plan your timing.
- 1Customer enters their payment details and confirms the order at checkout.
- 2Stripe sends an authorization request to the customer’s issuing bank for the specified amount.
- 3The bank approves the request and reserves the funds. They appear as a pending charge on the customer’s bank statement.
- 4The merchant reviews the order, rental return or deposit situation to determine the outcome.
- 5The merchant decides whether to capture or release the hold based on whether funds are owed or everything is resolved cleanly.
- 6If no action is taken within the authorization hold window, the hold expires automatically and the funds are released.
Authorization vs capture vs release
Each stage in the pre-authorization lifecycle involves a distinct action with different outcomes for the merchant and the customer.
| Action | What it means | Customer sees |
|---|---|---|
| Authorization | Funds are reserved on the card; no money moves to the merchant | A pending charge on their bank statement |
| Capture | Reserved funds are transferred to the merchant’s Stripe balance | The pending charge becomes a completed transaction |
| Partial capture | Only part of the reserved amount is transferred; the remainder is released automatically | A charge for the captured amount; the rest disappears from their statement |
| Release | The reservation is cancelled without any charge being processed | The pending charge disappears; no money was taken |
| Expiration | The authorization window closes; the hold is cancelled automatically | The pending charge disappears; no money was taken |
Why WooCommerce stores use pre-authorization
Standard WooCommerce checkout charges the customer immediately. For most retail transactions, this is appropriate. But for certain workflows, the ability to reserve funds and decide later is genuinely useful.
- Security deposits. Rental businesses, event venues and equipment providers need a deposit that can be released without a refund when the order ends cleanly.
- Equipment rental protection. A hold at checkout protects against damage or missing accessories, with capture only if something goes wrong after the return.
- Booking deposits. Service businesses can reserve a deposit at booking and release or capture after the service is delivered.
- Damage protection. Merchants who lend high-value items can hold funds as a safeguard without charging the customer upfront.
- Better customer experience. Customers prefer not being charged a deposit they expect to get back. A hold that disappears cleanly is a better experience than a charge followed by a refund several days later.
- Cleaner merchant workflow. Fewer refunds means fewer transaction records to reconcile and fewer customer support requests about when the deposit will be returned.
Limitations to understand
Pre-authorization holds are powerful, but they come with constraints that directly affect how you should structure your deposit workflow.
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, transaction type and Stripe configuration.
- Holds are temporary. An uncaptured hold will expire if you do not act within the authorization window. For rentals longer than the window, you need a plan for re-authorization or an alternative workflow.
- Capture is not guaranteed indefinitely. Once a hold expires, it can no longer be captured. You cannot recover an expired authorization.
- Different payment methods behave differently. Credit cards, debit cards and alternative payment methods can have different authorization windows and rules. Always verify the behavior for the specific payment methods your store accepts.
- Testing is required. Do not assume the workflow will behave identically in production as described in documentation. Test the full capture and release sequence in Stripe test mode before accepting real orders.
How SecureHold WP uses pre-authorization
SecureHold WP connects Stripe pre-authorization to WooCommerce so you can manage deposit holds without custom code or routine Stripe dashboard access.
- Creates a Stripe hold for the deposit at checkout, alongside or separate from the main order payment.
- Displays deposit status inside WooCommerce orders so you can see at a glance whether the hold is active, captured or released.
- Capture from the order admin when a deposit claim is justified, in full or partially.
- Release from the order admin when the order ends cleanly, without issuing a refund.
- Health Check to verify your Stripe configuration, webhook delivery and API key setup before your first live hold.
- Pro plan rules allow configuring different deposit amounts per product or product category for stores with varied inventory.
Use Stripe pre-authorization for WooCommerce deposits
SecureHold WP helps WooCommerce stores manage Stripe pre-authorization holds without building a custom payment flow.
FAQ
-
Is pre-authorization the same as charging the customer?
No. A charge immediately transfers funds from the customer's card to the merchant's Stripe balance. A pre-authorization reserves funds on the card without moving them. No money changes hands until the merchant explicitly captures the hold. -
What happens when a pre-authorization is captured?
The reserved funds are transferred to the merchant's Stripe balance. From the customer's perspective, the pending charge on their bank statement becomes a completed transaction. Partial captures are also possible: only the captured amount is transferred, and the remainder is released automatically. -
What happens when a pre-authorization is released?
The reservation is cancelled and the funds become available on the customer's card again. No charge is processed and no refund is issued, because no money ever left the customer's account. -
How long does Stripe pre-authorization last?
For many standard card payments, uncaptured PaymentIntents are canceled after a set number of days, 7 days by default. The exact window depends on the payment method, card network and Stripe configuration. Always check current Stripe documentation for the payment methods your store accepts. -
Can WooCommerce use Stripe pre-authorization for deposits?
Not natively. WooCommerce charges customers at checkout by default. To create Stripe pre-authorization holds and manage capture or release from the WooCommerce order admin, you need a plugin like SecureHold WP.

