
Double-Entry Bookkeeping: How Debits & Credits Actually Work
Double-entry bookkeeping records every transaction with two equal sides (debits and credits) that must always balance.
Practical liability categorization for bookkeepers: AP vs credit cards vs accrued, payroll liabilities, loan setup, deferred revenue, and the QBO mistakes that hide the balance sheet.

Liabilities are where bookkeepers find the most balance sheet errors. AP gets mixed with credit cards. Customer deposits get posted to revenue. Loan principal and interest get lumped together. Sales tax collected ends up in the wrong bucket. Each of these errors quietly distorts the balance sheet, sometimes for years before someone catches them.
This guide walks through the liability categories every QBO bookkeeper handles within the broader chart of accounts framework. Current liabilities (AP, credit cards, accrued, sales tax). Payroll liabilities. Long-term liabilities (loans, leases, deferred revenue). The loan setup workflow that most QBO files get wrong. And the five categorization mistakes that come up most often in cleanup engagements.
Current liabilities are obligations the business expects to settle within a year. Order on the balance sheet: typically AP first, then credit cards, accrued liabilities, sales tax payable, current portion of long-term debt.
Accounts payable (AP) is what the business owes to vendors for goods and services on terms. Invoices received but not yet paid. It's an obligation that comes from a vendor's invoice, with payment terms (Net 30, Net 60, due on receipt).
QBO setup: AP is a system-generated account ("Accounts Payable") that tracks unpaid bills. When you enter a bill in QBO via "Enter Bills," it credits AP. When you pay the bill via "Pay Bills," it debits AP and credits cash. The AP balance ties to the open bills report.
What goes wrong: bookkeepers post bill payments directly to expense via the bank feed without entering the bill first. Result: AP doesn't reflect actual outstanding bills, and the AP aging report is useless. Fix: enter bills when received, pay bills through the bill payment workflow, and reconcile AP monthly.
Credit card balances are NOT accounts payable, even though they're both "what the business owes." QBO splits them because the workflow is different:
Each business credit card gets its own QBO account: "Credit Card - Chase Ink," "Credit Card - Amex Business Gold." Credit card charges post to the credit card account (as a credit, increasing the liability) and the offsetting expense (debit to expense category).
When the credit card statement is paid, the entry is debit credit card account (reducing the liability), credit cash. The credit card balance reconciles to the statement balance monthly.
Free during alpha. Read-only access. You review every sync.
Request Early Access
Double-entry bookkeeping records every transaction with two equal sides (debits and credits) that must always balance.

