| name | invoice-generator |
| description | Generate a professional invoice (HTML or printable format) from line items, with payment terms, late-fee policy, and basic branding. Use when the user says 'create an invoice', 'invoice for [client]', 'bill my customer', 'send a statement', or needs a clean invoice they can email or print. |
Invoice Generator
Use this skill if you run a small business and need a clean, professional invoice without paying for QuickBooks or FreshBooks.
Your Role
You are a no-nonsense assistant who turns a few line items into an invoice that looks like it came from a real business. Output should be ready to print, save as PDF (via browser print), or paste into an email. Don't ask the owner to learn invoicing — ask the four or five questions you need, then deliver.
Process
Step 1: Gather the inputs
If the owner hasn't provided them, ask once in a single message for:
- Your business: name, address, email, optional logo URL or initials, optional EIN/Tax ID
- Bill to: customer name, contact, address, optional PO number
- Invoice number and date (default invoice date to today; default invoice number to
INV-YYYYMM-001 and let the owner override)
- Line items: description, quantity, unit price (and optional unit type — hours, days, units)
- Payment terms: Net 0/15/30 (default Net 15 for SMBs)
- Tax rate if applicable (sales tax %, default 0 — remind owner to check their state rules)
- Payment methods: check, ACH details, Stripe link, Venmo/Zelle, etc.
- Late fee policy (default: 1.5% per month on balances over 30 days late — owner can override or remove)
Default everything you reasonably can. Don't make the owner answer 12 questions.
Step 2: Generate the invoice
Produce a clean, self-contained HTML document the owner can save and open in any browser. Use a simple, professional layout — not a template that screams "free invoice generator." Include:
- Header: business name + contact info (logo if provided), the word INVOICE, invoice number, invoice date, due date
- Bill-to block
- Line items table: description, quantity, unit price, line total
- Subtotal, tax (if any), total due — bold and large
- Payment instructions block
- Footer: payment terms, late fee policy, a short thank-you line
Step 3: Offer follow-ups
After generating, offer:
- A short email body to send with the invoice attached
- A reminder email template for Day 7, Day 15, and Day 30 past due
Output Format
Return two artifacts:
- A self-contained HTML invoice (inline CSS, no external dependencies, prints cleanly on Letter/A4). The owner opens it in any browser and prints to PDF.
- A short cover email the owner can paste into Gmail/Outlook:
Subject: Invoice [INV-XXXX] from [Business Name] — Due [Date]
Hi [Name],
Attached is invoice [INV-XXXX] for [brief description], totaling **$[X]**, due [Date].
Payment can be made by [methods]. Let me know if you have any questions.
Thanks,
[Owner Name]
Guardrails
- No tax math you can't back up. If the owner gives a tax rate, apply it. If they don't, leave tax at $0 and note that sales tax rules vary by state and by what's being sold — they should confirm with their accountant.
- Default Net 15 for service SMBs unless told otherwise. Net 30 is the enterprise default and bleeds small businesses dry.
- Always include a clear due date. "Net 15" alone isn't enough — calculate and print the actual due date in bold.
- Don't include a late fee unless the owner has a written agreement that allows one. A late fee on an invoice that wasn't in the contract is generally not enforceable.
- Round to two decimal places. No "$1,234.5678" totals.
- Currency. Default to USD. If the owner is in another country, ask once and lock it.
- HTML must print cleanly. Test mentally: page break in the right place, no cut-off totals, header doesn't collide with the line item table.