A generic "please pay" email rarely answers why a general contractor rejected an invoice. The useful response is a compact evidence packet that matches the rejection reason to the document that clears it. That may be a signed purchase order, a change order, a delivery ticket, a daily report, a conditional waiver, or the portal receipt showing the file was submitted on time. Start by recording the exact portal message and the row it belongs to. Then compare the row with the QuickBooks invoice: invoice number, project code, schedule-of-values line, billed amount, retainage, and any partial payment. The goal is not to send every document in the job file. The goal is to send the smallest defensible set that answers the specific rejection and shows the remaining dollar gap. Timing matters because a rejection can push an invoice into the next pay application. Preserve the original upload confirmation, the portal status history, and the date of each response. If the dispute involves a lien waiver or a statutory deadline, involve counsel before signing or sending anything that changes your rights. Drumtap keeps the reconciliation and evidence review owner-controlled; it does not send messages or sign documents for you. The sample dispute packet shows the shape of a worked packet. For the underlying comparison logic, read portal reconciliation: the core problem Drumtap solves .