Vendor payments coded as expenses instead of bill payments in QBO
When vendor bills stay "unpaid" even though the money left the bank
You open a new QuickBooks Online file, pull an A/P Aging Summary, and see a vendor sitting in 90+ days with a $750 balance. You ask the client about it and they say, "Oh, we paid that months ago. I see it on the bank statement."
You dig into the Vendor Balance Detail and there it is: an open bill for $750. Then you hop over to the bank register and find a check to the same vendor for $750, coded straight to Office Supplies. No Bill Payment, no link to A/P. The bill is still "unpaid" and the P&L has the expense twice.
This is one of those quiet messes that doesn’t scream at you, but it distorts both the P&L and the balance sheet:
- A/P is overstated because the bill is still open.
- Expenses are overstated because the payment was booked directly to an expense account instead of clearing A/P.
Multiply that by a few years and a handful of vendors, and you’ve got a file where nobody trusts the payables or the expenses.
Where this problem hides inside QuickBooks Online
The pattern usually shows up when someone is paying bills from the bank feed or the bank register instead of using the Pay Bills workflow.
Here’s the basic anatomy of the issue in QBO:
- A bill is entered for a vendor (e.g., Vendor XYZ, $750, dated 4/10/2025).
- A few days later, a check or Expense is recorded from the bank account to the same vendor for $750, coded to an expense account like Office Supplies.
- The transaction type is Check/Expense/Credit Card Charge, not Bill Payment.
- The bill remains open in A/P; the payment is not linked to any bill.
You’ll see it most clearly by combining vendor reports with bank/credit card detail:
- Vendor Balance Detail: shows open bills and any vendor credits that are still unapplied.
- A/P Aging Summary: highlights vendors with old balances that "should" be paid.
- Transaction Detail by Account (filtered to bank and credit card accounts): shows checks/expenses by payee.
A realistic example:
- Open Bill: Vendor XYZ, Bill #123, $750, 2025-04-10, open balance $750.
- Bank Register: Check #456, 2025-04-15, Payee = Vendor XYZ, Amount = $750, Account = Office Supplies.
- The bill is still open; the check is not a Bill Payment and has no link to the bill.
That’s a textbook duplicate expense + overstated A/P.
Common red flags:
- Vendor has old open bills, but the client insists "we don’t owe them anything."
- Vendor Balance Detail shows multiple open bills and a pile of unapplied vendor credits.
- Bank feed shows lots of checks/expenses to the same vendors that also have bills.
- A/P Aging is large, but cash flow doesn’t match the story.
- Transaction list for a vendor shows a mix of Bills and direct Expenses/Checks for similar amounts and dates.
Run Vendor Balance Detail, click into a vendor with old open bills, then from that vendor’s transaction list sort by amount. Matching bill amounts and checks/expenses for the same figures will jump out quickly.
What happens if you just live with it
The damage inside your numbers
If you ignore this, you end up with:
- Overstated expenses: Every time a bill is entered and then paid via a direct Expense/Check, the cost hits the P&L twice. That can materially distort margins, especially for recurring vendors (rent, utilities, contractors).
- Overstated A/P: The bill never gets cleared, so payables look higher than they really are. That affects working capital analysis, lender conversations, and any cash flow modeling.
- Messy vendor credits: When someone tries to "fix" it by entering vendor credits or adjusting entries, you can end up with large unapplied credits that don’t tie to reality.
For tax work, this can mean overstated deductions in one year and strange corrections later. For advisory work, it means you’re giving advice on bogus expense levels and fake liabilities.
The damage in client conversations
This is also a trust issue. When you tell a client they owe $25,000 in payables and they swear they’ve paid most of it, someone is going to look wrong.
If you shrug and say, "Well, QuickBooks says you owe it," you’re basically admitting the system is more important than the truth. On the other hand, if you can point to specific bills and matching payments that were mis-coded, you look like the person who actually understands what happened.
Once you’ve seen this pattern a few times, you start to recognize the vendors where it’s most common:
- Utilities and subscriptions that are sometimes entered as bills, sometimes paid directly from the bank feed.
- Contractors and professional services where the office staff enters bills, but the owner pays from the bank app and books it as an expense.
- Landlords and loan payments where someone tried to "be proper" by entering bills, then reverted to paying straight from the bank feed.
How to unwind and prevent mis-coded vendor payments
Here’s a practical way to tackle this during a cleanup.
-
Identify target vendors
Start with A/P Aging Summary and Vendor Balance Detail. Focus on vendors with:- Old open bills that "should" be paid.
- Large or numerous unapplied vendor credits.
-
Pull matching bank/credit card activity
For each target vendor, run a Transaction Detail by Account report filtered to:- Bank and credit card accounts.
- Payee = that vendor.
- Date range around the open bills (e.g., 30 days before to 60 days after the bill date).
-
Match payments to bills
Look for direct Checks/Expenses/Credit Card Charges where:- The amount is equal or very close to the open bill (or sum of a couple of bills).
- The date is reasonably close to the bill date or due date.
- The transaction type is not Bill Payment.
-
Decide the correction method
Once you’re confident a payment was meant to pay a bill:- Reclass the payment from the expense account to Accounts Payable, with the vendor name on the line.
- Then use Pay Bills (or the bill’s "Make payment" link) to apply that A/P-coded payment to the open bill.
- If the expense was already deducted in a closed tax year, you may need to handle it with a current-year adjustment instead of retroactively changing history.
-
Clean up unapplied credits
For vendors with large or numerous unapplied credits:- Determine if credits are legitimate (returns, discounts) or just prior "fixes" that never got applied.
- Apply valid credits to open bills.
- For bogus credits, reverse them with a journal entry or correcting transaction, documenting your reasoning.
-
Standardize the payment workflow
Show the client’s team how to always pay vendor bills using the Pay Bills screen, not by coding bank feed items straight to expense accounts when a bill exists.
Be deliberate about how far back you correct. For very old years that are tax-closed or immaterial, you may decide to leave history as-is and start clean from a chosen date, with a one-time A/P adjustment and clear documentation in your workpapers.
Building this into your firm’s standard review
This shouldn’t be a one-off hero move you do on particularly messy files; it belongs on your standard diagnostic checklist.
A simple pattern that works well:
- During intake or pre-quote review, scan A/P Aging and Vendor Balance Detail for vendors with big or weird balances.
- For those vendors, quickly scan bank/credit card transactions for matching amounts and dates.
- Use a diagnostic tool like CleanupOwl to automatically surface vendors where payments to expense accounts closely match open bills or where unapplied credits are unusually large or numerous. That gives you a ready-made list to investigate, instead of hunting manually.
- Document your decisions: which vendors you corrected, which you left alone due to closed years or immateriality, and any assumptions.
CleanupOwl can hand you the list of suspect vendor payments it used to take an hour to build by hand, so your team can spend their time deciding how to fix things instead of just finding them.
The patterns you’ll keep seeing in client files
| Situation | What you see in QBO | Risk if you shrug it off |
|---|---|---|
| Single bill, single matching check | Open bill for $750; separate check for $750 to same vendor coded to Office Supplies; dates within a week | Duplicate expense and overstated A/P for that vendor; easy to fix but misleading until you do |
| Multiple small bills, one large payment | Three open bills for $250 each; one $750 Expense to the vendor coded to Repairs & Maintenance | Triple-counted expense and fake liability; vendor appears unpaid even though the bank shows otherwise |
| Recurring vendor with mixed workflows | Some months entered as Bills and paid properly; other months paid directly from bank feed as Expenses | Inconsistent A/P, hard-to-trust aging, and uneven expense patterns that confuse trend analysis |
| Large unapplied vendor credits | Vendor Balance Detail shows several vendor credits totaling $2,000 with no matching open bills | A/P understated or overstated depending on prior "fixes"; future application of credits may distort current-period expenses |
| Clean vendor history | All payments are Bill Payments linked to specific bills; no large or numerous unapplied credits | A/P and expenses are reliable; minimal cleanup needed beyond routine review |
In practice, you’ll triage these. The obvious one-to-one matches and big unapplied credit balances get fixed first. The messy, mixed-history vendors may warrant a cutoff date where you clean forward and document why you’re not reconstructing every prior year.
For smaller mismatches or very old items, you may decide that the cost of perfect cleanup exceeds the benefit, and instead make a single adjustment to align A/P with reality and move on.
Before reclassing historical payments or clearing old bills/credits, confirm whether those periods are tied to filed tax returns, audits, or lender covenants. Coordinate with the tax preparer and document any adjustments that impact previously filed periods.
Making this part of your cleanup playbook
This issue is sneaky because the bank is right and the client feels "caught up," but the books quietly disagree. Giving vendor payments a dedicated review line in your cleanup process protects you from bad A/P, inflated expenses, and awkward conversations later.
For your firm, this is one of those high-leverage checks: once you know how to spot it, you can review a file quickly and decide whether you’re dealing with a few isolated mistakes or a systemic workflow problem.
Tools like CleanupOwl can run this kind of check across the whole file before you even start, flagging vendors where payments to expense accounts closely match open bills or where unapplied credits are piling up. If you’re a business owner, this is the kind of question you can ask your accountant: "Are you checking whether my vendor payments are actually clearing my bills, manually or with a diagnostic tool like CleanupOwl?"
When you bake this into your standard diagnostics, you stop treating A/P cleanup as guesswork and start treating it as a repeatable, documented process that junior staff can follow and seniors can review in minutes.
Ready to run deeper QuickBooks diagnostics?
Use CleanupOwl to automatically flag issues like this before you quote or start your next cleanup project.
Start Free Trial