What Accounts Payable Actually Is
Accounts payable is the running tally of bills your business has received but hasn't paid yet. It's one of the foundational terms in the accounting glossary: a current liability on the balance sheet, not an expense on the P&L. The expense already hit the books when the bill was entered; AP just tracks the unpaid balance until you cut the check or send the ACH.
AP as a current liability
AP shows up under current liabilities because the bills are due within twelve months, usually within thirty. A vendor invoices you for $4,200 of consulting work in March. The work was done, so you owe them. Until you pay, that $4,200 sits in AP. The day you pay, AP drops by $4,200 and Cash drops by $4,200. The expense was already recognized when the bill landed; the payment is just the second half of the cycle.
Think of AP as a holding tank between "we got the bill" and "we paid it." Some bills sit there for two days. Some sit for ninety. The aging report tells you which.
Where it sits on the balance sheet
On a standard balance sheet, you'll see AP near the top of the current liabilities section, usually right under accrued payroll or short-term debt. A clean AP balance for a small services business might run $8,000 to $25,000 (roughly two to four weeks of vendor bills). A construction or e-commerce business with longer vendor terms can carry $80,000+ in AP without anything being wrong. The number isn't good or bad in isolation; what matters is whether it's aging correctly.
Why AP is not an expense
This trips up new bookkeepers and clients constantly. The expense (say, a $1,200 SaaS subscription) hits the P&L the moment you enter the bill in QBO. AP only tracks the liability side. When you pay, you debit AP and credit Cash. The P&L doesn't move. If you posted the payment as another expense, you'd double-count: $1,200 in expense when the bill was entered, $1,200 again when paid. That's how books drift out of reality.
The fix when this happens: reverse the second posting, match the payment to the original bill, and re-run the P&L. See the general ledger primer for how the underlying posting flows.
AP vs Expense vs Accrued Liabilities
Three buckets, three different timing scenarios. Most small books mix them up.
Expense: when service rendered or goods received
The expense recognition rule under accrual accounting is straightforward: the expense hits the period when the benefit was received. A November utility bill that arrives December 5th is a November expense, not a December expense, even though you don't pay it until December 20th. The bill date follows the calendar; the payment date doesn't.
This matters most at month-end and year-end, when bills for the period haven't arrived yet but the expense already happened.
AP: when bill is entered into the system
AP shows up the moment a bill is entered into QBO via "Enter Bill" or "Bill" in the new UI. The journal entry is automatic: debit the relevant expense account, credit AP. The bill sits in AP until you mark it paid. From the bookkeeper's perspective, every bill in AP has a vendor name, a date, an amount, and a due date. That's what feeds the aging report.
If you skip AP and book the bill as a direct expense (using "Expense" instead of "Bill" in QBO), you lose the aging visibility and you can't run a vendor balance report. The expense is right; the workflow is broken.
Accrued Liabilities: when expense incurred but no bill received yet
This is the third bucket and the one most small books skip. Sometimes the expense is real but the vendor hasn't sent the bill yet. The classic example: a December consulting engagement where the invoice doesn't arrive until January 8th. December needs the expense, but you can't enter a bill that doesn't exist.
The fix is an accrued liability journal entry on December 31st: debit the expense, credit Accrued Liabilities (a separate line on the balance sheet, not AP). On January 1st, reverse the entry. When the actual bill arrives January 8th, enter it normally. AP picks it up, Accrued Liabilities goes back to zero, and the expense doesn't double-count.
The decision rule: did the vendor send a bill? If yes, AP. If no but the expense is real, Accrued Liabilities.
Year-end accrual workflow
At year-end, scan for:
- December services billed in January
- December utility bills with January statement dates
- Bonus or commission obligations earned in December
- Property tax periods that span the calendar year-end
For each, book an accrual entry to the right expense account and to Accrued Liabilities. Reverse on January 1. This is the single most common adjustment a tax preparer adds when they see a sloppy December close.
AP Workflow in QuickBooks Online
QBO's AP workflow has three core actions: enter the bill, pay the bill, and reconcile vendor balances. Get these three right and AP behaves.
Bill received → Enter Bill
When a vendor invoice arrives, the entry path is "+ New" → "Bill" in QBO. Fill in vendor, date, due date, terms, line-item categories, and amount. Save. Behind the scenes, QBO debits the expense category you selected and credits AP for the same amount. The bill is now visible in the vendor's history and in AP aging.
A common error: entering the bill with the wrong date. If the vendor invoice is dated November 28 but you enter it on December 5, use November 28. The expense belongs to the period the work was done, not the period you got around to data entry.
Bill paid → Pay Bill (matches to AP, reduces AP)
Payment uses "+ New" → "Pay Bills." Select the vendor, choose the bills being paid, enter the payment date and account (Cash, the bank account you're paying from), save. QBO debits AP (reducing it) and credits Cash. The expense doesn't move; it was already booked when the bill was entered.
If you accidentally pay via "+ New" → "Expense" or "Check" without matching to the bill, the expense double-counts and the bill stays open in AP forever. The cleanup is to match the payment to the bill or reverse the duplicate. If you spot this in vendor balance review, you've probably caught a recurring monthly mistake.
Why direct expense entry skips AP entirely
Sometimes direct expense entry is correct. If you swipe the company card at Office Depot, there's no bill to track. The charge hits the credit card statement directly. The right entry is "Expense" or a credit card transaction, not "Bill." AP is only for vendors who invoice you on terms.
The decision rule: if the vendor sends an invoice with payment terms (Net 15, Net 30), it's a Bill. If the charge hits your card or bank account immediately, it's an Expense. Mixing the two breaks AP aging.
Vendor credit handling
Vendor credits (returns, overpayments, refunds) get entered as "Vendor Credit" in QBO. The credit reduces the vendor's open AP balance and can be applied against the next bill. A common mistake is to enter the credit as a deposit or a journal entry. That bypasses the vendor record and breaks the double-entry bookkeeping audit trail at the vendor level.
AP Aging Report
The AP aging report is the single most useful AP report. It groups open bills by how overdue they are.
30/60/90/120+ buckets
QBO's default aging buckets are Current (not yet due), 1-30 days, 31-60 days, 61-90 days, 90+ days. The report sums by vendor and shows the totals at the bottom. A clean AP aging has 80%+ of the dollar value in Current and 1-30. The further dollars drift right, the more the business is stretching vendors, or the more bookkeeper errors are sitting in the system unfixed.
What aging signals about cash flow
A heavy 60-90 column means the business is paying late. Sometimes that's intentional (cash management) and sometimes it's a sign of cash strain. Either way, it shows up in the aging report before it shows up in the bank account. Lenders ask for AP aging in working-capital line reviews precisely because it tells the story before the financials do.
A heavy 90+ column is rarely cash strain. It's almost always errors. Bills entered twice, bills paid via expense entry without matching, bills the vendor never followed up on but that the system thinks are still open. Clean these out quarterly.
Old AP that needs writing off
Bills sitting in AP at 180+ days with no vendor activity are usually one of three things: a duplicate that was already paid, a bill the vendor cancelled, or a vendor that's gone out of business. Verify before writing off. The write-off entry is debit AP, credit Other Income (or a contra-expense account if the original expense was material to the period).
Aging as a vendor relationship indicator
Aging tells you which vendors get paid first and which get stretched. If the same vendor appears in 60+ every month, the relationship is on borrowed time. If a strategic vendor is in 90+, that's a flag. Call them before they call you.
Common errors that show up in aging
- Bills entered without matching subsequent payments
- Bills entered to the wrong vendor (look for tiny old balances on vendors you don't recognize)
- Bills entered for the wrong amount and never corrected
- Vendor credits never applied against open bills
A monthly aging review catches all four. The aging report is also where the spine of the accounting system shows up: every aged item should tie to an actual posted bill in the GL.
Common AP Mistakes
Five mistakes account for almost every messy AP balance.
Posting bills as expenses (skipping AP)
When a bookkeeper enters a bill via "Expense" instead of "Bill," AP never gets the liability and the aging report doesn't see it. The expense is right, but cash management visibility is gone. If a client asks "how much do we owe vendors right now?" and the answer is in scattered Expense entries, AP is broken. Fix: re-enter as Bills going forward, and accept that historical visibility is lost.
Forgetting to clear paid bills
If payments are entered without matching to the original bill, AP never closes. The bill ages out to 90+ while the payment sits as an unmatched cash transaction. The cleanup is to find the unmatched cash transaction and apply it to the open bill. QBO's match feature (during bank feed review) catches most of these if you stay on top of bank feeds.
Mixing AP with credit card balances
A credit card balance is not AP. The credit card account is its own current liability; the charges already hit the books as expenses or as the underlying transaction type. Entering credit card statement charges as Bills creates a duplicate liability and a duplicate expense. The right workflow is to record charges directly to the credit card account and reconcile the credit card statement monthly.
Why credit cards aren't AP
The vendor on a credit card transaction isn't the credit card company. It's whoever you bought from. Posting "Bill from American Express for $4,200" puts the wrong vendor in AP and obscures the actual spending categories. Use credit card transactions and let the credit card liability account track what you owe.
Year-end AP cleanup checklist
Before closing the books for the year:
- Run AP aging at 12/31, review every line in 60+
- Confirm December bills with January statement dates are entered
- Book accrued liabilities for December expenses without bills
- Clean up unmatched payments
- Reconcile AR the same way; both subledgers need to tie to GL controls
A clean AP at year-end means the tax preparer doesn't add an adjustment journal entry that throws off your January.
Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Full disclaimer.
Get Started with Growthy
Related: Accounting & Bookkeeping Glossary, Accounts Receivable (AR): What It Is & How It Works, General Ledger (GL): The Backbone of Your Accounting System, Double-Entry Bookkeeping: How Debits & Credits Actually Work