The QuickBooks Chart of Accounts a Stripe Business Needs

Stripe does not send you revenue. It sends you a balance made of about forty kinds of movement, only one of which is a sale. Which QuickBooks accounts...

Acodei Content Team · 9/16/2026 · 14 min read

Nobody sets up a chart of accounts twice. You do it once, in an afternoon, before there is any data in the file, and then you live inside it for years. For a business that runs on Stripe, that afternoon decides more than it looks like it does, because Stripe does not send you revenue. It sends you a balance, and a balance is made of about forty different kinds of movement, only one of which is a sale.

The failure mode is not dramatic. Nothing errors. Six months in, your profit and loss is wrong in a way that no single transaction explains, your accountant asks what the 4,300 sitting in a suspense account is, and the honest answer is that Stripe sent something in March that had nowhere to go.

Start a free trial and see your Stripe activity land in the accounts you chose.

The list is shorter than you think, and less optional

Most chart of accounts advice for Stripe businesses is a list of accounts somebody found useful. That is the wrong shape for the problem. The accounts a Stripe business needs are not a matter of taste, because three configuration choices determine most of them before you get an opinion:

  1. Which account stands in for your Stripe balance.
  2. Whether you sync Stripe invoices.
  3. Where Stripe fees are recorded.

Get those three right and the rest of the chart is ordinary bookkeeping. Get the first one wrong and you are looking at a migration rather than an edit.

Account one: the thing standing in for your Stripe balance

Everything else is downstream of this, so it goes first.

Money from a Stripe sale does not arrive in your bank account. It arrives in your Stripe balance, sits there for a day or two with other sales, and then leaves as a payout, net of fees and refunds. Your books need an account that holds money during that gap. In Acodei this is called the holding account, and it is the QuickBooks account that stands in for the Stripe balance: every synced sale is deposited into it, and every payout moves money out of it into the real bank account.

There are two ways to fill that role, and they are genuinely different animals.

Undeposited Funds. QuickBooks ships with this account. It is designed for exactly this pattern: payments wait in it, and a deposit sweeps them into the bank as one line. Under this mode a Stripe payout arrives in QuickBooks as an itemized Deposit, with each charge, refund and fee listed inside it.

A regular asset clearing account. You create this one yourself, as an Other Current Asset. Under this mode a payout arrives as a single Transfer for the net amount, and the composition lives on the individual sales records instead.

Both reconcile. What separates them is what you can check, and how often. With a clearing account, the QuickBooks balance should equal the Stripe balance, so you can compare the two daily and catch drift within a day. With Undeposited Funds you match each payout Deposit against the bank feed and reconcile the bank account, and that is the whole job. Acodei does not support balance-reconciling the Undeposited Funds account itself, and the reason is structural rather than a missing feature: sales sit in the account until the payout sweeps them, and some items are only added at deposit time, so a point-in-time comparison against the Stripe balance is not a meaningful number.

There is one more thing the itemized Deposit costs you, and it is worth knowing before you pick it. Because the Deposit lists what it contains, every transaction inside it has to already exist in QuickBooks before the payout can be written. If one charge is missing or errored, the payout fails with a mismatch error rather than posting a partial deposit. A clearing account has no such dependency, which is why higher-volume and multicurrency setups usually land there.

Treat this as a decision rather than a default, because changing it later is a supported migration with a dedicated job behind it, not a settings toggle. The full account of what switching involves is its own subject.

A detail that catches multi-entity businesses: the holding account is resolved per transaction, and the resolution can go three levels deep. The connection's default account is the base case. With multiple holding accounts enabled, each connected Stripe account maps to its own. And with multicurrency also in play, the mapping can resolve further by the transaction's currency, falling back to the account-level holding account when no per-currency row exists. If you expect to add a second Stripe account or a second currency later, the shape of this part of your chart is worth thinking about now.

Account two: where Stripe fees go, and the product that points at it

Stripe fees are the second account you will be asked for, and the question arrives in a form that hides what it is really asking.

During onboarding, Acodei asks which QuickBooks account should receive Stripe fees. When you answer, it creates a QuickBooks product called "Stripe Fees - Acodei" and maps it to that account. Every fee is then assigned to that product. This matters because of the indirection: the account is not attached to the transaction, it is attached to a product, and the product is what your fee lines point at.

Most people pick an expense account here and are done. Two things are worth knowing anyway.

