Invoicing
Create, send, track, and write off invoices — with server-side PDF and optional online payment capture.
Creating an Invoice
- Navigate to Finance → Invoices
- Click New Invoice
- Select or create a client
- Add line items (products, services, or custom entries)
- Set payment terms, due date, and tax rates
- Preview the invoice with your chosen template
- Save as draft or send immediately
Invoice List
The invoices page shows:
- Stats bar — Outstanding, overdue, paid, and draft totals at the top
- AR Aging buckets — Real 0–30 / 31–60 / 61–90 / 90+ day aging computed from sent + overdue invoices, so you can see exactly how old your outstanding receivables are at a glance
- Status tabs — Filter by All, Draft, Sent, Overdue, Paid, Written off, Cancelled
- Sortable columns — Invoice number, client, amount, status, due date
- AI Insights panel — Collapsible side panel with AI-flagged anomalies (revenue variance, slow-paying customers, pipeline gaps)
- CSV Export — Download filtered invoice data as CSV
Invoice Statuses
| Status | Description |
|---|---|
| Draft | Not yet sent to client |
| Sent | Delivered to client |
| Viewed | Client opened the invoice |
| Partial | Some payment received; balance outstanding |
| Paid | Fully settled |
| Overdue | Past due date, unpaid |
| Written off | Declared uncollectable (full or partial amount) — excluded from outstanding AR |
| Cancelled | Voided invoice |
Invoice Detail View
The invoice detail page provides:
- Full invoice preview with the selected template design
- Send Invoice — Email the invoice to the client with the PDF attached and (if Payments is configured) a "Pay online" button
- Pay link — Generate a shareable checkout URL for the outstanding balance
- Digital Signature — Request or apply a digital signature
- Server-side PDF — Download the rendered PDF via
/api/finance/invoices/[id]/pdfor use the print preview at/print/invoice/[id] - Create Credit Note — Issue a credit against this invoice
- Write off — Mark an uncollectable amount and keep AR reports honest
- Entity AI Panel — AI summary, suggested actions, similar invoices, and Ask AI input scoped to this invoice
- Status management — Mark as paid, sent, cancelled
When a payment lands (online or via reconciliation), the invoice creator gets an in-app notification automatically — no manual checking of the payments dashboard required.
Sending Invoices
Click the Send button on any invoice to:
- Preview the email that will be sent
- Customize the message
- Send to the client's email address
The outbound email carries:
- The rendered invoice as a PDF attachment (server-generated by Puppeteer)
- The amount due and due date up front in the body
- A prominent Pay online button when a payment provider is configured — see Payments
Invoice status automatically updates to Sent on first send. sent_count increments on every resend.
Accepting online payments
When a payment provider (Stripe today, Mollie soon) is configured, every sent invoice exposes a Pay link button. Click it to:
- Generate a hosted checkout URL
- Copy the link to paste into a message or email
- Open it in a new tab to verify the customer flow
The same link is automatically included in the Send-email flow. When the customer pays, the invoice automatically flips to Paid (or Partial) within a second or two of the payment provider's webhook — no manual "Mark paid" step.
See Payments for full setup.
Writing off an invoice
When an invoice is genuinely uncollectable — customer bankruptcy, dispute abandoned, long-overdue write-off policy — use Write off instead of leaving it stuck at Overdue forever.
- Open the invoice
- Click Write off (available on Sent / Overdue / Partial invoices)
- Enter a reason (required — it appears in AR reports)
- Optionally check Partial write-off and enter a smaller amount
- Confirm
The invoice:
- Flips to the Written off status (orange chip)
- Records the uncollectable amount + reason + timestamp
- Disappears from outstanding AR — totals stay honest
- Remains in the system for audit — nothing is deleted
To undo, use Reverse write-off — the invoice returns to Overdue / Sent / Partial depending on its payment state.
Digital Signatures
Invoices support digital signatures:
- Open an invoice
- Click the Signature button
- The client can sign via a secure link
- Signed status is tracked on the invoice
Templates
Invoices use the unified Templates Hub at Finance → Settings → Templates (/finance/settings/templates) — pick the Invoices tab. 20+ designs across 5 categories (Classic, Modern, Minimal, Bold, Creative), 8 color variants, custom hex.
See Templates for the full catalog.
Credit Notes
Issue credit notes for partial or full refunds:
- Open the original invoice
- Click Create Credit Note
- Specify the amount and reason
- The credit is linked to the original invoice
Credit notes now have a full lifecycle (draft / issued / applied / partially applied / voided) and can be applied across multiple invoices. See Credit Notes for details.
Recurring Invoices
Set up invoices that automatically repeat:
- Navigate to Finance → Recurring (
/finance/recurring) - Create a recurring invoice with frequency, line items, and schedule
- The system creates invoices automatically on schedule
See Recurring Invoices for details.
Print / PDF
Two options:
- Download PDF — server-side rendering via
/api/finance/invoices/[id]/pdf. Pixel-stable, matches exactly what customers receive by email. Best for archival and email forwarding. - Print preview —
/print/invoice/[id]opens the template in the browser and triggerswindow.print()for quick printing or ad-hoc PDF saving.
Both use the same 20 invoice templates (see Templates) — the choice is just whether you want the rendering done by Workestra's servers (consistent) or your browser (quick).
Next Steps
- Payments — Accept card payments on sent invoices
- Quotations — Generate quotes and convert to invoices
- Credit Notes — Issue refunds and apply to outstanding invoices
- Templates — Choose invoice designs
- Recurring — Set up automated billing