Sending invoices is not accounting cosplay. For freelance UI/UX designers, a bad invoice creates payment delays, scope arguments, and awkward pauses mid-handoff. A good invoice is boring: it matches the SOW, names the milestone honestly, and goes to the right legal entity with a working pay link.
Use this checklist every time — deposit, milestone, or final.
Why designers underbill or misbill
- Work feels “mostly done” so you invoice final while prototype states are still missing
- Deposit math wrong after a change order
- Bill-to is the product name, not the legal company finance recognizes
- PO number missing on the PDF
- Scope on the invoice says “design services” when the SOW listed three named flows
Finance teams pay clear documents. Ambiguity is not artistic.
The checklist
A. Commercial alignment
- ☐ Amount matches SOW, proposal, or written change order
- ☐ Milestone label matches delivered work (“Phase 1 UI handoff,” not “misc design”)
- ☐ Prior deposit/milestones subtracted correctly
- ☐ Currency correct; tax line handled per your setup
- ☐ Change orders referenced by date or ID if they affected the total
B. Bill-to details
- ☐ Legal client name
- ☐ Billing email (not only your day-to-day Slack contact)
- ☐ Address / VAT / tax IDs if they require them
- ☐ Your legal/trade name and address present
- ☐ PO number if their process needs it
C. Proof you are allowed to bill this now
- ☐ Deposit: SOW allows billing on signature / kickoff
- ☐ Milestone: acceptance or dated delivery notice per SOW
- ☐ Final: deliverables complete; Client Signoff checked if required
- ☐ No unpaid “quick extras” silently folded in — either exclude or change-order first
D. Attachments and payment path
- ☐ PDF generated with clear filename:
YYYYMMDD_Client_Label.pdf - ☐ Payment link or bank details tested
- ☐ Optional: short milestone summary + Figma link to the delivered package
- ☐ Timesheet only if the engagement is hourly or they asked for it
E. Ops hygiene
- ☐ Due date set (e.g. Net 15) and realistic
- ☐ Calendar reminders: day before due; +3 and +7 if unpaid
- ☐ Tracker updated: Sent date, Status = Sent
- ☐ Know your pause-of-work rule from the SOW if overdue
F. Send
- ☐ Subject:
Invoice [number] — [Project] — due [date] - ☐ Body: what it covers, amount, due date, pay link, thanks
- ☐ Right people CC’d (billing + your project contact if useful)
Deposit vs final — different failure modes
Deposits fail when you start work before funds clear, or when the invoice lacks the project name finance expected. Send deposit invoices the same day as signature.
Finals fail when you invoice before handoff completeness: missing states, undocumented edge cases, or “we’ll polish after payment” without agreement. If you need cashflow, bill a pre-agreed milestone, not a fake “final.”
Retainers fail when the invoice does not state the period covered and hours included. Name the month and roll-over rules if any.
Pair a doc checklist with a Notion database
A Markdown checklist is for the moment of sending. A lightweight Invoices Checklist database is for portfolio-level status:
- Status: Not started / Ready to send / Sent / Paid / Overdue / Void
- Relation to Client + Project
- Checkboxes: Bill To Confirmed, Scope Matches SOW, Attachments Ready
- Due Date, Reminder Count, Payment Link
Only flip to Ready to send when section A–D pass. That prevents “I’ll fix the PDF later” sends.
This is not a replacement for QuickBooks/Wave/FreshBooks. It is a readiness rail so delivery tools and money tools do not drift apart.
Overdue playbook (keep boring)
- +3 days: Short reminder, pay link, offer to resend PDF.
- +7 days: Firmer note; reference SOW payment terms; state work pause if terms allow.
- Pause delivery when policy says so — continuing to ship while unpaid trains the wrong behavior.
- Log Sentiment / Notes on the Client; adjust Fit rating if this is a pattern.
Do not vent in the invoice email. Do not hold files hostage in a way that violates your SOW/IP clause — follow what you signed.
Email templates (short)
Send
“Attached invoice [number] for [milestone] on [project], amount [X], due [date]. Pay here: [link]. Thank you.”
Reminder
“Friendly reminder invoice [number] for [X] was due [date]. Pay link: [link]. Tell me if you need a revised bill-to or PO on the PDF.”
Firm
“Invoice [number] remains unpaid ([X], due [date]). Per our SOW, design work pauses on overdue balances after [N] days. Once payment clears I will resume [phase]. Pay link: [link].”
Preventing invoice pain upstream
- Put payment schedule in the proposal and SOW
- Collect billing requirements in the onboarding questionnaire
- Name milestones after artifacts, not vibes
- Track change orders in Pipeline/Project notes the day they happen
- Do not start Kickoff without deposit if that is your rule — exceptions become defaults
Money clarity is part of UX for the working relationship.
Checklist card you can paste into Notion
Before send:
[ ] Amount = SOW/change order
[ ] Milestone name accurate
[ ] Legal bill-to + PO
[ ] Pay link works
[ ] Due date + reminders
[ ] Status → Sent
Closing standard
You do not need a more “premium” invoice design. You need alignment with scope, correct bill-to, and a tracked follow-up. For designers who want the checklist plus a Notion invoices DB schema next to CRM/pipeline/projects, packs like Clientrail bundle that with proposal/SOW templates. DIY from this article is enough if you run the boxes every time.
Hit send only when boring is true.
Want the full Client OS?
Clientrail packs Notion structure, 50 prompts, and deal templates for freelance UI/UX — no fake testimonials, no income claims.