What is an authorization hold window?
An authorization hold is not a permanent reservation. When Stripe places a hold on a customer’s card, it does so for a limited window of time. Within that window, the merchant must decide whether to capture or release a Stripe authorization hold.
If neither action is taken before the window closes, the hold expires automatically. This is an important constraint to understand before building any deposit workflow that relies on authorization holds.
- The hold is temporary. Unlike a charge, a hold does not settle immediately. It exists in a pending state and requires an explicit action to resolve.
- The window depends on multiple factors. The payment method, card network, transaction type and Stripe configuration all affect how long a hold remains valid. There is no single rule that applies to every situation.
- Expired holds cannot be captured. Once the authorization window closes, the reserved amount is released and the hold can no longer be converted into a charge. A new authorization would be needed.
A hold is temporary. It gives the merchant time to decide whether to capture or release the reserved amount, but it should not be treated as a permanent guarantee.
The 7-day default rule, explained carefully
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.
This 7-day figure is a practical reference point for planning, not a universal guarantee. A few important notes:
- It is a default, not an absolute rule. Some payment methods or card types may have shorter or different authorization windows. The 7-day figure applies specifically to many standard card payments under common Stripe configurations.
- Debit cards may behave differently from credit cards. Debit card networks often have their own authorization rules that can differ from major credit card network defaults.
- Always check current Stripe documentation. Stripe updates its rules and payment method behavior over time. Before building a workflow that depends on a specific authorization window, confirm the current behavior in official Stripe documentation for each payment method you plan to support.
What happens when a hold expires?
When a hold reaches the end of its authorization window without being captured or manually released, Stripe cancels the uncaptured PaymentIntent automatically.
- The funds are released. The reserved amount becomes available to the customer again, according to normal bank processing timelines. The customer’s bank may take additional time to reflect the change on their statement.
- Capture is no longer possible. Once the hold expires, the merchant cannot collect payment from that authorization. If the deposit was still needed, a new authorization would be required.
- No refund is issued. Because no charge was ever captured, there is nothing to refund. The release is automatic and does not require a separate action from the merchant.
- Plan before relying on a hold for a long period. If your rental or booking extends close to the authorization window, build a process for capturing, releasing or re-authorizing before the expiration date.
How to plan your WooCommerce deposit workflow
Understanding the authorization window is the foundation of a reliable deposit workflow. These steps help structure the timing correctly.
- 1Know when the deposit hold should be created: at checkout, at booking confirmation, or at the start of the rental or service period.
- 2Know when the rental, booking or service ends and when you will need to make a capture or release decision.
- 3Capture the hold only if there is a valid reason to do so, such as damage, a late return or an unpaid balance.
- 4Release the hold as early as possible when no issue has occurred. Waiting unnecessarily keeps the customer’s funds reserved longer than needed.
- 5Avoid creating holds too far in advance for long bookings. If the service starts weeks after checkout, consider whether the hold will still be valid when you need to act on it.
When longer timing may be a problem
Most deposit workflows work well within a short window. The authorization hold model becomes more complex when the gap between checkout and the end of the service is significant.
- Long-term rentals. Equipment or vehicle rentals lasting more than a week create a timing gap that may exceed the authorization window for many payment methods.
- Advance bookings. If a customer books an event or stay several weeks in the future, the hold placed at checkout may expire before the service date arrives.
- Short-term stays with early booking. Even stays of two or three nights can be problematic if the booking was made weeks in advance, because the hold could expire before check-in.
- Orders where the risk period extends beyond checkout. Some workflows, such as damage deposits for ongoing services, may need a hold that remains valid for a period longer than typical authorization windows support.
For these cases, consider alternative approaches: creating the hold closer to the service start date, using a different payment flow, or splitting the deposit into a separate order placed at the right time.
Authorization holds are time-sensitive. For longer booking or rental workflows, confirm your timing strategy before relying on a hold. An expired hold cannot be captured.
How SecureHold WP helps
SecureHold WP makes it easier to track hold timing and act before issues arise.
- Hold status on every order. The authorization hold status, amount and creation time are visible directly on the WooCommerce order screen, so you always know where each hold stands.
- Capture and release from the order admin. Act on holds quickly without logging into the Stripe Dashboard. Capture or release from the WooCommerce order screen in one click.
- Health Check. The built-in Health Check helps identify configuration issues, including problems with how holds are being created or tracked.
- Pro rules and automation. With SecureHold Pro, stores can configure automated capture or release logic to reduce the risk of forgetting active holds.
Plan your deposit timing with SecureHold WP
SecureHold WP helps WooCommerce stores manage Stripe authorization holds, capture decisions and release workflows from the order admin.
FAQ
-
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, transaction type and Stripe configuration. Always check current Stripe documentation for the payment methods you support. -
Does every Stripe hold last 7 days?
No. The 7-day window is a common default for many standard card payments, but it is not a universal rule. The exact duration can vary by payment method, card network and Stripe configuration. Some methods may have shorter windows. -
What happens if a hold expires?
Once the authorization window closes, the hold expires automatically and can no longer be captured. The reserved funds become available to the customer again according to standard bank processing timelines. No refund is issued because no charge was ever made. -
Can I extend a Stripe authorization hold?
This depends on the payment method and Stripe configuration. In some cases it may be possible to re-authorize. Check current Stripe documentation for the payment methods you use before assuming extension is available. -
Should I create a hold at checkout for a future booking?
If the booking is scheduled far in the future and the authorization window may expire before the service ends, you should plan your timing carefully. Consider whether the hold will still be valid when you need to capture or release it, and whether creating it closer to the service start date would be more reliable.

