Recording Payments¶
Available to: Owner, Accounting
Only Owner and Accounting roles can record payments. Project Managers can see payment status on jobs but cannot post payments.
Payments are recorded against an invoice as they are received. Hardhat Flow supports multiple partial payments against a single invoice, with the balance due updating automatically after each entry.
Recording a Payment¶
- Navigate to Invoices and open the invoice you want to apply payment to.
- Click Record Payment.
- Fill in the payment fields (see below).
- Click Save.
The system updates the balance due immediately and advances the invoice status if applicable.
Payment Fields¶
| Field | Description |
|---|---|
| Amount | Dollar amount of this payment. Must be greater than zero. |
| Payment Date | Date the payment was received. Defaults to today. |
| Payment Method | How the payment was made (check, ACH, wire, credit card, cash, etc.). |
| Notes | Optional internal notes (e.g., check number, reference, partial reason). |
How Partial Payments Work¶
There is no concept of a "partial payment" designation — all payments are simply recorded against the invoice. The system handles the math.
Each time a payment is recorded:
- The payment amount is subtracted from the current balance due.
- If the resulting balance is greater than zero, the invoice moves to Partially Paid.
- If the resulting balance equals zero, the invoice moves to Paid and then immediately to Workflow Complete (set automatically by the system).
Example:
| Event | Amount | Balance Due | Status |
|---|---|---|---|
| Invoice created | — | $10,000.00 | Invoice Submitted |
| Payment 1 recorded | $4,000.00 | $6,000.00 | Partially Paid |
| Payment 2 recorded | $4,000.00 | $2,000.00 | Partially Paid |
| Payment 3 recorded | $2,000.00 | $0.00 | Paid → Workflow Complete |
Payments cannot be deleted
All deletes in Hardhat Flow are soft deletes. If a payment was entered in error, contact your system administrator. Do not attempt to re-record a negative payment.
Invoice Status Progression¶
[Invoice Submitted]
│
▼ (first payment recorded, balance > 0)
[Partially Paid]
│
▼ (payment recorded, balance = 0)
[Paid]
│
▼ (system-set automatically)
[Workflow Complete]
Invoice Submitted¶
The invoice has been created and sent to the client. No payment has been received yet.
Partially Paid¶
One or more payments have been recorded, but the full amount has not been collected. The invoice remains open. Continue recording payments as they arrive.
Paid¶
The balance due has reached exactly zero. The invoice is considered fully paid.
Workflow Complete¶
System-set — no action required
Workflow Complete is set automatically by the system when balance_due = 0. You do not need to manually advance the status. This state indicates the entire Bid → Job → Invoice → Payment lifecycle has concluded for this piece of work.
Once a job reaches Workflow Complete, it moves off the active queue and into the historical record. All associated records — the bid, job, invoice, and payments — remain fully accessible for reporting and audit purposes.
Viewing Payment History¶
All payments recorded against an invoice are listed in the Payment History section of the invoice detail page, in chronological order. Each entry shows the amount, date, method, and any notes recorded at the time.