Glossary
Stripe Authorization Hold
A Stripe authorization hold reserves funds on a customer's payment method without transferring them, so the money is unavailable to the customer but has not yet moved to you and is not yet a transaction in your books.
Also called: auth hold, pre-authorization, manual capture, uncaptured payment, pending charge
Definition
An authorization hold is the one common payments event that is visible to your customer and invisible to your books.
When you authorize a payment, Stripe asks the customer's bank to set aside the amount. In Stripe's words, "authorizing a payment guarantees the amount by holding it on the customer's payment method." The bank reduces the available balance or credit line by that figure. Nothing is transferred. You have a promise, not money.
That asymmetry explains almost everything people find confusing about holds. The customer sees a number missing from their account and often cannot tell it apart from a real charge, so they call. Meanwhile there is nothing to record, because no funds have moved, no revenue has been earned, and no fee has been taken. An authorization is a reservation, and reservations do not belong in a general ledger.
Holds exist because many businesses do not know the final amount when the customer is in front of them. A hotel authorizes an estimate at check-in and charges the real total at check-out. A fuel pump authorizes before it knows how much you will pump. Stripe calls this separating authorization and capture, and you request it by setting `capture_method` to `manual` when you create the payment.
Key points
- +Reserves funds on the customer's payment method. No money moves until you capture.
- +Not a transaction: nothing to record in your books until capture happens.
- +Most online card holds last 7 days. In-person Terminal holds are usually 2 days.
- +Stripe reports the exact deadline on the charge, in `payment_method_details.card.capture_before`.
- +If it expires uncaptured, the funds are released and the payment status becomes `canceled`.
- +You normally get one capture only. A partial capture releases the rest and cannot be topped up.
- +Card statements often do not distinguish a hold from a settled payment, which is why customers call.
Why a hold is not a transaction
The bookkeeping rule is simpler than the anxiety around it. An authorization produces no accounting entry, because nothing has happened yet that accounting recognises.
No cash has moved, so there is no bank or clearing account entry to make. No goods or services have been delivered and no payment has settled, so there is no revenue to recognise under either cash or accrual basis. Stripe has taken no processing fee, because fees are charged on capture rather than on authorization. There is no balance transaction, which is the object Stripe creates when your balance actually changes.
This is why a business running manual capture can look at a busy Stripe Dashboard and a quiet set of books and conclude something is broken. Nothing is broken. Uncaptured payments are not omitted from your books by mistake. They are correctly absent, and they should stay absent until they are captured.
The practical consequence is that the capture, not the authorization, is the event your accounting cares about. Capture is when the balance transaction appears, when the fee is taken, and when you have a sale. If you need to know what is sitting authorized but uncaptured, that is an operational question best answered from Stripe rather than from your accounting file.
How long a hold lasts
There is no single answer, and the differences are large enough to matter operationally. Stripe publishes validity windows by card brand, and splits them by whether the transaction happened online or in person.
For card-not-present transactions, Mastercard, American Express and Discover all allow 7 days, for both customer-initiated and merchant-initiated payments. Visa allows 7 days for customer-initiated transactions and 5 days for merchant-initiated ones, though Stripe notes the exact Visa window is 4 days and 18 hours to leave room for clearing.
For card-present transactions taken in person through Terminal, the windows are much shorter. Visa is again 5 days on paper and 4 days and 18 hours in practice, while Mastercard, American Express and Discover all drop to 2 days.
One regional exception is worth knowing. If your Stripe account is based in Japan, JPY-denominated transactions on Visa, Mastercard, JCB, Diners Club and Discover can be held for up to 30 days. Non-JPY transactions and American Express follow the standard windows.
Rather than working from any of these tables, read the deadline off the payment itself. Stripe exposes `capture_before` on the charge, and describes it as the attribute that "indicates when the authorization expires". Stripe recommends relying on that field because network rules can change without prior notice.
If you miss the window, the outcome is clean rather than ambiguous: "the funds are released and the payment status changes to `canceled`". You have not been paid, and you will not be paid on that authorization. You would need a new payment.
Non-card payment methods hold on their own terms
Separate authorization and capture is not a card-only feature, but the rules change completely once you leave cards. Stripe supports it on cards, Affirm, Afterpay, Cash App Pay, Klarna and PayPal. It is not supported on ACH Direct Debit or iDEAL.
The windows are all different, and several of them work in a way that surprises people used to card behaviour, because the customer may actually be charged something during the authorization.
Cash App Pay is the shortest: valid authorizations must be captured within 7 days. PayPal holds the amount for 10 days, and Stripe automatically attempts to extend the hold for another 10, totalling 20. Klarna gives you until "midnight of the 28th calendar day after the charge request", so a charge requested at 14:00 UTC on 1 October has to be captured by 00:00 UTC on 29 October.
Afterpay and Affirm are the two that behave unlike a card hold. With Afterpay, the customer pays the first repayment installment during authorization, and Afterpay refunds it if the payment is never captured. You then have 13 days to capture the balance. With Affirm, if a down payment is required for a very large order, Affirm charges it at authorization and refunds it if you do not capture, and you have 30 days for the balance.
For bookkeeping this means the tidy rule from the first section holds for cards but needs care elsewhere. On Afterpay and Affirm, real money can move at authorization and move back again if you never capture.
Extended authorizations, and what they cost
When 7 days is not enough, Stripe offers extended authorizations that can run up to 30 days. Availability is narrower than the headline suggests, and the details are worth checking before designing a process around them.
Extended authorizations are available only on Visa, Mastercard, American Express and Discover, and they are an IC+ pricing feature, so businesses on blended Stripe pricing have to ask for access. They also are not available for Link payments when Link is integrated as its own payment method.
The category rules differ by network. Mastercard allows 30 days across all merchant categories, excluding Maestro and Cirrus cards. Visa allows 30 days for hotel, lodging, vehicle rental and cruise line businesses, and for other categories charges an additional 0.08% fee per transaction. Visa's effective window is 29 days and 18 hours, again for clearing. Discover covers a specific list including airline, car rental, cruise line, hotel, lodging and passenger railway.
American Express carries the constraint most likely to catch someone out. The window extends to 30 days, but Stripe states that "you must capture the authorized funds no later than the end of your customer's stay or rental". The published window is not the operative deadline.
Stripe also flags a compliance point worth repeating: "for many networks extended validity windows are only for cases where you don't know the final amount that you'll capture at the time of authorization". Extended holds are for genuine uncertainty about the amount, not for buying time.
What the customer sees, and the call you will get
The most common support conversation about holds comes from a documented gap between what happened and what the customer can see. Stripe puts it plainly: "Card statements from some issuers and interfaces from payment methods don't always distinguish between authorizations and captured (settled) payments, which can sometimes confuse customers."
So a customer looks at their banking app, sees your business name and an amount, and reasonably concludes they have been charged. If you then capture a lower amount, they may see what looks like a second entry, or a refund that never appears because the released portion was never money in the first place.
Two things reduce this. The first is a clear statement descriptor, which Stripe recommends specifically because customers seeing funds held for longer periods drives disputes from unrecognised payments. The second is telling people at the point of sale that you are placing a hold and what the final charge depends on.
One related restriction is worth knowing if you have ever considered verifying a card with a small charge you never intend to take: card networks may restrict 1 USD authorizations that you do not intend to capture.
When you do capture, remember that you generally get one attempt. Stripe is explicit that "you can only perform one capture on an authorized payment for most payments" and that if you partially capture, "you can't perform another capture for the difference". A partial capture automatically releases the remainder. What that does to your books, and why it can quietly distort your refund rate, is covered in our post on Stripe partial captures.
Frequently asked questions
What is an authorization hold in Stripe?
It is a reservation of funds on the customer's payment method without any money moving. Stripe asks the issuer to set the amount aside, which reduces the customer's available balance, but you have not been paid until you capture. You request it by setting `capture_method` to `manual` on the payment.
How long does a Stripe authorization hold last?
Most online card authorizations last 7 days, and most in-person Terminal authorizations last 2 days. Visa is the main exception at an effective 4 days and 18 hours for merchant-initiated and in-person transactions. Rather than relying on the tables, read `capture_before` on the charge, which Stripe reports as the exact expiry for that payment.
What happens if I do not capture an authorization in time?
The funds are released back to the customer and the payment status changes to `canceled`. You have not been paid and cannot capture that authorization afterwards. Collecting the money requires creating a new payment, which means asking the customer to pay again.
Does an authorization hold show up in accounting?
No. Nothing has moved, so there is no cash entry, no revenue to recognise on either cash or accrual basis, and no processing fee, since fees are taken at capture. The event your books care about is the capture, which is when the balance transaction and the fee appear.
Can I capture more than once on the same authorization?
Generally no. Stripe states that for most payments you can only perform one capture, and that if you partially capture you cannot perform another capture for the difference. A partial capture automatically releases the remaining amount. Some card payments are eligible for multicapture, which is a separate feature.
Why does my customer see a charge they say they did not make?
Because card statements from some issuers do not distinguish authorizations from settled payments, so a hold can look identical to a completed charge. A clear statement descriptor and telling customers up front that you are placing a hold are the two things that reduce these calls.
What customers say about running Stripe through Acodei

“If you're testing out all the different Stripe/QuickBooks integration apps right now, let me save you some time. This one is the best one by far.”
“Works well and is really helpful for massive transactions. The support is really fast and helpful. 100% recommended.”
Related reading
- Stripe partial captures in QuickBooks
- Stripe available vs pending balance
- Stripe Balance Transaction
- QuickBooks Sales Receipt
- Stripe Fee
More glossary terms
- Undeposited Funds
- Stripe Balance Transaction
- Available vs Pending Balance
- Stripe Dispute
- Stripe Fee
- Stripe Balance Adjustment
- QuickBooks Credit Memo
- Stripe Tax
- QuickBooks Tax Code
- Stripe Reserve
- Stripe Tax Rate
- Stripe Fee Credit
- Stripe Credit Note
- QuickBooks Product/Service Item
- Stripe Payout
- QuickBooks Sales Receipt
- QuickBooks Bank Deposit
- QuickBooks Transfer
Ready to try Acodei?
Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.