Stripe Balance Transaction Mapping in QuickBooks
Balance Transaction Mapping is not where every uncommon Stripe type lands. The four fates of a balance transaction type, and which ones the screen governs.
Somewhere in your Acodei account there is a screen called Balance Transaction Mapping. If you have ever asked where a reserve hold, a Connect transfer, a fee credit or a Stripe Capital repayment ended up in QuickBooks, that screen is the answer you were pointed at.
It is also hidden by default, which is why plenty of accounts never find it.
Here is the part that is harder to find written down anywhere: Balance Transaction Mapping is not where every uncommon Stripe type lands. Several of the types people go looking for on that screen are never going to appear there, because they are handled somewhere else entirely, and one of them never reaches your books at all. Knowing which is which turns a twenty-minute hunt into a ten-second answer.
Want the uncommon types landing in accounts you chose instead of accounts you inherited? Start a free trial.
What the screen is, and where it is
Every movement of money in or out of your Stripe balance produces a balance transaction. Charges and refunds are the obvious ones. The rest of the list is longer than most people expect: fees, tax on fees, reserves, transfers to connected accounts, top-ups, advances, currency conversions, Climate contributions, fee credits.
Balance Transaction Mapping is the Acodei screen where you decide which QuickBooks product, and therefore which account, an uncommon type posts against. It lives under Account Mapping, and it stays hidden until you toggle Customize. That single detail is responsible for a large share of the "I cannot find where to map reserves" support conversations.
During payout and daily summary processing, each type's aggregated amount posts as a line item using the product you mapped. A type you have not mapped prompts you to map it rather than being guessed at.
Two questions that look like one
The mistake that makes this confusing is treating "will this show up in QuickBooks" and "which account does it hit" as the same question. They are resolved by two different mechanisms.
Whether a type syncs at all is governed by an allowed transaction types table. Each type in it belongs to a display group, and new types are enabled by adding them to that table. That is how advance and advance_funding, the pair behind instant payouts, arrived under the group "Advance Funding", and how fee_credit_funding arrived under "Fee Credit".
Where an allowed type lands is the mapping decision, made per type on the Balance Transaction Mapping screen.
So a type can be absent from your books because it was never allowed, or present but in the wrong account because it was never mapped. Those have different fixes, and the second one is the only one the mapping screen can solve.
If you are reconciling against Stripe's own reports rather than against your books, there is a third field in play, and we cover it separately in reporting category versus type.
The four fates of an uncommon type
This is the useful frame. For any balance transaction type that is not a plain charge or refund, exactly one of four things happens.
Fate 1: it never arrives
Some types are not in the allowed list, and some are not balance transactions at all.
The clearest example of the second case is Stripe's "external asset" line, which shows up in balance reporting but represents funds that never flowed through Stripe. It is not a Stripe balance movement, so there is nothing to import. If you marked an invoice paid outside Stripe, that reaches QuickBooks as an invoice payment, not as a balance transaction.
It is also worth knowing that Stripe's type list is longer than any integration's mapping screen. Stripe documents reserve_hold and reserve_release as separate counterparts to reserved_funds, plus climate_order_purchase, climate_order_refund, revenue_share, anticipation_repayment, tax_fund and the whole Issuing family. Seeing a type in Stripe's balance transaction types reference is not the same as it being a type your sync handles.
Fate 2: it has dedicated handling, and bypasses the mapping screen entirely
This is the fate people most often waste time on, because they go looking for a mapping row that was never going to exist.
Stripe fees. stripe_fee covers processing fees and product fees for Radar, Billing, Connect and Identity. It posts using the mapped "Stripe Fees" product, which Acodei creates and maps during onboarding rather than on the Balance Transaction Mapping screen. stripe_fx_fee, Stripe's currency conversion fee, is treated as part of that same fee total. So is tax_fee, the tax Stripe collects on its own fees. So is network_cost, a fee a payment network charged that Stripe passed through. Four distinct Stripe types, one QuickBooks destination, configured in a different place.
Top-ups. When you move money from your bank into your Stripe balance, topup is handled by a dedicated job on topup.succeeded that records a QuickBooks Transfer from the bank account into the Stripe holding account. It is the mirror image of a payout, and it respects multibank account mapping. No mapping row, no manual entry.
Cancelled and failed payouts. payout_cancel and payout_failure are handled by payout logic rather than by mapping. The bank Transfer or Deposit is voided or never finalized, and the funds stay in the Stripe holding account. Your bank shows no deposit and QuickBooks agrees with it.
Fate 3: it routes through Balance Transaction Mapping, using the product you chose
This is what the screen is actually for.
Reserves. reserve_transaction is the Connect case, where a connected account went negative and Stripe temporarily reserved part of your balance. reserved_funds is the risk case, where Stripe holds part of your own funds and returns them later. payout_minimum_balance_hold and its release behave the same way. When holds or releases appear among a payout's balance transactions or on a daily summary, they are aggregated and posted as line items using the product you mapped. Holds and releases net to zero over time, so a hold in one period released in the next is a timing artifact rather than a loss. The full accounting treatment is in Stripe reserves and holds in QuickBooks.
Advances. The instant payout itself is recorded as a Transfer. Stripe's recoup lands on the next payout, appearing on an Undeposited Funds setup as a negative Advance line through Balance Transaction Mapping. The instant payout fee is captured on the daily balance summary with the rest of that day's fees. That flow is worked through in recording Stripe instant payouts.
Fee credits. fee_credit_funding aggregates into payout and daily summary lines like the other balance types. A positive "Fee Credit" line offsets Stripe fees you were charged earlier.
Climate contributions. contribution is treated as an expense out of the Stripe balance and posts using the Stripe Fees account or Other Expense. There is no separate mapping for Climate contributions specifically today, which is why the practical fix is reclassifying in QuickBooks. That distinction is drawn out in Stripe Climate contributions in QuickBooks.
Connect transfers. transfer, transfer_refund, transfer_cancel and transfer_failure are imported, but there is typically no dedicated mapping for them, so they use defaults. A platform doing frequent transfers may want them in a named expense account, and today that means reassigning after sync.
Disputes and adjustments. This one is worth stating carefully, because two true things about it sound contradictory. Disputes reach your books through Balance Transaction Mapping, landing on the daily balance summary or on the payout deposit depending on your settings. What they do not produce is a per-dispute journal entry or an itemized expense line. That is because adjustment, the type behind disputes, dispute reversals and failed refunds, also reverses the original record: a disputed charge causes the linked QuickBooks payment to be undone, which reopens the invoice as unpaid.
So the money reaches the summary through the mapping, and the sale is unwound at the source. An open invoice after a chargeback is the expected outcome, not a sync failure. A dispute you later win is not automatically re-posted as a new payment either, so recording the recovered money is a manual step.
Fate 4: it routes through the mapping screen, but falls back to a default
payment_unreconciled is the one to know. Stripe creates it when a customer has unreconciled funds sitting in Stripe for more than ninety days, and moves those funds to your balance. There is no sale behind it and no customer to attach it to, so it falls back to your default product rather than to a type-specific mapping. It usually appears on that date's daily summary deposit as other income.
If you would rather it landed somewhere other than a general income account, that is exactly the kind of thing the mapping screen is for. We go into what it means and how to treat it in unreconciled payments in QuickBooks.
What "unmapped" actually does
An unmapped type is not silently guessed at, and it is not silently dropped. Acodei surfaces an error naming the type, in the form "[Balance transaction type] detected, please turn on [transaction type] in Balance Transaction Mapping."
The remediation, per Acodei's uncommon transaction mapping documentation, is short:
- Open the Account Mapping page and find the Balance Transaction Mapping section, toggling Customize if it is not visible.
- Assign the type a product. You can point it at a new chart of accounts entry, which is usually the right move for something like a financing repayment that deserves its own liability account, or at an existing product such as sales, refunds or contributions.
- Save. From there the balance transactions process in the daily balance summary or upon payout.
If a payout failed to sync because of the mapping error, go back to the Payouts tab in the Data Feed and resync it once the mapping is corrected.
The choice of account is a decision for you and your accountant rather than one the integration makes for you. That is deliberate. An integration guessing at an account for a Stripe Capital repayment is how financing ends up inside cost of goods sold.
Where the documentation stops
One type deserves a plain statement rather than an answer.
connect_collection_transfer is what Stripe creates when a connected account has been negative for 180 days and Stripe transfers a portion of your balance to zero out that account. That much is Stripe's own documented behaviour, and it represents a real loss of platform funds.
What happens to it in QuickBooks is a different question, and the honest answer is that Acodei's documentation does not currently state one. During code verification in August 2026 no implementing handling was found in the line builders, the allowed type seeders, or Balance Transaction Mapping. The treatment previously described could not be confirmed, so it is flagged unverified rather than documented.
We are telling you that instead of describing a treatment, because a permanent loss of funds is precisely the kind of number you should not book on the strength of a guess. If you are carrying negative connected balances, reconcile that line against Stripe directly and talk to your accountant about where it belongs.
Frequently asked questions
Where is Balance Transaction Mapping in Acodei?
It is a section of the Account Mapping page, hidden until you toggle Customize. That is the single most common reason people report they cannot find it.
Why is there no row for Stripe fees on the mapping screen?
Because fees do not route through it. stripe_fee, stripe_fx_fee, tax_fee and network_cost all post using the mapped "Stripe Fees" product, which is configured during onboarding. The mapping screen handles uncommon types such as reserves, advances, fee credits and Connect transfers.
Why is there no per-dispute entry in QuickBooks?
Because there is not supposed to be one. Disputes reach your books through Balance Transaction Mapping, onto the daily balance summary or the payout deposit, rather than as per-dispute journal entries. Separately, the original sale is reversed, so a disputed charge reopens the invoice as unpaid. Both of those are working as designed.
What happens if I never map a type?
You get an error naming the type and asking you to turn it on in Balance Transaction Mapping, and the affected payout will not sync until you do. Map the type, save, then resync the payout from the Payouts tab in the Data Feed.
Do I have to map each occurrence?
No. Mapping is per type, not per transaction. Map reserves once and every subsequent hold and release posts to that account automatically.
Can I map Stripe Climate contributions to their own account?
Not through a dedicated mapping today. Contributions post as an expense using the Stripe Fees account or Other Expense, so moving them to a charitable donations or sustainability account is a reclassification in QuickBooks.
Which types are actually enabled on my account?
This post deliberately does not publish a roster, because a list that drifts is worse than no list at all. If you are chasing a specific type, the fastest answer is what your own Data Feed shows for a payout that contained it, and what the Balance Transaction Mapping section offers you rows for.
The short version
Balance Transaction Mapping is a real answer to a real question, but it is a narrower answer than its reputation suggests. Fees have their own product, set at onboarding. Top-ups and failed payouts have dedicated handling. Some types never arrive at all. What is left, reserves and advances and fee credits and Connect transfers and disputes, is what the screen is for, and mapping those once is the whole job.
Acodei posts your Stripe balance transactions into QuickBooks Online against accounts you chose, with the uncommon types mapped explicitly rather than left to guesswork, and the unverified ones flagged rather than invented. Start a free trial, or read the complete guide to Stripe payout reconciliation first.
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 and currency-specific customer records. Our team enables multicurrency on request, and zero-decimal currencies such as JPY are not supported.
Class Mapping
Map Stripe products to QuickBooks classes for scalable categorization and multi-entity reporting. Class tracking requires QuickBooks Online Plus or Advanced.
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.