Stripe Unreconciled Payments in QuickBooks
A payment_unreconciled credit is a customer's money Stripe could not return, swept to you at day 90. What it is, how it posts in QuickBooks, and what to...
A deposit lands in your Stripe balance. It is small, maybe forty dollars, maybe four hundred. There is no sale behind it, no customer name you recognize on it, and nothing in your invoicing that explains it. Your daily summary in QuickBooks comes out higher than the day's actual sales by exactly that amount, and now you have a reconciliation that will not close until you decide what the line is.
If the balance transaction type is payment_unreconciled, you have found something specific, and the usual advice about it is wrong. This is commonly described as found money: Stripe releasing funds that were sitting around, yours to book as miscellaneous income and forget. That framing skips the part that matters. In almost every case this money started out as a customer's, Stripe spent 90 days trying to give it back to them, and it landed with you because Stripe ran out of ways to reach them.
That changes what you should do with it in QuickBooks, and it changes what you should do outside QuickBooks.
Start a free trial and see how your Stripe balance activity posts into QuickBooks.
What Stripe actually created
Every movement in and out of your Stripe balance produces a balance transaction, and each one carries a type. Stripe's balance transaction types reference defines this one in a single sentence:
Created when a customer has unreconciled funds within Stripe for more than ninety days. This balance transaction transfers those funds to your balance.
Read that closely, because two details do the work. The funds were a customer's. And the transfer is what happens after ninety days, not what happens when the money arrives.
Two practical notes on finding these. Every balance transaction carries a source field holding the ID of the related Stripe object, so you can trace a mystery line back to what caused it through the API or Sigma. And Stripe's own guidance is that for accounting classification you should group on reporting_category rather than type, since type is granular in ways your chart of accounts is not.
Where the money came from
The funds come from a customer cash balance, which is what fills up when you accept bank transfers. A customer wires money to the account details Stripe gives them, and Stripe tries to match that transfer against something you are owed.
By default Stripe reconciles automatically, working through a specific order documented in its cash balance reconciliation guide. It first tries to match the bank transfer reference to a single invoice with that invoice number. Failing that, it tries the reference against a single incomplete PaymentIntent. Failing that, it looks for a group of between one and five invoices and PaymentIntents that add up to exactly the amount sent. If no exact group exists, it funds as many invoices as it can fully cover, oldest finalized first, then applies anything left to the oldest incomplete PaymentIntents.
An invoice only counts as awaiting funding if it is open and either has not passed its due date or went overdue within the last 365 days.
That is a lot of matching logic, and it succeeds most of the time. Unreconciled funds are what is left when it does not. Stripe's example is the ordinary one: "when a customer sends too much money and you haven't created any more PaymentIntents or Invoices for that customer." A customer overpays by sixty dollars. A customer pays an invoice you already wrote off. A customer sends a round number because that is what their accounts payable system does. The money is real, it is sitting in their cash balance with your Stripe account, and nothing is pointed at it.
Worth separating from a similar-sounding thing: a customer credit balance is not a customer cash balance. Credit balance is an invoicing feature representing a liability between you and the customer, applied automatically when an invoice finalizes. It never becomes a payment_unreconciled sweep. We covered that object separately in Stripe customer balance and applied credits in QuickBooks.
The 75-day and 90-day timeline
This is the part almost nobody writes down, and it is the reason the found money framing falls apart.
| Point in time | What Stripe does |
|---|---|
| Funds arrive unmatched | They sit in the customer's cash balance. You can still reconcile them against a new invoice or PaymentIntent, or refund them. |
| Ongoing | Stripe periodically emails you a reminder that you have unreconciled balances to review. |
| Day 75 | Stripe automatically attempts to return the funds to the customer's bank account. |
| If Stripe lacks the customer's account details | Stripe may contact the customer directly to arrange the refund. |
| Day 90 | If Stripe still cannot determine the customer's account information, it sweeps the funds to your Stripe balance. That sweep is your payment_unreconciled line. |
Stripe is explicit about whose responsibility this is: "You're responsible for making sure that you reconcile customer cash balances promptly and accurately. Reconcile outstanding customer balances quickly, rather than leaving them in your account for an extended period."
And then, on the sweep itself, one short sentence that most people never see: "Coordinate directly with the customer to make sure they receive the returned funds."
Why "found money" is the wrong frame
Put the timeline together and the sequence is unambiguous. A customer sent you money. It could not be matched to anything they owed. Stripe tried to give it back at day 75. Stripe could not find their bank details, or could not reach them. At day 90 Stripe stopped holding the bag and moved it to you, while telling you to sort it out with the customer.
Nothing in that sequence says the money is yours to keep. It says Stripe is no longer the one holding it.
There is a real accounting question here and a real legal one, and they are not the same question. In many jurisdictions, money you hold that belongs to someone you cannot locate is subject to unclaimed property rules, with reporting obligations and dormancy periods that have nothing to do with your revenue recognition policy. Whether that applies to your business, in your state or country, at your dollar amounts, is a question for your accountant and possibly your lawyer. It is not a question your Stripe to QuickBooks integration can answer, and any tool that books this straight to income without you noticing has quietly made the call for you.
The practical version: before you treat a payment_unreconciled credit as income, find out who sent it. The Stripe Dashboard keeps the list under Customers, filtered to remaining balances, showing which customers have unreconciled cash balances and the date Stripe intends to return them. A line that swept to you at day 90 was on that list for the previous three months.
What Acodei does with it
Acodei imports payment_unreconciled. It records the credit as other income in QuickBooks, usually on the daily summary deposit for that date, and it increases your Stripe holding balance. Because there is no sale behind it, there is no product or customer to attach, so it will typically land in an other income or default income account through the default product mapping.
Two pieces of surrounding mechanics are worth knowing.
The set of balance transaction types that sync at all is controlled centrally, so an uncommon type either syncs or it does not, based on configuration rather than on the individual transaction. And where an uncommon type lands in QuickBooks is yours to set, under Account Mapping, then Balance Transaction Mapping. That section stays hidden until you toggle Customize, which is why plenty of accounts never discover it. Types that have not been mapped will prompt you to map them.
If you want these sweeps landing somewhere other than a general income account, that mapping is where you change it, and doing it once beats reclassifying every occurrence by hand.
Other income, or a liability?
Acodei's documented behavior is to post the credit as other income. Whether it should stay there is a policy decision for your books, exactly like deciding whether a written-off invoice belongs in a bad debt account.
The two defensible treatments look like this.
Leave it in other income. Reasonable when you have investigated, the amount is trivial, the customer relationship is long over, and you have a documented policy for small unidentifiable receipts. This is the common outcome, and for a twelve dollar overpayment from 2024 it is very likely the right one.
Reclassify to a liability. Reasonable when you have identified the customer, when the amount is material, or when unclaimed property rules plausibly apply. You still owe this money to someone. Booking it as income overstates revenue and hides an obligation, and if the customer surfaces in six months asking about it, a liability account is where you want to have been keeping it.
The integration cannot make this call, because the input it would need is whether you managed to identify the sender. What it can do is put the amount somewhere visible with a date attached, which is what the daily summary line gives you.
Telling it apart from other unexplained credits
payment_unreconciled is one of several balance transaction types that add money with no sale behind them. If you are staring at an unexplained credit and have not confirmed the type yet, this is the field to check first, because the accounting differs sharply across them.
| Type | What it means | How to think about it |
|---|---|---|
payment_unreconciled | A customer's unmatched funds, swept to you after 90 days | Investigate the source before booking. May not be yours to keep. |
adjustment | Balance change outside the normal charge and refund flow, including dispute deductions and dispute reversals | Acodei adjusts the original transaction rather than posting a standalone entry. A won dispute is not automatically re-posted as a new payment, so a reopened invoice after a chargeback is expected. |
refund_failure | A refund your customer's bank could not process, returned to you | The refund did not happen. The original sale effectively stands. |
payout_failure and payout_cancel | A bank payout that failed or was canceled | No separate entry is posted. The planned bank transfer is not finalized and the funds stay in your Stripe holding account. |
reserved_funds and reserve_release | Stripe holding funds against risk, then releasing them | Nets to zero over time. A hold in one month and a release in the next is a timing artifact, not a loss. |
fee_credit_funding | Stripe fee credits applied to your balance | A positive Fee Credit line offsetting fees you were previously charged. |
transfer_refund | A Connect transfer to a connected account, reversed | Returns funds to your platform balance, offsetting the original transfer. |
currency_conversion | A debit or credit to your balance when a currency conversion is initiated | Look at both sides of the conversion before classifying either. |
Reserves and their release get fuller treatment in Stripe reserves and holds in QuickBooks Online. For the object underneath all of these, see Stripe balance transaction, and for the adjustment type specifically, Stripe balance adjustment.
How to stop it happening again
Unreconciled funds are preventable, and the prevention is cheaper than the cleanup.
Watch the remaining balances tab. Stripe shows you every customer with an unreconciled cash balance and the date it will be returned. Checking it monthly turns a 90-day surprise into a five-minute task while you still know what the payment was for.
Give bank transfer customers a reference they will actually use. The first and most reliable matching attempt is invoice number against bank transfer reference. Customers who type it correctly essentially never end up here.
Deal with overpayments when they happen. If a customer sends more than the invoice, the fix is to issue a new invoice against the surplus or refund it. Both are easy in week one and awkward in month three.
Act on the reminder emails. Stripe sends them precisely so this does not become a year-end problem.
Frequently asked questions
What does payment_unreconciled mean in Stripe?
It is the balance transaction Stripe creates when a customer has had unreconciled funds within Stripe for more than ninety days. The transaction moves those funds from the customer's cash balance into your Stripe balance. It is the end of a process that began with a bank transfer Stripe could not match to anything you were owed.
Is a payment_unreconciled credit really my money?
Not necessarily, and that is the point. Stripe attempts to return unreconciled funds to the customer at day 75, and only sweeps them to you at day 90 if it cannot determine the customer's account information. Stripe's own instruction on the sweep is to coordinate directly with the customer so they receive the returned funds. Treat it as money to investigate rather than money to recognize.
How does an unreconciled payment post in QuickBooks?
Acodei imports the credit and records it as other income, usually on the daily summary deposit for that date, which increases your Stripe holding balance. There is no sale behind it, so it uses your default product mapping rather than being attached to a customer or a product.
Can I change which account these land in?
Yes. Uncommon balance transaction types post through the product you set under Account Mapping, then Balance Transaction Mapping. That section is hidden until you toggle Customize. Setting it once is better than reclassifying each occurrence, and unmapped types will prompt you to map them.
Should I book it as income or as a liability?
That is an accounting policy decision rather than something the integration decides. If you have identified the customer, if the amount is material, or if unclaimed property rules may apply in your jurisdiction, a liability is the safer treatment because you may still owe the money. If you have investigated, the amount is trivial, and you have a documented policy for small unidentifiable receipts, other income is reasonable. Agree the treatment with your accountant rather than per transaction.
How do I find out which customer the funds came from?
Start in the Stripe Dashboard under Customers, filtered to remaining balances, which lists customers holding unreconciled cash balances along with the return date. For a sweep that already happened, the balance transaction's source field carries the ID of the related Stripe object, which you can retrieve through the API or join in Sigma.
Are these amounts usually large?
Usually not. Typical cases are overpayments and stray transfers, so the amounts tend to be small relative to your volume. The reason to care is not the size of any one line. It is that the line is income in your books that may belong to somebody else, and that the same underlying problem, bank transfers that do not match anything, tends to recur until the reference process gets fixed.
The point
payment_unreconciled is the tidiest possible ending to an untidy story. A customer sent money nobody could match. Stripe held it for 75 days, tried to send it back, could not reach them, waited out the rest of the 90, and handed it to you with a note saying coordinate with the customer.
In QuickBooks it arrives as a small other income line on a daily summary, easy to accept and move past. It is worth the extra two minutes: check the remaining balances tab, work out who sent it, and then decide with your accountant whether it is revenue or something you are holding.
The mechanical part, getting the line into QuickBooks on the right date in an account you chose, is the part that should be automatic.
Start a free trial and get your Stripe balance activity, including the uncommon types, posting into QuickBooks on its own.
Automate your Stripe to QuickBooks sync
Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.
How Acodei handles this in your stack
Stripe QuickBooks Integration
See how Acodei syncs Stripe payments, fees, refunds, invoices, and payouts into QuickBooks Online automatically.
Or go straight to a capability
Advanced Product Mapping
Map Stripe products to QuickBooks with rule-based logic on product ID, price ID, metadata, and account. Set rule priority and extend mapping to refunds and fees.
Automated Invoice Sync
Bring Stripe invoices into QuickBooks and auto-apply payments and credit memos, with numbering, invoice matching, and quantity tracking to cut double-entry.
Multi-Currency Mastery
Sync Stripe transactions across currencies with automatic exchange rate handling, currency-specific customer records, and invoice-level multicurrency.
Class Mapping
Map Stripe products to QuickBooks classes for scalable categorization and multi-entity reporting, enabling precise insights without manual effort.
Historical Data Import
Backfill historical Stripe data into QuickBooks by month range. Preview volume and cost before syncing so reporting starts from a complete baseline.
How to Connect Stripe to QuickBooks Online
Connect Stripe to QuickBooks Online in minutes. Acodei links both accounts with secure OAuth and syncs payments, fees, refunds, and payouts automatically.
Reconcile Stripe Payments in QuickBooks
Reconcile Stripe in QuickBooks Online automatically. Acodei splits out fees, matches payouts to deposits, and keeps every charge audit-ready.
Get more operational finance guides like this one
We will only send high-value product and finance content.