QuickBooks Online Retainers: Record Them as a Liability, Not Income
Service firms that take deposits up front can record them cleanly in QuickBooks Online by treating the money as a liability until it is earned.
Service businesses that take money up front keep hitting the same wall in QuickBooks Online. A retainer lands in the bank, gets booked as income, and the month’s revenue suddenly looks bigger than the work delivered. The fix comes from guidance Intuit maintains for QuickBooks Online, refreshed shortly before this report, and it rests on one idea: held money is a debt, not revenue. We have condensed the full workflow below.
Retainer money is not income until you earn it
The accounting logic is simple. When a client pays before any work is done, your business owes that client something, either the services or a refund. Book the payment as revenue and you overstate income in the month it arrived. You then understate it in the month you actually deliver, and any tax estimate built on those numbers drifts.
The workflow mirrors that reality. Money sits in a liability account while you hold it. When you later invoice for real work, the held amount is drawn down and converts to income at the moment it is earned.
Create a liability account first
Start in the chart of accounts, under the Accounting menu. Add a new account, set the type to current liabilities, and choose the detail type for client trust accounts. Give it a plain name such as Trust Liabilities. The setup screen also asks for a default tax code, and for an opening balance with an as-of date if you are switching over with retainers already on hand.
Create a retainer item you can sell
Next, open Products and services from the sales menu and add a new service item called Retainer. Here is the counterintuitive part. Point the item’s income account at the liability account you just created, not at a revenue account. Every retainer sale then posts to liabilities automatically. This one item is what you will use when the money arrives and again when you apply it later.
Do you need a separate trust bank account?
Only if you genuinely keep client funds in their own bank account, as some professions require. If that is you, add a second entry in the chart of accounts: type cash and cash equivalents, detail type client trust account, with an opening balance and date. If retainers sit in your ordinary operating account, skip this entirely. The rule is to reflect what your bank actually does, nothing more.
Record the deposit when it arrives
Take the payment on a sales receipt, or on an invoice if you bill for the deposit. Use the retainer item on the line. The cash lands in your bank, the offset lands in the liability account, and nothing touches income yet. Reports stay honest from day one.
How do you apply the held funds to an invoice?
This is the step users most often miss, and it is the hinge of the whole setup. On the invoice for the actual work, list your services as usual. Then add the retainer item again, entered as a negative amount for the portion you are applying. The negative line pulls money out of the liability account and reduces the balance due on the invoice.
Any remainder is paid normally. When you save the invoice, the held money converts to income and the liability shrinks to match. If a retainer is only partly used, the leftover stays on the books as money you still owe the client, which is exactly where it belongs.
Sticking points worth checking
Get the sign right. The retainer line on an invoice must be negative, or the entry adds to the liability instead of drawing it down. Watch the tax field too. The guide asks for a default GST code because it comes from the Singapore edition, so readers elsewhere will see the same screen worded for sales tax or VAT. And resist the shortcut of booking a retainer straight to income, however tempting it looks at month end.
If you created a trust bank account in the optional step, reconcile it alongside your other accounts. Once the pieces are in place, retainers flow through on their own, and the liability balance tells you at a glance how much client money you are holding.