The first is that fees do not necessarily appear as an expense at all. Depending on your holding account and whether you sync invoices, Stripe fees can show up three ways: as a line item on the Sales Receipt, as a line item on the Bank Deposit, or as a Purchase or Expense. The Bank Deposit option exists only with Undeposited Funds. The expense form is the default with a clearing account, and is available under Undeposited Funds only when Invoice Sync is enabled. If you run a clearing account with Invoice Sync on, fees can only be shown as an expense, because putting them on the invoice would make the invoice total disagree with the payment.

So the shape of your fee reporting is decided by settings you probably chose for other reasons. If you want gross revenue on every sales receipt and fees as a clean operating expense, that is a specific combination, not a preference you can express directly.

The second thing is that this mapping is load-bearing in a way that ordinary chart of accounts entries are not. A fee product that has been deleted, broken or left unmapped does not degrade quietly and it does not guess. Before writing a record, Acodei checks the mapped fee product and fails with a specific message rather than writing a bad one. There are three cases, and they are worth reading as a list of the ways a chart of accounts cleanup can go wrong: no fee product mapped at all, a product that exists but has no income or expense account attached, and a product that no longer exists in QuickBooks. Each returns its own remediation message, and the check retries up to three attempts before the failure is recorded as final.

That is good behavior. It is also the single best argument for not tidying up your chart of accounts without first checking what points at it.

One practical note for anyone reorganizing an existing file: changing the fee method does not rewrite history. Transactions that already synced keep the treatment they were given, and moving them to the new method means resyncing them.

Fees are also not one category. They are split into transactional fees, which are the per-charge cut, and non-transactional fees, which are standalone charges such as Billing, Radar and Stripe Tax product fees. Those two can be routed independently, so a business that wants its processing cost netted against revenue and its Stripe software subscriptions sitting in a software expense account can have both. If fee reporting is the thing you actually care about, the reconciliation guide is the place that subject lives.

Account three, conditionally: accounts receivable

If you raise invoices in Stripe and want to track what is owed in QuickBooks, Invoice Sync is the feature that does it, and Acodei's documentation describes it as built for businesses that generate invoices in Stripe while managing financial tracking, including accounts receivable and outstanding invoices, in QuickBooks. It is available on paid plans.

Accounts Receivable already exists in every QuickBooks file, so this is less about creating an account than about knowing whether yours will be used. By default a successful Stripe charge becomes a Sales Receipt, which is a sale and its payment in one record and never touches A/R. A charge becomes a payment applied to a QuickBooks invoice only when it belongs to a Stripe invoice Acodei has already synced. So without invoice sync, your Stripe revenue bypasses receivables entirely.

This is worth settling early because it changes what your aging report means. A file where Stripe sales bypass A/R entirely has an aging report that describes only the invoices you raise by hand, which is fine as long as everyone reading it knows that.

The accounts Stripe adds without asking

Here is the part that generic chart of accounts advice misses completely.

A Stripe account does not only produce charges, refunds and payouts. It produces balance transactions, and the type list is long. Reserves. Adjustments. Top-ups. Transfers. Fee credits. Climate contributions. Network costs. Connect application fees. Capital repayments. You do not meet these all at once. You meet them one at a time, usually on a day when the payout does not tie out.

Stripe publishes the full list of balance transaction types in its API reference, and reading it once is a genuinely useful thirty minutes for anyone about to design a chart of accounts around Stripe.

These do not route by account directly. Each type is bucketed by day and currency and becomes a line item, and the QuickBooks account it lands in is determined by the product you map to that type in Balance Transaction Mapping. The mapping itself is its own subject, but the chart of accounts consequence is simple enough to state here: every type your Stripe account can emit needs somewhere to go, and you do not find out which ones those are by planning. You find out by looking.

Two of them deserve accounts you would never think to create:

A liability account, if you use Stripe Capital. A financing advance is not revenue and the repayments are not an expense. Stripe withholds repayments from your payouts, so the money never appears in your bank feed as a distinguishable event. Capital has its own accounting shape and it needs a liability account to live in.

A second holding account, if you use Stripe's financial accounts. Money movement through a Stripe financial account uses a separate Storage Holding Account rather than the ordinary one, and it is required when the connection is eligible for it. Financial account activity is genuinely a different ledger, not more of the same one.

The general rule: if Stripe can move money in a way that is not a sale, a refund or a payout, that movement needs an account, and the account has to be the right kind. Booking a reserve as an expense makes your costs look higher and your assets look lower, and both are wrong, and neither shows up as an error.

Types, detail types and names

Three mechanical points that cause an outsized amount of trouble.

