How to Record Customer Prepayments in QuickBooks Online
A customer prepayment, a retainer, a deposit against future work, isn't revenue the moment it lands in your bank account; you still owe them the goods or service. Record it against a liability account instead of income, then move it to income only when you apply it to the invoice it's actually paying for. Here's each step, in order.
The full walkthrough
1. Create a liability account for prepayments. From Settings, open Chart of accounts and click New. Choose Other Current Liabilities as the account type and name it something like "Customer Prepayments" or "Unearned Revenue." You only set this up once.
2. Create a product or service item that points at the liability account. Go to Settings, then Products and services, then New. Make a non-inventory or service item called "Prepayment" or "Retainer," and on its setup, point the income account field at the liability account from step 1, not a normal income account.
3. Record the prepayment using that item. If the customer pays before any invoice exists, use + New, then Sales receipt (if they paid immediately) or Invoice (if you're billing them for the deposit itself), and use the prepayment item on the line. The money posts to the liability account instead of inflating revenue for a job you haven't done yet.
4. Do the actual work, then create the real invoice. When the job or service is ready to bill, create a normal invoice listing what you actually delivered, same as any other invoice.
5. Apply the prepayment against the new invoice. Add a line to the invoice using the same prepayment item from step 2, entered as a negative amount equal to the credit the customer has on file. This reduces the invoice by what they already paid and moves that same amount out of the liability account into real income, matched to the work it actually covers.
Why this gets skipped in practice
The fast path is to just drop the prepayment straight into income when it arrives, since that's the obvious button and the cash is real. It works right up until the job falls through, gets delayed a quarter, or only half gets delivered before the rest is billed separately. At that point your books already show revenue for work that hasn't happened, and someone has to go back and untangle it.
It also gets messy for a business juggling several prepayments at once: which customer has a credit sitting on file, how much, and against which eventual invoice. That tracking tends to live in someone's head or a side spreadsheet rather than in QuickBooks itself, and it drifts out of date the moment a job scope changes.
What we've built on top of QuickBooks prepayment tracking
Prepayments applied automatically when the real invoice goes out
A job or project tool flags that work is complete, the matching invoice gets generated, and the customer's outstanding prepayment credit gets applied to it in the same step, instead of someone remembering to add the offsetting line by hand.
Outstanding credit balance surfaced before it's forgotten
A running view of which customers are sitting on an unapplied prepayment and how much, pulled straight from the liability account, so nobody has to go digging through a side spreadsheet to answer "do they still have a credit with us?"
How many customer prepayments are you tracking by hand right now?
If it's living in a spreadsheet next to QuickBooks instead of in the liability account itself, tell us how it's structured and we'll tell you if QuickBooks can carry that on its own.
Juggling customer prepayments outside of QuickBooks?
Tell us how deposits and retainers come in for your business, a signed contract, a booking page, a one-off request, and we'll tell you how to get them posting and applying correctly without a side tracker. Prepayments are one place manual tracking creeps in; we automate whatever's manual anywhere else in the business too.
Let's talk