You sent the invoice, the GC portal shows a "Pay App #14" line under your name, and 45 days later the bank deposit is short by the amount of that pay app with no clear reason attached. QuickBooks shows the invoice as open and aging. AR's last three follow-ups went unanswered. The pay-app summary the GC posts to the job trailer is short by the same line. These are the four signals that the invoice did not silently age out — it was actively swallowed between the moment you billed it and the moment disbursement sat down. The status codes that usually drive it are G-01 (QuickBooks-only / missing portal), G-02 (portal-only / missing QuickBooks), G-03 (short payment), and G-04 (portal rejection). Quiet AR silence on the GC's side, a portal pay-app summary that is short by exactly one line, a QB aging report that grows while the bank balance does not — any one of those by itself is not proof, but together they are the only reliable fingerprint that this specific invoice is the one that died at the portal rather than at the bank. The place the invoice disappears is the chain between QuickBooks and disbursement: the bid you signed at award, the schedule of values the GC issued against the bid, the pay-app you submitted against the schedule, the GC's review portal where pay-app status codes live, and the disbursement that finally hits your account. Somewhere in that chain — most often at the GC review step — the portal silently modifies a line, drops a line, or rejects the whole pay-app, and your QuickBooks ledger never gets the news because the only authoritative confirmation of what changed is the portal CSV your AR person was not watching that week. The portal pays the GC's version of the SOV, not your invoiced version. The G-03 short payment or G-04 portal rejection sits on the pay-app until somebody pulls the conditional waiver to close out the under-payment; meanwhile your invoice has cycled once. The change-order you logged in QB may or may not have been sequenced into the GC's side of the SOV before pay-app #14 closed. Whenever the portal's verdict differs from your billed version, the discrepancy lives where AR cannot see it and QB does not write it down — and that is the structural reason the same subcontractor can be profitable on jobs and cash-poor at the office. If the portal route has eaten the invoice for two pay cycles and the dispute packet is still empty, the lien-rights fallback is on the table — and the exact window, form, and sequencing are state-specific. A properly noticed lien, sent inside your state's statutory window after first furnishing labor or materials to the project, secures a claim against the property itself — but the priority of that claim relative to the GC's lender, prior recorded interests, and any subsequent owner is not uniform across states, and depends on whether the per-state notice and recording deadlines were met on time, on federal lending law, and on the title-insurance underwriting that sits underneath the closing. That attachment is the leverage that turns a quiet portal rejection into a phone call from somebody who can actually disburse. This paragraph is not legal advice and the state-specific numbers are not a substitute for reading your state's lien statute and talking to a construction attorney about the specifics of your job; consult counsel for any specific job. The operational fact is the same everywhere: a notice that arrives inside the window, addressed and served correctly, moves the case from "AR person chasing a portal status code" to "GC or owner answering a lien claim," and those two conversations close at very different rates. Drumtap's planned reconciliation workflow surfaces the gap at the line-item level when a pay cycle closes, before the next pay-app is due rather than after the next month-end close. Every QB invoice row gets paired to the corresponding portal CSV row for the same pay-app; change-order sequencing, conditional/unconditional waiver status, and the SOV delta the GC posted back explain the difference. A single line that does not match receives a Drumtap reconciliation label, the dollar gap is recorded, and the per-line evidence list prepares a review packet. The owner decides what to send. The /pricing page describes planned tiers for information only; billing and checkout are disabled pending legal review. Request early access through /signup for timing and final terms. For the specific portal statuses and the lien-rights / lien-waiver sequencing that drives most of those gaps, start with portal reconciliation: the core problem Drumtap solves .