What QuickBooks Online does and does not do natively
Does: let you create a liability account, put negative lines on a bill, and tag lines to a customer or project (Projects are in Plus and Advanced).
Does not (per Intuit’s US help): calculate a retainage percentage on a vendor bill, track a retainage balance per subcontract, or create release bills for you. Intuit’s global Projects FAQ mentions a Retainage setting that maps Retainage Receivable and Retainage Payable accounts in some editions, and QuickBooks Online Advanced added construction financials in August 2026 — check Settings in your own file before building the workaround.
One-time setup
You need a Retainage Payable liability account and a way to tag bills to the job — a customer or a project.
| Item | Setting | Why |
|---|---|---|
| Retainage Payable account | Chart of accounts → New → Other Current Liability | Keeps withheld amounts out of Accounts Payable aging |
| Projects | Available in Plus and Advanced | Tag bill lines to the job for job-cost reporting |
| Subcontract cost account | Cost of Goods Sold or Expense, e.g. “Job costs — subcontract” | Where the full value of the work lands |
| Optional: class | Settings → Advanced → Categories → Track classes (Plus and Advanced) | If you also report by division or branch |
Step by step: record a subcontractor bill with retainage
Enter the bill gross, add a negative Retainage Payable line for the amount withheld, and let the bill total equal the net payable.
- 1Create a Retainage Payable account in the chart of accounts with account type Other Current Liability.
- 2Turn on Projects (Plus or Advanced) and create a project for the job, or use the customer as the job.
- 3Enter the subcontractor’s bill for the full amount of work billed, coded to your subcontract job-cost account and tagged to the customer/project.
- 4Add a second line to the same bill: account Retainage Payable, amount equal to the retainage withheld entered as a negative number, tagged to the same customer/project.
- 5Save the bill; its total is now the net amount due, so A/P aging and the payment run show only what is payable now.
- 6Keep a register (or run a report filtered on Retainage Payable by vendor and project) to see the balance held per subcontractor and job.
- 7At release, enter a new bill for the subcontractor with one line: account Retainage Payable, positive amount equal to the retainage being released, tagged to the project.
- 8Pay the release bill as normal and confirm the Retainage Payable balance for that vendor and project is zero.
Example bill
A $50,000 progress bill with 10% retainage is saved as a $45,000 bill with two lines.
| Line | Category (account) | Customer/project | Amount |
|---|---|---|---|
| 1 | Job costs — subcontract | Riverside Medical Office | $50,000.00 |
| 2 | Retainage Payable | Riverside Medical Office | −$5,000.00 |
| Bill total | $45,000.00 |
Job cost shows the full $50,000; Accounts Payable shows $45,000 due; Retainage Payable carries the $5,000 until release. The journal entries behind this are explained in retainage accounting.
Releasing retainage
Enter a new bill to the subcontractor with a positive Retainage Payable line for the amount being released, tagged to the project, and pay it.
- Do not code the release bill to a job-cost account — the cost was already recorded on the original bills.
- Before entering it, confirm the release conditions in the subcontract are met (completion, punch list, final lien waivers) and any state release deadline.
- For a partial release, enter only the released portion; the rest stays in Retainage Payable.
- Set the release bill’s due date from the subcontract or the statutory deadline that applies.
Seeing retainage held by subcontractor and job
Run a transaction report filtered to the Retainage Payable account and group it by vendor and customer/project; the balance per group is the retainage you still hold.
Reconcile that balance monthly to a retainage register that records the contract value, rate, billed to date, withheld, and released for each subcontract. To model the expected balance, use the retainage calculator.
Common mistakes
Most retainage errors in QuickBooks Online come from netting the bill, forgetting the project tag, or coding the release to job cost.
| Mistake | Effect | Fix |
|---|---|---|
| Entering only the net amount | Job cost understated by the retainage until release | Enter gross plus a negative retainage line |
| Retainage line not tagged to the project | Project reports and retainage-by-job are wrong | Tag every line to the customer/project |
| Release bill coded to job cost | Cost counted twice | Code release bills to Retainage Payable only |
| Using a vendor credit for retainage | Shows as a credit available to apply, not a liability | Use the liability-account line instead |
| Rate changes not tracked | Wrong withholding after a reduction milestone | Keep the rate and milestone in your register |
Retainage your customer withholds from you
For retainage receivable, the mirror-image workaround is an Other Current Asset account (Retainage Receivable) and a retainage item entered as a negative line on the invoice, then a separate invoice for the retainage at release.
Aequo Build
Calculate retainage before the bill reaches QuickBooks Online
Aequo Build reads the retainage percentage from the subcontract, calculates the hold when the subcontractor’s invoice is approved, and records the held amount and net payable on the invoice. It tracks held, released, and remaining retainage by job and vendor, with partial or full releases that require approval, and subcontractors can see their own holds in the portal.
Today Aequo Build syncs approved bills to QuickBooks Online without a separate retainage line, so keep the Retainage Payable workaround above (or a journal entry) in QuickBooks if you need the liability on your balance sheet there.
Frequently asked questions
Does QuickBooks Online have a retainage feature?
Intuit’s US QuickBooks Online help does not document a retainage workflow for vendor bills. Intuit’s global Projects FAQ describes a Retainage setting that maps Retainage Receivable and Payable accounts in some editions, and QuickBooks Online Advanced added construction financials in August 2026, so check your own file’s settings.
What account type should retainage payable be in QuickBooks?
Other Current Liability. Retainage receivable is set up as an Other Current Asset.
Can a bill have a negative line in QuickBooks Online?
Yes. The workaround depends on it, and third-party integrations document posting subcontractor progress bills to QuickBooks Online at the full amount with a negative retainage line and a separate retainage bill.
How do I pay retainage to a subcontractor in QuickBooks Online?
Enter a new bill to the subcontractor coded to Retainage Payable for the amount released, tagged to the project, then pay it like any other bill.
Does this work in QuickBooks Desktop?
The same liability-account approach applies, but QuickBooks Desktop menus differ. Aequo Build supports QuickBooks Online.
Related guides and tools
Sources
Workaround based on Intuit’s published help, Intuit-hosted community answers, and common practice — not an official Intuit procedure, and not accounting advice. Confirm the setup with your accountant before changing your chart of accounts.
- Intuit QuickBooks — Projects FAQ (US)
- Intuit QuickBooks — Projects FAQ (global help article, retainage setting)
- Intuit — What’s new in QuickBooks Online Advanced, August 2026
- QuickBooks Community — including retainage on an invoice (Intuit-hosted answer)
- QuickBooks Community — setting up a retainage payable account
- Intuit QuickBooks — Plans and pricing (Projects, classes by plan)
- RedTeam Go help — QuickBooks Online retainage syncing (third-party integration)
Part of the Construction AP Knowledge Centre.