An uncaptured payment is money Stripe has authorized but not yet taken from your customer's card
When you process a payment in Stripe, there are two separate moments: authorization and capture. Authorization means Stripe has checked with the customer's bank and confirmed the money is there and available. Capture means Stripe actually pulls that money from the card and moves it toward your bank account. An uncaptured payment is stuck between those two moments — the hold is on the customer's account, but the transaction is not yet final.
By default, Stripe captures payments immediately after authorization. But if you have configured your account to use manual capture, or if you are using certain payment flows like Stripe Checkout with a custom setting, the payment stays authorized but uncaptured until you tell Stripe to capture it. This gives you a window to verify the order, check inventory, or confirm shipping details before actually charging the customer.
The uncaptured state is temporary. You either capture the payment within a set time window (usually seven days, though this varies by card network and issuer), or the authorization expires and the hold drops off the customer's card. If you capture after that window closes, the transaction may fail.
Key Takeaways
- An uncaptured payment means Stripe has verified the funds exist but has not yet withdrawn money from the customer's card.
- Manual capture is useful for businesses that need to confirm orders, check stock, or verify shipping before charging — like made-to-order or high-value sales.
- Uncaptured payments expire after seven days in most cases, and the authorization hold disappears from the customer's account if you do not capture by then.
- If you capture after the authorization window closes, the transaction will likely fail and you will need to ask the customer to pay again.
- Customers see the authorization hold on their statement even before capture, which can cause confusion if you do not explain the delay.
When Stripe leaves payments uncaptured
You control whether Stripe captures automatically or waits for your signal. In your Stripe Dashboard, under Settings > Payment Settings, you can toggle Automatic Capture on or off. When it is off, every payment authorizes but does not capture until you manually tell Stripe to capture it.
Some payment methods and integrations also force manual capture by design. If you are using Stripe Checkout and set the mode to require manual capture, or if you are building a custom integration using the Stripe API and explicitly set capture_method: "manual", payments will not capture automatically. The same applies to certain recurring billing setups where you want to verify a subscription change before charging.
Businesses typically use manual capture for orders that need verification before fulfillment — high-value purchases, made-to-order items, or situations where you need to confirm the customer's address or shipping method before taking their money. It also protects you if a customer disputes the charge later, because you have a record of when you authorized it and when you chose to capture it.
How long you have to capture an uncaptured payment
The authorization hold on a customer's card typically lasts seven days. This is the standard window set by Visa, Mastercard, and most other card networks. However, some banks and card issuers may honor holds for longer or shorter periods, and a few payment methods have different rules.
If you capture within those seven days, the transaction completes normally and the money moves toward your bank account. If you do not capture by day seven, the authorization expires. The hold disappears from the customer's account, and the funds are no longer reserved for you. If you try to capture after the window closes, Stripe will reject the capture and return an error.
You can see the expiration date of each uncaptured payment in your Stripe Dashboard. Go to Payments, find the transaction, and look for the Expires field. Set a reminder or use Stripe's webhooks to alert you when an authorization is about to expire if you are managing many uncaptured payments.
What happens to the customer's card during the uncaptured period
The authorization hold appears on the customer's bank statement or online banking portal immediately, even though you have not captured the money yet. The customer sees a pending charge for the full amount. This can alarm customers who do not understand the difference between authorization and capture, especially if the hold sits for several days.
The hold does not reduce the customer's available balance permanently — it is a temporary reserve. If the authorization expires without capture, the hold releases and the available balance returns to normal. But while the hold is active, the customer cannot spend that money elsewhere, which matters if they have a tight credit limit or low account balance.
If you capture the payment, the pending charge becomes a completed transaction and the money begins moving to your bank account. The customer's statement will show the charge as posted rather than pending, usually within one to three business days depending on their bank.
Capturing an uncaptured payment in Stripe
To capture a payment manually, open your Stripe Dashboard, go to Payments, and find the transaction you want to capture. Click on it to open the details. You will see a Capture button near the top if the payment is still uncaptured and within the authorization window. Click it, and Stripe will capture the payment immediately.
You can also capture payments through the Stripe API using the POST /v1/charges/{id}/capture endpoint, or through your payment integration if it has a capture function built in. Some Stripe apps and plugins for e-commerce platforms (like Shopify or WooCommerce) have capture buttons in the order details page, which is faster than logging into Stripe directly.
Once you click Capture, the transaction is final. You cannot undo it. The money will move to your bank account according to your payout schedule, typically within one to two business days. If you need to reverse the charge after capture, you will have to issue a refund instead, which is a separate transaction.
What to do if an uncaptured payment expires
If you miss the seven-day window and the authorization expires, the hold drops from the customer's card and the payment is lost. You will need to ask the customer to pay again. The original authorization cannot be recovered or extended.
To collect the payment, you can send the customer a new payment link, invoice, or checkout page. In Stripe, you can create a new Payment Link or send an invoice through the Dashboard, or use the API to create a new charge. The customer will see this as a new transaction, not a continuation of the original one.
To avoid this situation, set up reminders or automation. Stripe allows you to create webhooks that notify you when a payment is about to expire, or you can use a Stripe app or third-party integration that tracks uncaptured payments and alerts you. Some businesses set a policy to capture all payments within 24 or 48 hours to leave a safety margin before the seven-day window closes.
Uncaptured payments and refunds
If you need to cancel an uncaptured payment before the authorization expires, you can release the authorization instead of capturing it. In the Stripe Dashboard, open the payment details and look for a Release button (this may be labeled differently depending on your Stripe version). Releasing an authorization cancels the hold without charging the customer.
Releasing is different from refunding. A refund only works after you have captured the payment — it pulls money back from a completed transaction. Releasing an uncaptured authorization simply tells the card network to cancel the hold, and no money ever moves. From the customer's perspective, releasing is faster and cleaner because the hold disappears from their account immediately instead of showing as a pending refund.
If you have already captured the payment and then change your mind, you must issue a refund. The refund appears as a separate transaction on the customer's statement, and it takes one to three business days to process depending on their bank.
Frequently Asked Questions
Can a customer spend money that is under an authorization hold?
No. The authorization hold reserves the funds and reduces the customer's available balance. They cannot spend that money until the hold expires or is released. This is why customers sometimes see a lower available balance than their account balance — the difference is money that is held by pending authorizations.
What if I capture a payment after the customer's card has expired?
If the customer's card expired after you authorized but before you captured, the capture will fail. Stripe will return an error and the transaction will not go through. You will need to contact the customer and ask them to provide a new card or payment method, then process a new authorization and capture.
Does manual capture cost more in Stripe fees?
No. Stripe charges the same processing fee whether you capture immediately or use manual capture. The fee is based on the payment method and your Stripe pricing plan, not on when you capture. You pay the fee only when you capture, not when you authorize.
Can I set different capture settings for different types of orders?
Yes, if you are building a custom integration using the Stripe API. You can set capture_method: "manual" for some charges and let others capture automatically. However, if you are using Stripe Checkout or a pre-built integration, the capture setting usually applies to all payments. Check your integration's documentation to see if it supports per-transaction capture settings.
What happens if I capture a payment twice by accident?
Stripe prevents double captures. If you try to capture the same uncaptured payment twice, the second attempt will fail with an error saying the payment has already been captured. You cannot accidentally charge a customer twice for the same authorization.