Account type is not cosmetic. QuickBooks uses the type and detail type to decide which reports an account appears on and which transaction forms will offer it. Intuit's own primer on the chart of accounts is worth reading before you create anything. A clearing account created as an Other Current Asset behaves correctly. The same account created as a Bank account also works, and some people prefer it because it makes the register easier to reach, but it will then show up in cash balances and in places where you may not want it. Pick deliberately, and know what the detail type is doing underneath while you do it.

Names should say what the account is for, not what it is. "Stripe Clearing" is a better name than "Clearing Account 2" for the same reason that variable names matter: the person reading it in eighteen months will not have the context you have today. If you run more than one Stripe account, the name should identify which.

Keep the list short. The instinct when facing an unfamiliar transaction type is to create a new account for it. Resist it past the point of usefulness. Sub-accounts under a single Stripe parent read better on a P&L than nine siblings scattered alphabetically, and a chart with thirty revenue accounts is not more precise than one with six. It is just harder to read.

The order to build it in

If you are setting up from scratch, this sequence avoids the rework:

  1. Decide the holding account mode first. Undeposited Funds or a clearing account. Everything else bends around it, and it is the expensive one to change.
  2. Create the clearing account, if that is your choice. Other Current Asset, named for the Stripe account it represents.
  3. Confirm the bank account the payouts land in. This is the real bank account, and it is a separate mapping from the holding account. The two get conflated constantly. The holding account represents the Stripe balance; the deposit account is where the payout actually arrives.
  4. Pick the fee account. Then check, once, that the fee product Acodei created points at it.
  5. Decide on invoice sync, because it determines whether A/R is part of your Stripe flow at all.
  6. Leave room for the rest. Do not pre-create accounts for balance transaction types you have never seen. Map them as they appear, which is also when you will know what they actually are.

Then, a month in, run the month-end close once deliberately. The accounts you are missing announce themselves the first time something does not tie out, and that is a much cheaper way to find them than planning for forty transaction types you may never meet.

Frequently Asked Questions

Do I need a separate clearing account for Stripe, or can I post straight to my bank?

You need one. Posting Stripe sales straight to the bank account means your books show money arriving on the day of the sale, when the bank shows it arriving two days later in a batch with the fees already removed. The bank reconciliation then cannot work, because no QuickBooks transaction matches any bank line. The clearing account exists to absorb exactly that timing difference.

Should the Stripe clearing account be a Bank account or an Other Current Asset?

Other Current Asset is the conventional answer and the one that keeps your cash figures honest, since the money is not in a bank. Some bookkeepers prefer a Bank type because QuickBooks gives bank accounts a more usable register and makes the Reconcile tool available on them. Both work. The thing to avoid is picking one without deciding, then discovering later that your cash on hand has been overstated by the Stripe balance all year.

What account do Stripe fees go to?

Usually an expense account, and a dedicated one reads better than lumping fees into general bank charges. The detail worth knowing is that the account is reached through a QuickBooks product rather than being set on the transaction: Acodei creates a product called "Stripe Fees - Acodei" at onboarding and maps it to the account you choose. Whether the fee then appears as an expense or as a line item on a sales receipt or deposit depends on your holding account and invoice sync settings.

How many accounts should a Stripe business have in total?

Fewer than the internet suggests. A holding account, the bank account payouts land in, a fee expense account, and your ordinary revenue accounts will carry ordinary Stripe activity. Add a liability account if you take Stripe Capital, and add accounts for balance transaction types as you actually encounter them rather than in advance.

Can I change these accounts later?

It depends which one. Fee accounts and mappings for individual transaction types can be changed, though existing records keep the treatment they were given and need a resync to move. The holding account is the exception: switching between Undeposited Funds and a clearing account is a migration that reverses and re-books affected records, not a setting you flip.

What happens if I delete an account that Stripe activity is mapped to?

The sync stops for whatever pointed at it, visibly. A fee product that no longer exists, or that exists with no account attached, fails the pre-write check with a message naming the fix, and retries up to three times before the failure is final. Nothing gets silently posted somewhere else. That is the behavior you want, but it does mean a chart of accounts cleanup on a live file should start by checking what is mapped where.

The short version

The chart of accounts for a Stripe business is not a longer version of a normal one. It has one account that does not exist in most files, the holding account standing in for the Stripe balance, and that single choice determines the shape of every payout record, which reconciliation method you can run, and how often you can check your work.

Pick that one carefully, name things for the person who reads them later, and let the unusual transaction types earn their accounts by showing up. That is a chart you can still read in three years.

Start a free trial or see how Acodei maps Stripe activity into QuickBooks.

Share

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

Get more operational finance guides like this one

We will only send high-value product and finance content.