Subcontractor Invoice Approval Process: A Step-by-Step Guide
Most overpayments to subcontractors are not fraud. They are a duplicate invoice nobody caught, a progress bill that quietly took the contract past its limit, or a payment sent to a sub whose insurance lapsed two weeks earlier. All three come from the same gap: invoices arrive from everywhere, and approval depends on whoever happens to read the email. This guide lays out a seven-step approval process that closes the gap, plus a checklist of what to verify on every invoice.
A sound subcontractor invoice approval process has seven steps: request the invoice for one project and type, collect it in one place, match it to the contract and approved change orders, check for duplicates, confirm insurance and lien waivers, approve or decline with a recorded reason, then pay. The duplicate check and the insurance check are the two most often skipped, and the ones that cost the most.
Key Takeaways
- Bill against the revised contract: the original value plus approved change orders is the ceiling every invoice is compared to.
- A duplicate check needs only the vendor and the invoice number, and it catches the most common double payment.
- Insurance and lien waivers belong at the approval step, not in a separate process that never connects to payment.
- Record who approved what and why, especially overrides. Audits and disputes both start there.
1. Why Subcontractor Invoices Go Wrong
A general contractor with a dozen active subs can easily receive a hundred invoices a quarter, in five different formats, through four different inboxes. The problems that follow are predictable:
- No single ledger. Nobody can say, in ten seconds, how much a sub has billed against a contract, so over-billing goes unnoticed until the final invoice.
- Approval lives in an inbox. Whether an invoice was approved, by whom, and on what basis exists only in someone's email thread.
- Compliance sits somewhere else. The certificate of insurance is in a folder, the lien waiver is in another, and neither is checked when the payment is released.
- Change orders don't reach billing. An approved extra never gets added to the contract value, so a legitimate invoice looks wrong, or an unapproved one looks fine. We cover that in how to track subcontractor change orders.
2. The Seven-Step Approval Process
The steps below work on paper, in a spreadsheet or in software. What matters is that every invoice goes through all seven, in this order, and that the result is written down.
- 1Request the invoice for a specific project and type.
Tell the subcontractor exactly what you are asking for: a deposit, a progress payment or a final invoice, tied to one project. An open-ended "send us your invoice" email is where wrong-project and wrong-amount bills start.
- 2Collect it through one channel.
Pick one intake: a portal link, a shared AP inbox with a filing rule, or a form. Invoices that arrive by personal email and text message are the ones that get paid twice or never logged. A link scoped to a single project also removes the "which job is this for?" question.
- 3Match it to the contract and the change orders.
Compare the amount to the subcontract value plus approved change orders, minus what has already been billed or paid. If the invoice pushes the running total past that revised contract value, stop. Either a change order is missing or the bill is wrong.
- 4Check for duplicates.
The same vendor with the same invoice number, ignoring capitalization and spaces, is a duplicate until proven otherwise. Also look for the same amount and date under a new number, which is how a resubmitted invoice sneaks through.
- 5Verify insurance and lien waivers.
Confirm the subcontractor's certificate is current for the coverages your contract requires, and that the lien waiver for this payment is attached. This is the step most teams run in a separate process that never touches payment.
- 6Approve or decline, and write down why.
A decline needs a reason the subcontractor can act on: wrong project, missing waiver, amount above the remaining balance. An approval should record who approved it and when. Overrides, such as paying a vendor with a flagged certificate, need a written reason.
- 7Schedule the payment and re-check at the moment you pay.
Insurance can lapse between approval and the payment run. If your workflow allows it, re-check compliance when the payment is released, not only when the invoice was approved.
3. What to Check on Every Invoice
Keep this list next to the approval queue. An invoice that passes all eight lines is safe to approve. One that fails any line goes back to the subcontractor with a specific reason.
| Check | What you are looking for |
|---|---|
| Project and vendor | The invoice names the right project, and the vendor is the entity on the subcontract, not a related company. |
| Invoice number | Unique for that vendor. A repeat number, or a new number with an old amount, needs a question before approval. |
| Amount against the contract | Billed to date plus this invoice stays within the original value plus approved change orders. |
| Invoice type and stage | A deposit invoice comes before the work, a progress invoice reflects work in place, and a final invoice comes at completion. |
| Retainage | If your subcontract holds retainage, the invoice or your ledger reflects it, and release is tied to the contract's terms. |
| Lien waiver | The right type for this payment is attached (see the section on waivers below). |
| Insurance | Certificate current, required coverages present, endorsements your contract requires on file. |
| W-9 and tax status | A W-9 is on file, so you can file a 1099-NEC if the year's payments reach the IRS threshold. |
On the last line: for tax years after 2025, the IRS instructions say to file Form 1099-NEC for each person you paid at least $2,000 during the year, up from $600 before (IRS instructions for Forms 1099-MISC and 1099-NEC, retrieved September 2026). You usually don't know in advance which subs will cross that line, so collect a W-9 from all of them.
4. Deposit, Progress and Final Invoices: What Changes
The seven steps stay the same, but what you are looking for shifts with the stage of the job.
Deposit invoice
When: Requested before work starts, usually a fixed amount or percentage named in the subcontract.
Watch for: Confirm the subcontract is signed and insurance is in place first. A deposit paid to a sub you cannot yet verify is the hardest money to get back.
Progress payment
When: Billed during the job against work completed, often supported by a schedule of values.
Watch for: Compare the percentage complete to what the site team sees, and check the running total against the revised contract value.
Final invoice
When: Billed at completion for the remaining balance and any released retainage.
Watch for: Reconcile every change order first, collect the final lien waiver, and confirm insurance is still current for completed operations.
5. Retainage and Lien Waivers
Two items travel with nearly every progress payment. Retainage is the portion of each payment you hold back until the work is done. Industry guides commonly put it in the 5% to 10% range, but the number and the release terms come from your subcontract and from state law (FieldPro, retrieved September 2026). On the standard AIA pay application, retainage is one line in a running calculation that starts from the contract sum to date and ends at the current amount due (Autodesk Construction Cloud, retrieved September 2026).
Lien waivers come in four common types: conditional or unconditional, for a progress payment or for final payment. A conditional waiver takes effect only when the payment clears. An unconditional waiver takes effect when it is signed, whether or not the money arrives. The practical rule is to have subs sign conditional waivers before you pay and unconditional ones only after the payment has cleared (Corpay, retrieved September 2026). Several states prescribe the exact waiver forms, so have your attorney confirm which ones your projects need.
Not legal advice. Waiver wording and timing are regulated differently from state to state. Use this section to know what to ask for, and your attorney to confirm the forms.
6. Tie Insurance to the Payment, Not to a Folder
A certificate of insurance is a snapshot of the day it was issued. The subcontractor's policy can be cancelled the week after, and your invoice approval is the last moment you can act on that before money leaves. If your workers' compensation carrier audits you and finds you paid an uninsured sub, it can charge premium for that work. Our uninsured subcontractor audit formula shows how that number is calculated.
The fix is procedural, not technical: make a current certificate a condition of approval. Your subcontract needs a clause that lets you withhold payment for non-compliance, and your process needs a place where that check actually happens. For the contract language and the accounting-system steps, read how to hold subcontractor payments for expired insurance.
7. Doing This in SubDoc
A spreadsheet can run this process for a handful of subs. It gets fragile once invoices, contract values and certificates live in different files. Here is how SubDoc's Projects and Invoicing module maps to the seven steps, for teams that want it in one place.
- You add a project with each vendor's contract value, then request a deposit, progress or final invoice. The subcontractor gets a single-use upload link for that project and needs no account.
- Invoices land in one queue. A repeat vendor and invoice number is refused on the vendor portal and flagged when added by your team, and approving an invoice that would pass the revised contract value asks you to confirm first.
- Approval is blocked for a vendor with an expired certificate or a payment hold, unless an account Owner overrides it. The override and the reason are recorded in the audit trail.
- Approved invoices can be scheduled, marked paid and exported for QuickBooks or Sage.
The free plan includes one project and five invoices a month so you can try it on a real job. Payment holds and the accounting export are on the Pro and Advanced plans. SubDoc does not replace your accounting system or your attorney's waiver forms. It gives the approval step one place to happen.
Frequently Asked Questions
Split the decision in two. The person who knows whether the work was done, usually the project manager or superintendent, confirms the progress being billed. Accounting confirms the paperwork: contract balance, insurance, lien waiver and duplicates. Keeping those two checks with different people stops one person from both verifying the work and releasing the money. A small team can have one person do both, as long as the approval is recorded.
That depends on your subcontract and your state. A common practice is to collect a conditional waiver with each progress invoice and an unconditional waiver for the payment before it, and to require a final waiver with the final invoice. Several states publish required waiver forms, so ask your attorney which ones apply to your projects.
Do not approve it as submitted. Either an approved change order explains the difference, in which case record it and bill against the revised contract value, or the invoice is wrong and should be declined with a reason the subcontractor can act on, such as a missing change order or an amount above the remaining balance.
Check the vendor and the invoice number on every submission, ignoring capitalization and extra spaces, and treat a match as a duplicate unless the earlier invoice was declined. Also watch for the same amount and date resubmitted under a new invoice number, which is how many accidental double payments happen.
Whether you can withhold payment depends on the clause in your subcontract, so confirm it grants that right before you rely on it. The risk of paying anyway is real: at audit, your workers' compensation carrier may charge premium for work done by an uninsured subcontractor. Our guide to holding payments for expired insurance covers the contract language and the accounting-system workflow.
Related Guides
Put invoice approval and insurance in one place
Track contract values, approve invoices and hold payment for lapsed coverage from the same workspace. Free for up to 3 vendors.