Glossary
Stripe Reserve
A Stripe reserve is a temporary hold on a portion of a business’s funds for a predetermined period, held so there is money available to cover refunds and disputes on sales that have already been paid out.
Also called: reserve hold, rolling reserve, risk reserve, reserved_funds, reserve_transaction, connect reserve
Definition
Stripe defines it plainly: a reserve is "a temporary hold on a portion of a business’s funds for a predetermined period of time." The money is still yours. It is just not payable yet.
Reserves exist because there is a window between a sale and the moment that sale is safe. A customer can dispute a card payment long after the money has reached your bank. If Stripe has already paid everything out, and the disputes arrive against an empty balance, somebody is short. Stripe describes the risk it is managing as the case where "the funds in the account might not be sufficient to cover any disputed amounts."
Two things follow that people get wrong. A reserve is not a fee, so it is not an expense, and it should not reduce your profit. And a reserve is not a penalty on your ability to trade: Stripe states that "reserves do not impact a business’s ability to continue accepting payments with Stripe."
The confusion in accounting comes from timing rather than amount. A hold and its release net to zero, but they can land in different months, which makes one period look worse and the next look better than either really was.
Key points
- +A reserve is a temporary hold on your own funds, not a fee and not a loss.
- +Stripe uses two types: fixed, which releases on a set date, and rolling, which releases a set number of days after each charge.
- +Funds cannot be reserved for longer than 180 days.
- +Reserves do not stop you from accepting payments.
- +Released funds are paid out minus any refunds or disputes the reserve covered.
- +Holds and releases net to zero over time, but can straddle two reporting periods.
- +A platform’s reserve against a connected account is a different mechanism with the same name.
Hold, plan, release: what Stripe actually creates
Underneath the dashboard language there are three objects, and knowing them makes every line on your balance report readable.
A **hold** reserves a single amount that releases on a specified date. A **plan** automatically creates a hold for a percentage of each charge. A **release** represents funds coming back out of the reserve, and Stripe creates one automatically when a hold reaches its scheduled release date or when the held funds get used for a refund or dispute.
The part worth internalising is that each of these moves money between two different balances, and generates two balance transactions rather than one. Creating a hold produces a `reserved_funds` entry debiting the payments balance and a `reserve_hold` entry crediting the `risk_reserved` balance. Releasing produces the mirror image: a `reserve_release` debiting `risk_reserved` and a `reserved_funds` crediting the payments balance back.
That is the mechanical reason a reserve behaves like money leaving and later returning. Nothing left Stripe. It moved sideways into a balance that payouts cannot reach, and moved back when the hold matured.
Fixed and rolling
Stripe uses two kinds of reserve, and the difference is entirely about when the money comes back.
A **fixed** reserve releases on a specified date. It suits a known, dated risk: a large order with a long delivery time, or ticket sales for an event that might be cancelled, where the sensible release point is the day after the event.
A **rolling** reserve releases a set number of days after the associated charge. Because each charge starts its own clock, the effect is a continuously replenishing buffer rather than a single lump that ends. Stripe describes rolling plans as the tool for "automated management of ongoing risk", and notes that a standard reserve window also sets consistent expectations about payouts.
There is a hard ceiling on both. Funds cannot be reserved for longer than 180 days, and the scheduled release date of a hold "can never be more than 180 days after its creation date, regardless of how it was created."
Most businesses never configure any of this. Reserves on your own account are set by Stripe based on risk factors such as your industry, your dispute rate, and unexplained spikes in volume. Reserves are usually temporary, though Stripe acknowledges that "in some rare cases, a reserve may be required indefinitely."
When a hold actually releases
A hold releases automatically when any one of three things happens: its scheduled release date arrives, 180 days pass since it was created, or a refund or dispute occurs on the associated transaction for an amount equal to or greater than the hold.
When the reserve term completes, Stripe pays out what is left. Its wording is worth reading closely, because it explains why a release is often smaller than the hold: funds "will be paid out once the reserve term is complete (minus any customer refunds or disputes that may have been covered by the reserve)." The reserve did its job, and what it absorbed does not come back.
One behaviour surprises people, and it is documented. A refund or dispute for **less** than the hold amount does not release the hold. The refunded or disputed amount comes out of the account balance instead, which can push that balance negative while the full hold sits untouched. If that happens and you would rather not wait for the scheduled date, the hold has to be released manually.
The other reserve with the same name
If you run a Stripe Connect platform, "reserve" means something related but structurally different, and mixing the two up makes balance reports impossible to read.
When a connected account’s balance goes negative and your platform is responsible for covering it, Stripe holds a reserve against your platform’s available balance. Those holds and releases appear as balance transactions of type `reserve_transaction`, and the platform balance they sit in is called `connect_reserved`. As the connected account’s balance recovers through new activity, a corresponding portion of your reserve is released.
Two details matter for reconciliation. Stripe keeps the platform reserve for an extra three business days after a bank withdrawal covering the negative balance posts, so the reserve outlives the event that caused it. And if a connected account stays negative for 180 days, the hold stops being a hold: Stripe transfers part of your balance to zero out that account through a `connect_collection_transfer`, which is a permanent movement of your money and a real loss to book, not a timing difference.
You can end a reserve early by sending a transfer to the connected account to clear its negative balance.
How reserves reach QuickBooks
Both reserve types are synced. `reserved_funds` and `reserve_transaction` flow through Balance Transaction Mapping: when holds or releases appear among a payout’s balance transactions or on the daily summary, Acodei aggregates them and posts them as line items using the product you mapped for that type.
You map them once. The setting lives under Balance Transaction Mapping in the Account Mapping section, which stays hidden until you toggle Customize, and that is the usual reason someone reports being unable to find it. If a type turns up unmapped, Acodei prompts you to map it rather than guessing an account. Stripe’s minimum balance holds are treated the same way and net out on release in the same manner.
The accounting consequence is the one to plan around. Holds and releases net to zero over time, so a reserve is not a cost. But a hold taken in one period and released in another will make the first period look worse and the second look better. That is a timing artifact rather than a loss, and it is worth a note to whoever reviews the numbers.
`connect_collection_transfer` is the exception, because it is not a timing artifact. Acodei imports it as an outflow and posts it to the product configured under Balance Transaction Mapping. Since it represents money genuinely gone, many platforms reclassify it to a bad debt account afterwards.
The full accounting treatment, including which account to point reserves at and how to reconcile the Stripe clearing account while a hold is open, is covered in the [Stripe reserves and holds guide](/blog/stripe-reserves-holds-quickbooks).
Want to see this on your own Stripe data?
Start a free trialFrequently asked questions
What is a Stripe reserve?
A temporary hold on a portion of your funds for a predetermined period. Stripe holds the money so it is available to cover refunds and disputes on sales that have already been paid out. It remains your money and is released when the reserve term completes.
Why is Stripe holding my money?
Because of the gap between a sale and the point at which it is safe from being reversed. Stripe applies reserves where the funds in an account might not be enough to cover disputed amounts, weighing factors such as the industry you are in, your dispute rate, and unexplained spikes in volume.
What is the difference between a fixed and a rolling reserve?
A fixed reserve releases on a specified date, which suits a known dated risk such as an event. A rolling reserve releases a set number of days after each associated charge, so it works as a continuously replenishing buffer for ongoing risk rather than a single amount that ends.
How long can Stripe hold reserved funds?
Not longer than 180 days. A hold’s scheduled release date can never be more than 180 days after it was created, and a hold releases automatically once 180 days pass even if nothing else triggers it.
Does a reserve cost me money?
No. A reserve is not a fee and not a loss, so it should not hit your profit and loss as an expense. The hold and its later release net to zero. The one case where money is genuinely gone is a Connect collection transfer, which is a permanent settlement of a connected account’s negative balance rather than a hold.
Can I still take payments while a reserve is in place?
Yes. Stripe states that reserves do not impact a business’s ability to continue accepting payments. What changes is how much of your balance is available to pay out, not whether you can process charges.
Why did my reserve release for less than the amount held?
Because the reserve absorbed something. Funds are paid out when the reserve term completes minus any customer refunds or disputes the reserve covered. If a refund or dispute was charged against the hold, the released amount is reduced by it.
What is the difference between reserved_funds and reserve_transaction?
`reserved_funds` is the balance transaction for a risk reserve on your own Stripe account, moving money between your payments balance and your risk reserved balance. `reserve_transaction` is the Connect version, where a platform’s balance is reserved to cover a connected account that has gone negative.
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 reserves and holds in QuickBooks Online
- Stripe Balance Transaction
- Stripe available vs pending balance
- Stripe Dispute (chargeback)
- Stripe Balance Adjustment
More glossary terms
Ready to try Acodei?
Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.