Everything client-facing billing lives on a Project's own Invoices & Payments tab — three separate panels, plus how a client actually pays online.
Project → Invoices & Payments tab, stacked into three collapsible panels: Invoices, Client Payments, and Credit Memos. (Money you owe a vendor is a separate, parallel setup on the Vendor tab — not covered here.)
New Invoice — a blank invoice you fill in by hand, then add line items to. Generate Invoice — lives on the Estimates tab, not here; enabled per-estimate once it has an Accepted Date, it copies every estimate line's cost/markup/tax straight into a new Invoice. A Service Request can also generate a blank invoice for its own billable work.
Add Payment in the Client Payments panel — Payment Date, Method, Amount, which Invoice it applies to, Reference Number, and an "Is Credit Card"/"Client Visible" flag.
There's no "Send Invoice" button on the staff side — instead, any Invoice marked Client Visible shows up on the client's own Portal, with a Pay Now button next to any balance due. Clicking it goes through a real Stripe Checkout session. Once Stripe confirms payment, the app automatically records the payment and decrements Balance Remaining, flipping Is Paid once it hits zero — the one path where balance tracking genuinely takes care of itself.
New Credit Memo in the Credit Memos panel creates its own independent billing document — own address block, own Sub Total/Sales Tax Total (editable directly here, unlike on an Invoice), own Balance Remaining and Is Paid. It's not "applied to" any particular Invoice in the system.