The principle in one sentence
A deposit is money received for work not yet performed, a debt of labor, not revenue, so it sits on the balance sheet as a liability ('Customer Deposits') until the job earns it, at which point it converts to income by being applied against the invoice.
Setup option 1: the liability-item method (cleanest)
- Create a current-liability account: 'Customer Deposits'
- Create a service item 'Deposit Received' mapped to that liability account
- Taking a deposit: invoice (or sales receipt) the customer using the deposit item, cash lands, liability grows, income untouched
- Completing the job: final invoice shows the full job at its real income items, plus a 'Deposit Received' line at negative the deposit amount, revenue books in full, liability empties, customer owes the balance
- The Customer Deposits account's balance is now permanently meaningful: it's your book of unearned work, a number worth watching in any deposit-heavy trade
Setup option 2: retainer/credit workflow
QuickBooks' built-in alternative, record the deposit as a payment held as customer credit, applied at final invoice. It works, but scatters unearned money inside AR (as negative balances) instead of one visible liability line, which muddies both AR aging and the balance-sheet story. Acceptable for occasional deposits; the liability method wins for deposit-driven businesses (fencing, flooring, remodels, custom orders: Fence & Gate ).
Edge cases that matter
- Forfeited deposits (customer cancels, you keep it): move it from the liability to income at forfeiture, that's the moment it's earned
- Sales tax: most states tax at the sale/completion, not deposit, but taxable-service states with invoice-based rules vary; configure the deposit item as non-taxable and tax the final invoice in full unless your state says otherwise
- Job costing: deposits carry no costs, margins stay honest only when revenue recognition waits for the invoice that carries the job's costs ( Job Costing in QuickBooks Online: The Contractor Setup That Actually Works )
- Year-end: your tax basis matters, accrual books hold deposits as liabilities into the new year; cash-basis filers may owe tax on receipt anyway. That divergence is a preparer conversation worth having before December, not after
Frequently asked questions
We've been booking deposits as income for years. How bad?
Timing distortion, not catastrophe, but fix forward: set up the liability method now, and reclassify any currently-open deposits so this year ends honestly. If open deposits at last year-end were large, mention it to your preparer.
Progress payments on long jobs, same thing?
Related but different: staged billing for work as it's completed is progress invoicing (real income at each stage), not deposits. The distinction and setup: Progress Invoicing in QuickBooks Online: A Contractor's Guide