Accounts payable is the running tally of bills you owe vendors but haven't paid yet. It sits on the balance sheet as a current liability, not on the P&L as an expense. Here's how the AP workflow actually moves through QBO.
Accrued liabilities are obligations the business has incurred but not yet been billed for. Common examples: accrued bonuses, accrued vacation, accrued interest, year-end professional fees that won't be billed until January, year-end utility usage that won't be billed until next month.
For accrual-basis books, accruals matter. Without them, expenses are understated in the period they're incurred. For cash-basis books, accruals don't appear on the tax return but may still be useful on management reports.
QBO setup: "Accrued Liabilities" or "Accrued Expenses" as a current liability account, with sub-accounts if there are recurring categories ("Accrued Bonuses," "Accrued Interest"). Year-end journal entry: debit expense, credit accrued liability. Reverse the entry when the actual bill arrives.
Sales tax is a pass-through liability. The business collects it from customers and remits it to the state. It's NOT revenue. It's NOT an expense. It's a liability from the moment it's collected until it's remitted.
QBO has a built-in sales tax module that handles most of this automatically. When you create an invoice and apply sales tax, QBO:
Without the QBO sales tax module (or for sales channels that bypass it: Shopify, Etsy, eBay), the bookkeeper has to map sales tax explicitly. Common error: a Shopify import dumps gross sales (including sales tax collected) into "Sales Revenue." Result: revenue is overstated by the sales tax amount and sales tax payable is missing. Fix: configure the Shopify integration to split sales tax, or post a monthly journal entry reclassing sales tax from revenue to liability.
For multi-state businesses, set up separate sales tax payable sub-accounts by state if the volume warrants tracking. Otherwise, one parent "Sales Tax Payable" account with the QBO module's state-level detail is enough.
Payroll liabilities are amounts withheld from employee paychecks plus the employer's share of payroll taxes. Both owed to the IRS, state agencies, or third parties (401(k) administrator, health insurance carrier).
When payroll runs, the gross wage hits "Wages Expense" but only the net wage hits cash. The difference (federal income tax withheld, state income tax withheld, FICA employee portion, Medicare employee portion) sits in payroll liability accounts until remitted.
QBO setup: "Federal Payroll Tax Liability" and "State Payroll Tax Liability" as current liability accounts. Most payroll integrations (Gusto, ADP, Paychex) handle this mapping automatically when connected to QBO. The bookkeeper reviews the journal entries posted by the integration to confirm they're hitting the right accounts.
The employer side: employer FICA match (6.2% Social Security up to the wage base, 1.45% Medicare with no cap), FUTA (0.6% federal unemployment after credits), SUTA (state unemployment, rate varies by state and experience).
The 2026 Social Security wage base is $184,500. Wages above that aren't subject to Social Security tax (employer or employee). Medicare has no wage cap, plus an Additional Medicare 0.9% on employee wages above $200,000 (employee only, not employer).
These employer taxes hit "Payroll Tax Expense" with the offsetting credit to the corresponding liability account ("Federal Payroll Tax Liability" for FICA/Medicare/FUTA, "State Payroll Tax Liability" for SUTA).
Employee deductions for 401(k) contributions and employee-paid health insurance flow to dedicated liability accounts: "401(k) Payable," "Health Insurance Withholding." These get remitted to the 401(k) administrator and the insurance carrier respectively.
The 2026 401(k) employee deferral limit is $24,500 with $7,500 catch-up for age 50+ (total $32,000). The combined employer + employee limit is $72,000. SEP-IRA limit is $72,000. SIMPLE IRA is $17,000 with $4,000 catch-up.
For S-corp owners receiving health insurance through the company: the premiums get included in W-2 Box 1 wages and Box 14 (informational), then deducted on the 1040 as Self-Employed Health Insurance. The bookkeeper's role is to make sure Gusto or the payroll provider is configured for the S-corp owner health treatment. Without it, the deduction is lost.
Wage garnishments (child support, IRS levies, court-ordered) get withheld from the employee and remitted to the appropriate authority. Goes to "Garnishments Payable" as a current liability. Most payroll providers handle the calculation and remittance. The bookkeeper just confirms the GL entries match the payroll register.
Term loans, SBA loans, equipment financing, vehicle loans. Anything with a payment schedule extending beyond 12 months. Each loan gets its own QBO account: "SBA Loan - First National Bank," "Equipment Loan - Caterpillar Financial," "Auto Loan - Ford Motor Credit."
Lines of credit are slightly different. The available credit isn't a liability until drawn. Only the drawn balance is a liability. Most LOC users post the drawn balance to a current liability account ("Line of Credit") because it's typically callable on demand.
ASC 842 (the lease accounting standard) requires most operating leases to appear on the balance sheet as a right-of-use asset and a corresponding lease liability. This applies to office leases, equipment leases, vehicle leases over 12 months.
For private companies, ASC 842 has been effective for several years now. Most small businesses still don't apply it. They expense lease payments to "Rent Expense" and skip the right-of-use asset and liability. That's technically non-compliant for accrual GAAP books but is normal practice for cash-basis tax filers and small private companies.
If the business is preparing for a sale, audit, or financing event, expect ASC 842 compliance to matter. The bookkeeper's role: identify the leases (term over 12 months, fixed payment schedule) and surface them to the CPA for the GAAP entries.
Deferred revenue is customer prepayments for goods or services not yet delivered. The current portion (to be earned within 12 months) goes to current liabilities. The portion extending beyond 12 months goes to long-term.
For a SaaS business with monthly subscriptions, the deferred portion is typically all current. For a SaaS business that sells annual or multi-year prepaid contracts, the long-term portion can be substantial. See income accounts for the recognition workflow.
Loan accounting is where 80% of QBO files have errors. The setup is fiddly, the monthly journal entries are tedious, and most bookkeepers post them wrong.
When the loan deposits hit the bank, the entry is:
The deposit is NOT revenue. It's NOT income. It's a balance sheet transaction with no P&L impact. Common error: bookkeepers see a $50,000 deposit and code it to "Sales Revenue" or "Other Income" because the bank feed doesn't tell them what it is. Result: revenue is overstated by $50K, the loan liability is missing, and the balance sheet doesn't balance.
The fix: every large deposit gets traced to source before categorizing. If it's a loan, a contribution, or a transfer, it doesn't go to revenue.
When the loan payment goes out, the entry splits between principal and interest. For an $850 monthly payment on a $50,000 SBA loan with $200 of interest in the current month:
The interest portion changes every month based on the amortization schedule. Most loan servicers provide an amortization schedule at origination. The bookkeeper uses this to post the monthly entry correctly.
What goes wrong: bookkeepers post the entire $850 to "Interest Expense" or to "Loan Payments" (a non-standard account). Result: the loan principal balance never reduces in QBO, the interest expense is overstated, and at year-end the tax preparer can't tell what's principal versus interest.
Set up a recurring journal entry in QBO that splits each loan payment correctly. Most QBO bookkeepers either:
For multi-loan books (a business with 4-5 financing arrangements), the loan amortization tracking can become a meaningful time sink. Either dedicate a clean monthly process or use a tool that automates the entries.
The mistake: a client pays a $5,000 deposit before work starts. The deposit hits "Sales Revenue" because cash came in. Result: revenue is recognized before earned, the obligation to deliver work is missing from the balance sheet, and (for accrual books) the engagement looks more profitable than it is.
The fix: customer deposits go to "Customer Deposits" or "Deferred Revenue" (current liability). When the work delivers, journal entry the deposit out of liability into revenue. For cash-basis tax filers, this is a management-reporting issue, not a tax issue. But it still distorts the financial picture if uncorrected.
The mistake: the bookkeeper posts a credit card charge to AP because the vendor sends an invoice. The business uses the credit card to pay the invoice, but the bookkeeper enters it as AP. Result: AP is overstated, credit card balance is understated, and the AP aging report shows ghost bills that aren't actually owed.
The fix: if the bill is paid by credit card, post the charge directly to the credit card account, not AP. The bill workflow is for invoices paid by check or ACH, not for credit card charges.
The mistake: at year-end, the bookkeeper closes the books on December 31 without accruing for expenses incurred but not yet billed. Common offenders: December utility bills (received in January), year-end legal fees, accrued bonuses, accrued vacation.
The fix: year-end accrual checklist. For accrual-basis books, run through:
Post the accrual journal entries with reversing dates of January 1 so the entries unwind automatically when the actual bills arrive.
The mistake: a $50,000 SBA loan with $8,000 due in the next 12 months sits entirely in long-term debt on the balance sheet. Result: working capital ratio looks better than it is, current liabilities are understated.
The fix: at year-end (and ideally monthly), review each loan amortization schedule and reclassify the next 12 months of principal payments to "Current Portion of Long-Term Debt." That's a current liability account separate from the long-term loan account. The total ties to the loan amortization schedule for the next 12 payments.
The mistake: a Gusto payroll run posts the entire gross wage to "Wages Expense" with the net wage as the cash credit. The withholdings disappear into the void. Result: wages expense is correct but payroll liability accounts are missing. At the next remittance, the bookkeeper has nowhere to debit the liability and ends up posting the remittance to "Payroll Tax Expense" (double-counting the expense).
The fix: configure the payroll integration (Gusto, ADP, Paychex) to map withholdings to the correct liability accounts. Run a sample payroll, review the QBO journal entry, and confirm:
The journal entry should balance and the liability accounts should grow with each payroll, then drop to zero when remittances are paid.
For asset side balance sheet items (loan proceeds, receivables, prepaids), see fixed vs current assets. For equity setup (owner contributions, distributions, retained earnings), see stockholders' equity.
For the definitions that sit around liability cleanup, use the balance sheet terms glossary. It connects AP, AR, bank reconciliation, assets, liabilities, and equity without forcing a full A-Z glossary scan.
Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Full disclaimer.