# Invoice Generator

> 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.

- Skill: `gtmify/invoice-generator` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add gtmify/invoice-generator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/gtmify/invoice-generator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: GTMify (https://skillmd.com/u/gtmify)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/gtmify/invoice-generator

---


# 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**:

1. 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.
2. 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.

