Bookkeeper-level guide to revenue accounts in QBO: sales vs service, recurring vs one-time, contra-revenue, ASC 606 basics, and the 5 setups you actually configure.
4 articles
Revenue looks simple from the outside. Money in, post it to "Sales," done. Then a real client shows up. They sell products and consulting, take prepaid annual subscriptions, get charged 2.9% by Stripe, issue refunds, collect sales tax, and occasionally take a deposit before the work starts. Suddenly "Sales" doesn't cut it.
This is the bookkeeper-level guide to revenue accounts within the broader chart of accounts. Not the CFO-level ASC 606 deep dive your client doesn't need. We cover the four revenue account types every bookkeeper sees, the recurring versus one-time split that matters for SaaS books, the small-business slice of ASC 606, the QBO setup that handles Stripe and Square, and the five categorization mistakes that come up most often.
The 4 Revenue Account Types Every Bookkeeper Sees
QBO's default income account is just "Sales," which is too broad for any business with more than one revenue stream. Most clients need at least two or three of the following four types.
Sales Revenue (product sales)
Product revenue. Physical goods, digital downloads, anything where the customer pays for a thing. Goes to "Sales" or "Product Sales" with sub-accounts if the business has multiple SKUs you want to track separately on the P&L. Most QBO product businesses set up a parent "Sales" account and a few sub-accounts (Sales - Wholesale, Sales - Retail, Sales - Online) so the gross margin reports stay readable.
The mistake to avoid: tracking every single SKU as a separate income account. That's what the item list and inventory reports are for. The P&L should roll up to a handful of meaningful revenue lines, not 200.
Service Revenue (consulting, agency, billable hours)
Service revenue is the labor side: consulting fees, billable hours, project fees, retainers. Goes to "Service Revenue" or "Consulting Income" with sub-accounts for service lines if the business has multiple practice areas (Accounting Services, Tax Services, Advisory Services for a CPA firm).
For mixed-model businesses (agencies that sell both retainer services and one-off projects, SaaS companies that sell software plus implementation), split sales and services into separate parent accounts. The reason: gross margins differ. Software has 80%+ gross margin. Professional services have 30-50%. Mixing them on the P&L hides the unit economics.
Other Income (interest, refunds received, miscellaneous)
Other Income captures everything that's not core revenue: interest income, vendor refunds received, sale of fixed assets, insurance settlements, FX gains. This account belongs below the gross profit line on the P&L (it's typically labeled "Other Income" or "Non-Operating Income") because it doesn't represent customer-facing revenue.
See It Work on Your Data
Free during alpha. Read-only access. You review every sync.
Income Statement (P&L): How to Read & Use Your Profit and Loss
The income statement (P&L) reports revenue, expenses, and net income for a period. Here's how to read each section, what it reveals about the business, and how to set up class- and location-based custom P&L views in QBO.
What Category Is Bank Fees & Interest? (Chart of Accounts Guide)
Bank fees and interest split into three accounts, not one: Bank Service Charges, Interest Expense, and Merchant Processing Fees. The biggest error is booking net Stripe deposits, which understates revenue every month.
Accrual vs Cash Accounting: Which Method and Why It Matters
Cash accounting recognizes revenue and expenses when money moves. Accrual recognizes them when earned or incurred. Most small businesses run cash for tax and accrual for books. Here's why and how.
Accounts Receivable (AR): What It Is & How It Works
Accounts receivable is the money customers owe you for invoices already sent but not yet collected. It's a current asset on the balance sheet, not revenue. Here's how AR moves through the QBO Invoice/Customer workflow.
Common misposting: vendor refunds. If a vendor refunds the business $300 for an overcharge, the correct treatment is to reduce the original expense, not post it as Other Income. Other Income is for genuinely non-operating one-offs (interest, gain on asset sale).
Contra-revenue is the reduction of gross revenue: refunds issued to customers, product returns, sales discounts, chargebacks. The key principle: contra-revenue belongs ABOVE the gross profit line (as a reduction of revenue), not below as an expense. If you post refunds to "Refunds Expense," your gross revenue is overstated and gross margin is off.
Set up contra-revenue accounts as separate income accounts with debit balances. Examples: "Sales Returns and Allowances," "Refunds and Discounts," "Chargebacks." On reports, they'll show as negative values reducing gross revenue. See the common revenue mistakes section below for the chargeback workflow.
Recurring vs One-Time Revenue
This split matters most for SaaS, subscription, and retainer businesses. Mixed models (a consulting firm with project work and ongoing retainers) need both.
Subscription revenue (MRR/ARR)
If the business sells subscriptions, it needs a separate "Subscription Revenue" or "Recurring Revenue" account. The reason isn't tax-driven. It's reporting. MRR and ARR are the metrics that drive SaaS valuation and operating decisions, and you can't pull MRR from a P&L if subscription income is mixed with one-off revenue.
For QBO setup: create "Subscription Revenue" as a top-level income account with sub-accounts by plan tier or product line if relevant ("Subscription Revenue - Starter," "Subscription Revenue - Professional"). Map Stripe subscription products to these sub-accounts.
Project-based revenue
Project revenue is one-time billing for defined scope: $15,000 to build a website, $40,000 for a brand identity package. Post to "Project Revenue" or "Service Revenue - Projects" with sub-accounts by service line if the volume warrants it.
The accounting question: revenue recognition timing. If a project takes three months and the client pays 50% up front, the up-front cash is deferred revenue (a liability) until work happens. Cash-basis books recognize on payment. Accrual books spread over the project. We cover this in the ASC 606 section below.
Hybrid models (service + retainer)
Agencies often run both: monthly retainer income plus occasional one-off projects. Split into "Retainer Revenue" and "Project Revenue" so the leadership team can see how much of the revenue is recurring versus one-time. This split also drives the cash flow forecast. Recurring revenue is the predictable base. Projects are the upside.
ASC 606 Basics for Small Businesses
ASC 606 is the GAAP revenue recognition standard. Most small-business owners don't need to know the technical details, but bookkeepers should know enough to avoid the three big traps.
The 5-step model in plain English
ASC 606 says: revenue is recognized when the performance obligation is satisfied. The five steps:
Identify the contract with the customer.
Identify the performance obligations.
Determine the transaction price.
Allocate the price to the obligations.
Recognize revenue as obligations are satisfied.
In practice for a small business: if you delivered the product, you recognized revenue. If you finished the project, you recognized revenue. If the customer paid for an annual subscription up front, you recognize 1/12 each month over the year (accrual basis) or all at once (cash basis).
When small businesses can ignore most of it
Cash-basis taxpayers don't have to apply ASC 606 for tax purposes. They recognize revenue when cash hits the bank, full stop. If the client files a Schedule C or 1120 on cash basis, the tax return ignores ASC 606 timing rules.
For internal management reports, accrual basis with simple ASC 606 application is still the better view of the business. But you don't need a 50-page revenue recognition policy for a $400K agency. Keep it simple: prepaid annual subscriptions defer over 12 months, fixed-price projects recognize on milestones or completion, retainers recognize monthly.
Common pitfalls (recognizing prepaid annual subscriptions)
The biggest small-business pitfall: recognizing all the cash on day one when a customer prepays for an annual subscription. If a customer pays $12,000 for a year of service in January, the correct accrual treatment is $1,000/month for 12 months. The remaining $11,000 sits in "Deferred Revenue" (a liability) on day one. Then $1,000 reclasses to revenue each month.
For cash-basis books, the $12,000 hits revenue in January and you move on. But if the client is reviewing performance reports monthly, the cash-basis spike makes January look great and the rest of the year look flat. Even though the work is happening evenly. For management reporting, the accrual treatment is more honest.
QuickBooks Income Account Setup
QBO default income accounts
Out of the box, QBO ships with one or two income accounts: "Sales" and sometimes "Services" or "Income." That's almost never enough. For any business with more than one revenue stream, your first chart of accounts task is adding the right income accounts before the bookkeeping starts.
Recommended baseline for a service + product business:
Sales Revenue (product)
Service Revenue (labor)
Other Income (interest, misc)
Sales Returns and Allowances (contra-revenue)
For a SaaS business, add:
Subscription Revenue
Implementation/Setup Revenue
Other Recurring Revenue
Adding service items vs product items
QBO's item list is where revenue mapping happens. Each item, service or product, gets assigned to an income account. When you create an invoice with that item, the income posts to the assigned account.
Common mistake: leaving every item assigned to the default "Sales" account. The fix: when you create new items, set the income account explicitly. For service items (Consulting - Discovery Call, Consulting - Project Work), point to "Service Revenue" or a sub-account. For product items, point to "Sales Revenue."
Mapping Stripe, Square, and PayPal deposits
Payment processor integrations are where most categorization mistakes happen. The flow: customer pays $1,030 ($1,000 invoice + $30 sales tax). Stripe takes $30 in fees and deposits $1,000 to the bank.
Correct entries:
$1,000 to Sales Revenue
$30 to Sales Tax Payable (liability, not revenue)
$30 to Bank/Merchant Fees (expense)
Net $1,000 hits the bank account
What goes wrong: bookkeepers post the $1,000 deposit straight to revenue without recognizing the $30 fee or the sales tax liability. Result: revenue is understated by the fee, expenses are missing the fee, and sales tax payable is missing the collected tax.
The fix in QBO: use the Stripe integration (or import via a tool) that splits the deposit into the gross sale, fees, and sales tax components. Manual fix: enter as a journal entry separating the components.
For default sub-account structure, create:
Sales Revenue (parent)
Stripe Sales (sub)
Square Sales (sub)
Manual Sales (sub)
This lets you reconcile each payment processor separately and spot mapping errors quickly.
Common Revenue Categorization Mistakes
These are the five errors that come up most often in QBO files we clean up. Watch for them in any new client engagement.
Posting refunds to expense accounts
The mistake: a customer refund of $500 lands in "Refunds Expense" or "Returns Expense" on the expense side of the P&L. The result: gross revenue is overstated by $500 and operating expenses are overstated by $500. Net income is correct, but every gross-margin metric is wrong.
The fix: post refunds to a contra-revenue account ("Sales Returns and Allowances," "Refunds and Discounts") that reduces gross revenue. Run the P&L and verify gross revenue ties to the actual booked revenue net of refunds.
Mixing customer payments with loan proceeds
The mistake: a $50,000 SBA loan deposit hits "Sales" or "Other Income" because the bookkeeper saw a $50,000 deposit and didn't dig into the source. Result: revenue is overstated by $50K and the loan liability is missing from the balance sheet.
The fix: every large deposit gets traced to source. Loan proceeds go to a long-term liability account ("SBA Loan," "Line of Credit," "Term Loan"). Customer prepayments go to "Deferred Revenue." Owner contributions go to equity. Only customer revenue goes to revenue accounts. See the liability account categories guide for loan setup details.
Treating sales tax collected as revenue
The mistake: a state sales tax of $50 on a $1,000 invoice gets posted to revenue, making it look like $1,050 of sales. Result: revenue is overstated by the sales tax amount. Sales tax payable is understated.
The fix: sales tax collected is a pass-through liability, not revenue. Set up "Sales Tax Payable" as a current liability account. QBO's sales tax module handles this automatically if it's enabled. But if the business is collecting sales tax outside the QBO module (Etsy, eBay, Shopify integrations), the import workflow needs explicit sales tax mapping.
Customer deposits posted to revenue
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, and the obligation to deliver the work is missing from the balance sheet.
The fix: customer deposits go to "Deferred Revenue" or "Customer Deposits" (a current liability). When the work is delivered, journal-entry the deposit out of liability and into revenue. See common liability mistakes for the deposit workflow.
Mixing reimbursable expenses with revenue
The mistake: a client reimburses the agency for $2,000 of pass-through expenses (printing, freelance contractor cost, travel). The reimbursement hits "Sales Revenue." Overstating revenue by $2,000 and double-counting the original expenses.
The fix: there are two valid treatments. Either (1) post reimbursement to "Reimbursable Income" and the original expense to a corresponding "Reimbursable Expenses" account so they wash out, or (2) net the pass-through entirely by reducing the original expense when the reimbursement comes in. Pick one approach and apply it consistently across the engagement.
Related Glossary
For the definitions behind revenue, gross margin, COGS, and P&L review, use the income statement terms glossary. It keeps revenue account setup tied to how the owner reads the monthly income statement.
Growthy is bookkeeping software, not a CPA firm. This content is educational, not professional advice. Full disclaimer.